-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathserver.js
96 lines (78 loc) · 2.37 KB
/
server.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
84
85
86
87
88
89
90
91
92
93
94
95
96
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var request = require('request');
var fs = require('fs');
var Util = require('./util.js');
var api = require('./api.js');
var users = require('./config.js');
var qs = require('querystring');
var options = {
root: __dirname
};
app.use(bodyParser.json({limit: '1mb'}));
app.use(bodyParser.urlencoded({
extended: true
}));
app.get('/', function(req, res){
res.sendFile('index.html', options);
});
app.get('/wechat.png', function(req, res){
res.sendFile('wechat.png', options);
});
let msgs = {
2: '你已经领过了!',
3: '领到了!',
4: '领到了!',
5: '每天最多领5个!',
};
app.post('/getHongbao', async function(req, res, next) {
let {url, mobile} = req.body;
if (url && mobile) {
let params = qs.parse(url);
let luckyNumber = params['lucky_number'];
let sn = params['sn'];
if (!luckyNumber || !sn) {
res.json({code: 20000, msg: '红包链接错误!'});
return;
}
log('----------开始领大红包' + sn + ', luckyNumber is ' + luckyNumber + ', target mobile is ' + mobile + '----------');
let isLucky = false;
let isFinished = false;
//都是垫背的
for (let i = 0; i < users.length && !isFinished; i++) {
//如果是大红包,则用最后一个帐号领取
let u = isLucky ? users[users.length - 1] : users[i];
let user = Object.assign({}, Util.getDefaultUser(), u, {group_sn: sn});
user.phone = isLucky ? mobile : Util.getRandomMobile();
await api.changePhone(user);
await api.getElemeHongbao(user).then(r=>{
log(JSON.stringify(r));
let code = r['ret_code'];
let records = r['promotion_records'];
let count = records.length;
if (isLucky) {
res.json({code: 10000, msg: msgs[code]});
isFinished = true;
} else {
if (count >= luckyNumber) {
res.json({code: 20000, msg: '没有大红包了!'});
isFinished = true;
} else if (count == luckyNumber - 1) {
isLucky = true;
}
}
}).catch(e=>i = i - 1);
await sleep(1000);
}
}
});
var sleep = time=>new Promise((resolve, reject)=>setTimeout(e=>resolve(), time));
function log(msg) {
fs.writeFile('log.txt', '\n\n' + new Date() + ':\n' + msg, {flag: 'a'}, function (err) {
if (err) throw err;
});
};
var server = app.listen(80, function(){
console.log('express started......');
})