const axios = require('axios'); const qs = require('qs'); const BBS_ID_LIST = [356, 888]; const APP_VERSION = "2.18.0"; const APP_VERSION_CODE = "37"; const HERO_MYS_TOKEN = process.env.HERO_MYS_TOKEN; const HERO_MYS_KEY = process.env.HERO_MYS_KEY; const HERO_MYS_DEVCODE = process.env.HERO_MYS_DEVCODE; const HERO_MYS_RV = process.env.HERO_MYS_RV; function checkParams(token, key, devcode, rv) { if (!token || !key || !devcode || !rv) { console.log('未设置HERO_MYS_TOKNE、HERO_MYS_KEY、HERO_MYS_RV或HERO_MYS_DEVCODE环境变量,多个使用#分割'); process.exit(1); // 1 表示退出程序,可以使用其他值表示不同的退出状态 } } async function sign() { checkParams(HERO_MYS_TOKEN, HERO_MYS_KEY, HERO_MYS_DEVCODE, HERO_MYS_RV); let tokens = HERO_MYS_TOKEN.split('#'); let keys = HERO_MYS_KEY.split('#'); let devcodes = HERO_MYS_DEVCODE.split('#'); let rvs = HERO_MYS_RV.split('#'); if (tokens.length !== keys.length || tokens.length !== devcodes.length || tokens.length !== rvs.length) { console.log('HERO_MYS_TOKNE、HERO_MYS_KEY、HERO_MYS_DEVCODE或HERO_MYS_RV设置错误,数量不一致!'); process.exit(1); } // 多账号执行签到 for (let i = 0; i < tokens.length; i++) { try { let token = tokens[i]; let key = keys[i]; let devcode = devcodes[i]; let rv = rvs[i]; let config = { method: 'post', maxBodyLength: Infinity, url: 'https://herobox.yingxiong.com:25362/user/mine', headers: { 'Host': 'herobox.yingxiong.com:25362', 'log-header': 'I am the log request header.', 'countrycode': 'CN', 'devcode': devcode, 'ip': '192.168.0.107', 'key': key, 'lang': 'zh-Hans', 'model': 'RMX1991', 'osversion': 'Android', 'rv': rv, 'source': 'android', 'token': token, 'version': APP_VERSION, 'versioncode': APP_VERSION_CODE, 'content-type': 'application/x-www-form-urlencoded', 'content-length': '10', 'accept-encoding': 'gzip', 'user-agent': 'okhttp/3.10.0' }, data: "https://herobox.yingxiong.com/user/mine" }; let userReq = await axios.request(config); if (userReq.status !== 200 || userReq.data.code !== 200) { console.log("获取用户信息失败或账号失效"); continue; } let name = userReq.data.data.mine.userName; let uid = userReq.data.data.mine.userId; let registerTime = userReq.data.data.mine.registerTime; let goldNum = userReq.data.data.mine.goldNum; console.log(`账号:${name},摸鱼币:${goldNum}(UID:${uid},注册时间:${registerTime})`); for (let bbsId of BBS_ID_LIST) { config['url'] = 'https://herobox.yingxiong.com:25362/user/signIn'; config['data'] = qs.stringify({ 'gameId': bbsId }); let response = await axios.request(config); if (response.status === 200 && response.data.code === 200) { let continuitySignInDay = response.data.data.continuitySignInDay; let totalSignInDay = response.data.data.totalSignInDay; console.log(`BBS_ID:${bbsId}签到成功,连续签到${continuitySignInDay},累计签到${totalSignInDay}天`) } else if (response.data.code === 10000) { console.log(`BBS_ID:${bbsId},${response.data.msg}`); } else { console.log(`BBS_ID:${bbsId},签到失败`); } } } catch (e) { console.log(e.message); } } } sign().then(r => console.log("Running..."));