Skip to content

Commit d219652

Browse files
author
bot
committed
update
1 parent c66e75d commit d219652

26 files changed

+693
-173
lines changed

src/api/controllers/apiController.js

+56
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ exports.login = async function(req, res) {
5656
res.redirect(req.protocol+"://"+req.headers.host+"/"+req.body.site+"/info");
5757
}
5858
} else {
59+
//Factory.clear();
5960
res.render('login',{title: 'My Dice Bot',site:req.params.site,skin:req.session.skin});
6061
}
6162
} catch(err) {
@@ -210,6 +211,61 @@ exports.keereg = async function(req, res) {
210211
}
211212
};
212213

214+
exports.proxyload = async function(req, res) {
215+
try{
216+
let data = '[]';
217+
let filePath = path.resolve(path.join(process.execPath, '../proxy.json'));
218+
if(isMobile(req)) {
219+
filePath = path.resolve(path.join(__dirname, '../../proxy.json'));
220+
}
221+
if(process.env.electron) {
222+
filePath = path.resolve(path.join(config.mydice.path, '/proxy.json'));
223+
}
224+
if(fs.existsSync(filePath)){
225+
data = fs.readFileSync(filePath);
226+
}
227+
let proxyList = JSON.parse(data);
228+
return res.status(200).json(proxyList);
229+
} catch(err) {
230+
console.log(err);
231+
return res.status(500).send({err: err.toString()});
232+
}
233+
}
234+
235+
exports.proxysave = async function(req, res) {
236+
try{
237+
let proxyList = {};
238+
let data = '[]';
239+
let filePath = path.resolve(path.join(process.execPath, '../proxy.json'));
240+
if(isMobile(req)) {
241+
filePath = path.resolve(path.join(__dirname, '../../proxy.json'));
242+
}
243+
if(process.env.electron) {
244+
filePath = path.resolve(path.join(config.mydice.path, '/proxy.json'));
245+
}
246+
if(fs.existsSync(filePath)){
247+
data = fs.readFileSync(filePath);
248+
}
249+
proxyList = JSON.parse(data);
250+
if(typeof proxyList !== 'undefined') {
251+
proxyList.forEach(function(item, index, object){
252+
if(item.proxy_name == req.body.proxy_name ){
253+
object.splice(index,1);
254+
}
255+
});
256+
}
257+
if(typeof req.body.proxy_name !== 'undefined') {
258+
proxyList.push(req.body);
259+
}
260+
data = JSON.stringify(proxyList);
261+
fs.writeFileSync(filePath, Buffer.from(data));
262+
return res.status(200).json('ok');
263+
} catch(err) {
264+
console.log(err);
265+
return res.status(500).send({err: err.toString()});
266+
}
267+
};
268+
213269
exports.keesave = async function(req, res) {
214270
try{
215271
let filePath = path.resolve(path.join(process.execPath, '../keepass/')+req.query.keepassfile+'.kdbx');

src/api/models/base.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
var APIError = require('../errors/APIError');
33

44
module.exports = class BaseDice {
5-
constructor(){
6-
//console.log('mydicebot');
5+
constructor(proxy){
6+
this.proxy = proxy;
77
}
88
async resetseed(req) {
99
let errs = new Error('Platform is not support reset seed');

src/api/models/bitsler.js

+14-4
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@ var BaseDice = require('./base')
44
var fetch = require('isomorphic-fetch');
55
var FormData = require('form-data');
66
var APIError = require('../errors/APIError');
7+
var SocksProxyAgent = require('socks-proxy-agent');
78

89
module.exports = class BitslerDice extends BaseDice {
9-
constructor(){
10-
super();
10+
constructor(proxy){
11+
super(proxy);
1112
this.url = 'https://www.bitsler.com';
1213
this.benefit = '?ref=mydicebot'
1314
this.currencys = ["btc","eth","ltc","doge","dash","bch","xrp","zec","etc","neo","kmd","btg","lsk","dgb","qtum","strat","waves","burst"];
@@ -164,13 +165,22 @@ module.exports = class BitslerDice extends BaseDice {
164165

165166
async _send(route, method, body, accessToken){
166167
let url = `${this.url}/api/${route}${this.benefit}`;
167-
let res = await fetch(url, {
168+
let options= {
168169
method,
169170
headers: {
170171
'User-Agent': 'DiceBot',
171172
},
172173
body: body,
173-
});
174+
};
175+
if(this.proxy.ip) {
176+
let socks = 'socks://'+this.proxy.ip+':'+this.proxy.port;
177+
if(this.proxy.user){
178+
socks = 'socks://'+this.proxy.user+':'+this.proxy.password+'@'+this.proxy.ip+':'+this.proxy.port;
179+
}
180+
let agent = new SocksProxyAgent(socks);
181+
options.agent = agent;
182+
}
183+
let res = await fetch(url, options);
174184
let data = await res.json();
175185
if (data.success == false) {
176186
let errs = new Error(data.error);

src/api/models/crypto.js

+14-6
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@ var BaseDice = require('./base');
44
var fetch = require('isomorphic-fetch');
55
var FormData = require('form-data');
66
var APIError = require('../errors/APIError');
7+
var SocksProxyAgent = require('socks-proxy-agent');
78

89
module.exports = class CryptoDice extends BaseDice {
9-
constructor(){
10-
super();
10+
constructor(proxy){
11+
super(proxy);
1112
//this.url = 'https://api.crypto-games.net';
1213
this.url = 'https://api.crypto.games';
1314
}
@@ -133,16 +134,23 @@ module.exports = class CryptoDice extends BaseDice {
133134

134135
async _send(route, method, body, accessToken){
135136
let url = `${this.url}/v1/${route}/${accessToken}`;
136-
//console.log(JSON.stringify(body));
137-
let res = await fetch(url, {
137+
let options = {
138138
method,
139139
headers: {
140140
Accept: 'application/json, text/plain, */*',
141141
'Content-Type': 'application/json',
142142
},
143143
body: JSON.stringify(body),
144-
//body: body,
145-
});
144+
};
145+
if(this.proxy.ip) {
146+
let socks = 'socks://'+this.proxy.ip+':'+this.proxy.port;
147+
if(this.proxy.user){
148+
socks = 'socks://'+this.proxy.user+':'+this.proxy.password+'@'+this.proxy.ip+':'+this.proxy.port;
149+
}
150+
let agent = new SocksProxyAgent(socks);
151+
options.agent = agent;
152+
}
153+
let res = await fetch(url, options);
146154
let data = await res.json();
147155
//console.log(data);
148156
if (!res.ok) {

src/api/models/duckdice.js

+20-12
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@ var BaseDice = require('./base');
44
var fetch = require('isomorphic-fetch');
55
var FormData = require('form-data');
66
var APIError = require('../errors/APIError');
7+
var SocksProxyAgent = require('socks-proxy-agent');
78

89
module.exports = class DuckDice extends BaseDice {
9-
constructor(){
10-
super();
10+
constructor(proxy){
11+
super(proxy);
1112
this.url = 'https://duckdice.io';
1213
this.benefit = '&c=ab61534783'
1314
}
@@ -136,25 +137,32 @@ module.exports = class DuckDice extends BaseDice {
136137

137138
async _send(route, method, body, accessToken){
138139
let url = `${this.url}/api/${route}${this.benefit}`;
139-
let res = null;
140+
let options= {
141+
method,
142+
headers: {
143+
'User-Agent': 'MyDiceBot',
144+
},
145+
};
140146
if(method == "POST"){
141-
res = await fetch(url, {
147+
options = {
142148
method,
143149
headers: {
144150
Accept: 'application/json',
145151
'User-Agent': 'MyDiceBot',
146152
'Content-Type': 'application/json',
147153
},
148154
body: JSON.stringify(body),
149-
});
150-
} else {
151-
res = await fetch(url, {
152-
method,
153-
headers: {
154-
'User-Agent': 'MyDiceBot',
155-
},
156-
});
155+
};
156+
}
157+
if(this.proxy.ip) {
158+
let socks = 'socks://'+this.proxy.ip+':'+this.proxy.port;
159+
if(this.proxy.user){
160+
socks = 'socks://'+this.proxy.user+':'+this.proxy.password+'@'+this.proxy.ip+':'+this.proxy.port;
161+
}
162+
let agent = new SocksProxyAgent(socks);
163+
options.agent = agent;
157164
}
165+
let res = await fetch(url, options);
158166
let data = await res.json();
159167
if (data.error) {
160168
let errs = new Error(data.error);

src/api/models/epic.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ var request = require('request');
55
var steem = require('steem');
66

77
module.exports = class EpicDice extends BaseDice {
8-
constructor(){
9-
super();
8+
constructor(proxy){
9+
super(proxy);
1010
this.url = 'https://epicdice.io';
1111
this.benefit = '?ref=mydicebot'
1212
this.currencys = ["steem","sbd"];

src/api/models/factory.js

+11-1
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,15 @@ module.exports = {
1717
}
1818
let instance = this.instances.get(clazzname);
1919
return instance;
20-
}
20+
},
21+
check() {
22+
if (this.instances.size >0 ) {
23+
return true;
24+
} else {
25+
return false;
26+
}
27+
},
28+
clear() {
29+
this.instances.clear();
30+
},
2131
}

src/api/models/freebitco.js

+25-6
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@ var fetch = require('isomorphic-fetch');
55
var FormData = require('form-data');
66
var APIError = require('../errors/APIError');
77
var querystring = require('querystring');
8+
var SocksProxyAgent = require('socks-proxy-agent');
89

910
module.exports = class FreeBitco extends BaseDice {
10-
constructor(){
11-
super();
11+
constructor(proxy){
12+
super(proxy);
1213
this.url = 'https://freebitco.in';
1314
this.benefit = '&r=16392656'
1415
}
@@ -160,26 +161,44 @@ module.exports = class FreeBitco extends BaseDice {
160161
async _getCsrfToken() {
161162
let url = this.url;
162163
let method = "GET";
163-
let res = await fetch(url, {
164+
let options= {
164165
method,
165166
headers: {
166167
'User-Agent': 'MyDiceBot',
167168
},
168-
});
169+
};
170+
if(this.proxy.ip) {
171+
let socks = 'socks://'+this.proxy.ip+':'+this.proxy.port;
172+
if(this.proxy.user){
173+
socks = 'socks://'+this.proxy.user+':'+this.proxy.password+'@'+this.proxy.ip+':'+this.proxy.port;
174+
}
175+
let agent = new SocksProxyAgent(socks);
176+
options.agent = agent;
177+
}
178+
let res = await fetch(url, options);
169179
let csrfToken = this._parseCookies(res);
170180
return csrfToken;
171181
}
172182

173183
async _send(route, method, body, accessToken, cookie, isJson){
174184
let url = `${this.url}/${route}`;
175-
let res = await fetch(url, {
185+
let options = {
176186
method,
177187
headers: {
178188
'User-Agent': 'MyDiceBot',
179189
Cookie: cookie,
180190
},
181191
body: body,
182-
});
192+
};
193+
if(this.proxy.ip) {
194+
let socks = 'socks://'+this.proxy.ip+':'+this.proxy.port;
195+
if(this.proxy.user){
196+
socks = 'socks://'+this.proxy.user+':'+this.proxy.password+'@'+this.proxy.ip+':'+this.proxy.port;
197+
}
198+
let agent = new SocksProxyAgent(socks);
199+
options.agent = agent;
200+
}
201+
let res = await fetch(url, options);
183202
let data = "e:freebitcoin error, Please wait minutes before trying again";
184203
let ret = data.split(':');
185204
if(!isJson) {

src/api/models/github.js

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
'use strict';
22
var APIError = require('../errors/APIError');
33
var fetch = require('isomorphic-fetch');
4+
var SocksProxyAgent = require('socks-proxy-agent');
45

56
module.exports = class GitHub {
67
constructor(){

src/api/models/kryptogames.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ var request = require('request');
55
var steem = require('steem');
66

77
module.exports = class KryptoGames extends BaseDice {
8-
constructor(){
9-
super();
8+
constructor(proxy){
9+
super(proxy);
1010
this.url = 'https://kryptogames.io';
1111
this.benefit = '?ref=mydicebot'
1212
this.currencys = ["steem","sbd"];

src/api/models/nine.js

+14-4
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@ var BaseDice = require('./base');
44
var fetch = require('isomorphic-fetch');
55
var FormData = require('form-data');
66
var APIError = require('../errors/APIError');
7+
var SocksProxyAgent = require('socks-proxy-agent');
78

89
module.exports = class NineDice extends BaseDice {
9-
constructor(){
10-
super();
10+
constructor(proxy){
11+
super(proxy);
1112
this.url = 'https://www.999dice.com';
1213
this.benefit = '?224280708'
1314
}
@@ -126,13 +127,22 @@ module.exports = class NineDice extends BaseDice {
126127

127128
async _send(route, method, body, accessToken){
128129
let url = `${this.url}/api/${route}${this.benefit}`;
129-
let res = await fetch(url, {
130+
let options= {
130131
method,
131132
headers: {
132133
'User-Agent': 'DiceBot',
133134
},
134135
body: body,
135-
});
136+
};
137+
if(this.proxy.ip) {
138+
let socks = 'socks://'+this.proxy.ip+':'+this.proxy.port;
139+
if(this.proxy.user){
140+
socks = 'socks://'+this.proxy.user+':'+this.proxy.password+'@'+this.proxy.ip+':'+this.proxy.port;
141+
}
142+
let agent = new SocksProxyAgent(socks);
143+
options.agent = agent;
144+
}
145+
let res = await fetch(url, options);
136146
if(res.status == 200){
137147
let data = await res.json();
138148
return data;

0 commit comments

Comments
 (0)