增加获取hoh8 token的功能

This commit is contained in:
zhl 2019-04-18 21:32:42 +08:00
parent cbae7af8a3
commit 4f5e9304bb
4 changed files with 114 additions and 72 deletions

View File

@ -17,8 +17,8 @@ db.on('error', function (err) {
}); });
db.once('open', function () { db.once('open', function () {
logger.info('Connected to db.'); logger.info('Connected to db.');
// hoh8.run(); hoh8.run();
book.run(); // book.run();
}); });
mongoose.connect(config.db, {promiseLibrary: Promise, useNewUrlParser: true}); mongoose.connect(config.db, {promiseLibrary: Promise, useNewUrlParser: true});

View File

@ -26,6 +26,15 @@ class SpiderDataClass {
static async saveList(list, type) { static async saveList(list, type) {
for(let record of list) { for(let record of list) {
if (record.id > 0) { if (record.id > 0) {
let recordExists
try {
recordExists = await SpiderDataModel.findOne({'data.id': record.id});
} catch (err) {
console.log(err);
}
if (recordExists) {
continue;
}
let sdata = new SpiderDataModel({ let sdata = new SpiderDataModel({
type: type, type: type,
data: record, data: record,

View File

@ -12,8 +12,8 @@ let client = socketClient;
* *
* */ * */
const token = 'c402cdea067bb6d1ff51090edbe0d645'; let token = 'cbc5511ca0993963375939f64f4d9a06';
const uid = '2407044'; let uid = '2387984';
/** /**
* 获取电影列表 * 获取电影列表
* @param {Number} id 分页 从0开始 * @param {Number} id 分页 从0开始
@ -93,78 +93,110 @@ const downloadAllMovieImg = async () => {
} }
} }
const getToken = async () => {
let url = `https://game.hoh8.cn/hh/wx/ma/login.anon`;
const data = {
deviceType: '5',
appVersion: '1.7',
jsonData: '{"sessionKey":"nXEu5cOb7G2ny0/AptdfKw==","signature":"472560f8675dc15bb91e57b01e8cd7288e064265","rawData":"{\\"nickName\\":\\"zhl³\\",\\"gender\\":1,\\"language\\":\\"zh_CN\\",\\"city\\":\\"徐汇\\",\\"province\\":\\"上海\\",\\"country\\":\\"中国\\",\\"avatarUrl\\":\\"https://wx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTLzZqZE6LPAFoqMAqv24dXrcESedsLqnk7ic9ibB8Opzs1WHn6XAqnpwBYWJU4O1HNaDyghszLTYLIw/132\\"}","encryptedData":"doRkV9CbRLD2bOaDxE4D3uMxyTEdhktoQ05+4XlACNWz1pBVbUCLk1OBNh5Vz4Bml1aTPhoMgs40BJlrjglM3iW4j7I4eOAd6LLW7IwXse9Nub7flH1RuhXddixWysVjJvRqiLCk8rPLcHa0K90Pi0r3/1H6yjxdjdSuLxqxgWPtNa/liOVToYlxHHucaP+wWaC0e54MzoWCKSS+feKamNxpUJPU6mmlDDHiEJh11n7EOPmsIBof4yW+S0RGJRzYc+59gk7nBY+wML8FMVtLL4raefCUztZIBpmFtsqOddr+swYnQA4cNVGJRmEbyjuOQFQq3UVAn2lJIcubx6R5gYe6FQkb3pSwf/WdruwBLYHaln4J4+yBMK8lbEZTXZseFwyM69ILomnUHDyPy2EZ6E/ozve7nQQJiKUzbISPDCqa5jUFGB9CcDQFAIgDyQJL+xIgmKlFpXz4JsJCkwccEw==","iv":"sOPgT1rNZvYWixujDYiSRw=="}'
};
const header = {
'Content-Type': 'application/x-www-form-urlencoded',
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/7.0.3(0x17000321) NetType/WIFI Language/zh_CN',
Referer: 'https://servicewechat.com/wxabcbf9b61bdeac64/7/page-frame.html',
'Accept-Language': 'zh-cn',
'cache-control': 'no-cache',
};
let repData = await netUtil.postForm(url, data, header, true);
repData = JSON.parse(repData);
return repData;
}
let current = 0; let current = 0;
let list = []; let list = [];
const parseSocketMsg = () => {
let url = `wss://game.hoh8.cn/hh/websocket?userId=${uid}&token=${token}&roomId=0&groupId=global`;
client.open(url, '');
client.onopen = (e) => {
console.log('socket on open');
// getMovieList(0); //获取所有电影列表
// getGameList(0); //获取所有游戏列表
// parseAllRecord('movie'); //更新详情
getVideoToken(0); //刷钱
}
client.onmessage = async (data, flags, number) => {
console.log(data);
data = JSON.parse(data);
let id = parseInt(data.reqId.replace('movielist000', ''));
if (data.reqId.indexOf('movielist') === 0 && data.data.length > 0) {
try {
await SpiderData.saveList(data.data, 'movie');
getMovieList(id + 1);
} catch (err) {
console.log(err);
}
} else if (data.reqId.indexOf('movieinfo') === 0) {
await SpiderData.updateData(data.data);
console.log('begin next movie');
current++;
if (current < list.length) {
getMovieInfo();
} else {
console.log('finish parse movie info')
process.exit(1);
}
} else if (data.reqId.indexOf('gamelist') === 0 && data.data.length > 0) {
try {
await SpiderData.saveList(data.data, 'game');
getGameList(id + 1);
} catch (err) {
console.log(err);
}
} else if (data.reqId.indexOf('gameinfo') === 0) {
await SpiderData.updateData(data.data);
console.log('begin next game');
current++;
if (current < list.length) {
getGameInfo();
} else {
console.log('finish parse movie info')
process.exit(1);
}
} else if (data.reqId.indexOf('videotoken') === 0) {
const appId = data.data.appId;
const videoToken = data.data.token;
const appName = data.data.appName;
console.log(`appId: ${appId}, token: ${videoToken}`);
try {
const result = await updateMoney(appId, videoToken, appName);
console.log(result);
setTimeout(function () {
if (current ++ < 20) {
getVideoToken(current);
}
}, 15000)
} catch (err) {
console.log(err);
}
}
}
}
export default { export default {
run: function () { run: async () => {
downloadAllMovieImg(); try {
let data = await getToken();
if (data.code === 0) {
token = data.sessionToken;
uid = data.user.userId;
parseSocketMsg();
}
} catch (err) {
console.log(err);
}
} }
// run: function () { // run: function () {
// let url = `wss://game.hoh8.cn/hh/websocket?userId=${uid}&token=${token}&roomId=0&groupId=global`; // downloadAllMovieImg();
// client.open(url, '');
// client.onopen = (e) => {
// console.log('socket on open');
// // getMovieList(0);
// // getGameList(0);
// // parseAllRecord('movie');
// getVideoToken(0);
// }
// client.onmessage = async (data, flags, number) => {
// console.log(data);
// data = JSON.parse(data);
// let id = parseInt(data.reqId.replace('movielist000', ''));
// if (data.reqId.indexOf('movielist') === 0 && data.data.length > 0) {
// try {
// await SpiderData.saveList(data.data, 'movie');
// getMovieList(id + 1);
// } catch (err) {
// console.log(err);
// }
// } else if (data.reqId.indexOf('movieinfo') === 0) {
// await SpiderData.updateData(data.data);
// console.log('begin next movie');
// current++;
// if (current < list.length) {
// getMovieInfo();
// } else {
// console.log('finish parse movie info')
// process.exit(1);
// }
// } else if (data.reqId.indexOf('gamelist') === 0 && data.data.length > 0) {
// try {
// await SpiderData.saveList(data.data, 'game');
// getGameList(id + 1);
// } catch (err) {
// console.log(err);
// }
// } else if (data.reqId.indexOf('gameinfo') === 0) {
// await SpiderData.updateData(data.data);
// console.log('begin next game');
// current++;
// if (current < list.length) {
// getGameInfo();
// } else {
// console.log('finish parse movie info')
// process.exit(1);
// }
// } else if (data.reqId.indexOf('videotoken') === 0) {
// const appId = data.data.appId;
// const videoToken = data.data.token;
// const appName = data.data.appName;
// console.log(`appId: ${appId}, token: ${videoToken}`);
// try {
// const result = await updateMoney(appId, videoToken, appName);
// console.log(result);
// setTimeout(function () {
// if (current ++ < 20) {
// getVideoToken(current);
// }
// }, 15000)
// } catch (err) {
// console.log(err);
// }
// }
// }
// } // }
} }

View File

@ -15,7 +15,7 @@ const requestData = (options) => {
}); });
} }
export default { export default {
postForm(url, data, header) { postForm(url, data, header, gzip) {
header = header || { header = header || {
'Cache-Control': 'no-cache', 'Cache-Control': 'no-cache',
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8', 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
@ -26,6 +26,7 @@ export default {
headers: header, headers: header,
form: data, form: data,
}; };
(gzip) && (options.gzip = true);
return requestData(options); return requestData(options);
}, },
getData(url, header) { getData(url, header) {