-
Notifications
You must be signed in to change notification settings - Fork 0
/
hangulize.js
76 lines (61 loc) · 1.92 KB
/
hangulize.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
var Detecter = function(word, _callback) {
var self = this;
var http=require('http'),
qs=require('querystring');
var url = '/ajax/services/language/detect?v=1.0&q=' + qs.escape(word);
var client = http.createClient(443, "ajax.googleapis.com",true);
var request = client.request('GET', url, { 'host': 'ajax.googleapis.com' });
request.end();
request.on('response', function(resp) {
resp.setEncoding('utf8');
if ( resp.statusCode == 200 ) {
resp.on('data', function(chunk) {
var respObj = JSON.parse(chunk);
_callback(true, respObj);
});
} else {
_callback(false, resp);
}
});
};
var Hangulize = function(lang, word, _callback) {
var self = this;
var http=require('http'),
qs=require('querystring');
var client=http.createClient(80, 'www.hangulize.org');
var url = '?lang='+lang+'&word='+qs.escape(word);
var request = client.request('GET',url, {
'host': 'www.hangulize.org',
'Accept': 'application/json',
'X-Requested-With': 'XMLHttpRequest'
});
request.end();
request.on('response' ,function(resp) {
if (resp.statusCode == 200 ) {
resp.setEncoding('utf8');
resp.on('data', function(chunk) {
var respObj = JSON.parse(chunk);
_callback(true, { request: { 'word': word, 'lang': lang }, response: respObj});
});
} else {
_callback(false, { request: {'word' : word, 'lang': lang}, response: resp} );
}
});
};
if ( exports ) {
exports.Hangulize = Hangulize;
exports.Detecter = Detecter;
exports.hangulize = function(word,_callback,lang) {
if ( lang != undefined ) {
return new Hangulize(lang,word,_callback);
} else {
new Detecter( word, function(result,data) {
if ( result == true ) {
return new Hangulize(data.responseData.language, word, _callback);
} else {
_callback(false, data);
}
});
}
};
}