-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
85 lines (67 loc) · 1.44 KB
/
index.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
76
77
78
79
80
81
82
83
'use strict';
module.exports = Torius;
/**
* options
* - host: TOR proxy host
* - port: TOR proxy port
*/
function Torius (options) {
options = options || {};
this.options = options;
options.host = options.host || 'localhost';
options.port = options.port || 9050;
};
/**
* opt
* - url: request url
* - method: request method
* - body: request body object, if method is POST
* - query: request query object, if method is GET
* - headers: headers object
*/
Torius.prototype.request = function (opt, done) {
var Socks5ClientHttpAgent = require('socks5-http-client/lib/Agent');
var request = require('request');
var options = {
url: opt.url,
method: opt.method,
agent: new Socks5ClientHttpAgent({
socksHost: this.options.host,
socksPort: this.options.port
})
};
if (opt.body) {
options.json = opt.body;
}
if (opt.query) {
options.qs = opt.query;
}
if (opt.headers) {
options.headers = opt.headers;
}
request(options, done);
};
/**
* url: request url
* query: query data object
*/
Torius.prototype.get = function (url, query, done) {
var options = {
url: url,
method: 'GET',
query: query
};
this.request(options, done);
};
/**
* url: request url
* body: body data object
*/
Torius.prototype.post = function (url, body, done) {
var options = {
url: url,
method: 'POST',
body: body
};
this.request(options, done);
};