mirror of
https://github.com/hex-ci/smzdm_script.git
synced 2026-02-03 02:24:41 +08:00
198 lines
4.2 KiB
JavaScript
198 lines
4.2 KiB
JavaScript
/*
|
|
smzdm 全民众测能量值任务脚本
|
|
项目地址: https://github.com/hex-ci/smzdm_script
|
|
|
|
cron: 20 15 * * *
|
|
*/
|
|
|
|
const Env = require('./env');
|
|
const { requestApi, getEnvCookies, wait } = require('./bot');
|
|
const notify = require('./sendNotify');
|
|
const { SmzdmTaskBot } = require('./library_task');
|
|
|
|
// ------------------------------------
|
|
|
|
const $ = new Env('smzdm 全民众测能量值任务');
|
|
|
|
class SmzdmTestingTaskBot extends SmzdmTaskBot {
|
|
constructor(cookie) {
|
|
super(cookie, $);
|
|
}
|
|
|
|
// 主函数
|
|
async run() {
|
|
const activityId = await this.getTestingActivityId();
|
|
|
|
if (!activityId) {
|
|
return '';
|
|
}
|
|
|
|
await wait(5, 10);
|
|
|
|
const activityInfo = await this.getTestingActivityInfo(activityId);
|
|
|
|
if (!activityInfo) {
|
|
return '';
|
|
}
|
|
|
|
await wait(5, 10);
|
|
|
|
let notifyMsg = await this.doTasks(activityInfo.activity_task.default_list);
|
|
|
|
await wait(3, 5);
|
|
|
|
// 查询当前拥有的能量数量, 以及过期时间
|
|
notifyMsg += await this.getMyTestingInfo();
|
|
|
|
return notifyMsg || '无可执行任务';
|
|
}
|
|
|
|
// 获取当前能量值任务的活动 ID
|
|
async getTestingActivityId() {
|
|
$.log('获取活动 ID');
|
|
|
|
const { isSuccess, data, response } = await requestApi('https://zhiyou.m.smzdm.com/task/task/ajax_get_activity_id', {
|
|
method: 'get',
|
|
data: {
|
|
'from': 'zhongce'
|
|
},
|
|
headers: {
|
|
...this.getHeadersForWeb(),
|
|
Origin: 'https://test.m.smzdm.com',
|
|
Referer: 'https://test.m.smzdm.com/'
|
|
}
|
|
});
|
|
|
|
if (isSuccess) {
|
|
return data.data.activity_id;
|
|
}
|
|
else {
|
|
$.log(`获取活动 ID 失败!${response}`);
|
|
|
|
return false;
|
|
}
|
|
}
|
|
|
|
// 获取活动下的所有任务
|
|
async getTestingActivityInfo(id) {
|
|
$.log('获取活动信息');
|
|
|
|
const { isSuccess, data, response } = await requestApi('https://zhiyou.m.smzdm.com/task/task/ajax_get_activity_info', {
|
|
method: 'get',
|
|
data: {
|
|
'activity_id': id
|
|
},
|
|
headers: this.getHeadersForWeb()
|
|
});
|
|
|
|
if (isSuccess) {
|
|
return data.data;
|
|
}
|
|
else {
|
|
$.log(`获取活动信息失败!${response}`);
|
|
|
|
return false;
|
|
}
|
|
}
|
|
|
|
// 众测中心-必中券信息查询
|
|
async getMyTestingInfo() {
|
|
$.log('获取必中券信息');
|
|
|
|
const { isSuccess, data, response } = await requestApi('https://test.m.smzdm.com/win_coupon/user_data', {
|
|
method: 'get',
|
|
headers: this.getHeadersForWeb()
|
|
});
|
|
|
|
if (isSuccess) {
|
|
const msg = `当前拥有必中券: ${data.data.my_energy.my_energy_total}\n必中券过期时间: ${data.data.my_energy.energy_expired_time}`;
|
|
|
|
$.log(msg);
|
|
|
|
return `\n${msg}\n`;
|
|
}
|
|
else {
|
|
$.log(`获取个人必中券信息失败!${response}`);
|
|
|
|
return '';
|
|
}
|
|
}
|
|
|
|
// 领取奖励
|
|
async receiveReward(taskId) {
|
|
const { isSuccess, response } = await requestApi('https://zhiyou.m.smzdm.com/task/task/ajax_activity_task_receive', {
|
|
method: 'post',
|
|
data: {
|
|
'task_id': taskId
|
|
},
|
|
headers: this.getHeadersForWeb()
|
|
});
|
|
|
|
if (isSuccess) {
|
|
$.log('领取成功!');
|
|
|
|
return {
|
|
isSuccess,
|
|
msg: ''
|
|
};
|
|
}
|
|
else {
|
|
$.log(`领取任务奖励失败!${response}`);
|
|
|
|
return {
|
|
isSuccess,
|
|
msg: '领取任务奖励失败!'
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
!(async () => {
|
|
if (process.env.SMZDM_TASK_TESTING != 'yes') {
|
|
$.log('\n🟡请设置 SMZDM_TASK_TESTING 环境变量值为 yes 后才能运行全民众测能量值任务!');
|
|
|
|
return;
|
|
}
|
|
|
|
const cookies = getEnvCookies();
|
|
|
|
if (cookies === false) {
|
|
$.log('\n请先设置 SMZDM_COOKIE 环境变量');
|
|
|
|
return;
|
|
}
|
|
|
|
let notifyContent = '';
|
|
|
|
for (let i = 0; i < cookies.length; i++) {
|
|
const cookie = cookies[i];
|
|
|
|
if (!cookie) {
|
|
continue;
|
|
}
|
|
|
|
if (i > 0) {
|
|
$.log();
|
|
await wait(10, 30);
|
|
$.log();
|
|
}
|
|
|
|
const sep = `\n****** 账号${i + 1} ******\n`;
|
|
|
|
$.log(sep);
|
|
|
|
const bot = new SmzdmTestingTaskBot(cookie);
|
|
const msg = await bot.run();
|
|
|
|
notifyContent += `${sep}${msg}\n`;
|
|
}
|
|
|
|
$.log();
|
|
|
|
await notify.sendNotify($.name, notifyContent);
|
|
})().catch((e) => {
|
|
$.log('', `❌ ${$.name}, 失败! 原因: ${e}!`, '')
|
|
}).finally(() => {
|
|
$.done();
|
|
});
|