/
ddg
executable file
·46 lines (40 loc) · 1.03 KB
/
ddg
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
#!/usr/bin/env node
var https = require('https'),
url = require('url'),
qs = require('querystring'),
pledge = require('node-pledge'),
ddg_url = 'https://api.duckduckgo.com/?format=json';
pledge.init('stdio rpath wpath cpath inet dns ioctl');
var i = 2, l = process.argv.length, q = '';
for (; i < l; i++) {
q += process.argv[i];
q += ' ';
}
function parse(d) {
if (d.name && d.name.match(/conversions/i)) {
var a = [];
a.push(d.data.raw_input);
a.push(d.data.left_unit);
a.push('->');
a.push(d.data.raw_answer);
a.push(d.data.right_unit);
return a.join(' ');
} else {
return d;
}
}
var req = https.get(ddg_url + '&q=' + q, function(res) {
var data = '';
res.on('data', function(chunk) {
data += chunk;
});
res.on('end', function() {
pledge.init('stdio');
d = JSON.parse(data);
if (d.Answer !== "" && typeof(d.Answer === "string")) {
console.log(parse(d.Answer));
} else {
console.log(parse(d));
}
});
});