148 lines
4.4 KiB
JavaScript
148 lines
4.4 KiB
JavaScript
// # Source: https://github.com/sudojia/AutoTaskScript/blob/script/src/client/sudojia_moto.js
|
||
// # Raw: https://raw.githubusercontent.com/sudojia/AutoTaskScript/script/src/client/sudojia_moto.js
|
||
// # Repo: sudojia/AutoTaskScript
|
||
// # Path: src/client/sudojia_moto.js
|
||
// # UploadedAt: 2025-04-28T19:26:13+08:00
|
||
// # SHA256: ba0646a4a049f0e7a0bf3bdbf3ec2ffa6f5a37be53bfe675644630816b6fbad0
|
||
// # Category: APP版/抓包
|
||
// # Evidence: cookie/token/authorization/header
|
||
//
|
||
|
||
/**
|
||
* 摩托范 APP
|
||
*
|
||
* 抓包 Host:https://api.58moto.com 获取请求头 token 的值和 uid (token#uid)
|
||
* export MOTO_TOKEN = 'f08xxxxxxxxxxxxxxxxx#22222222'
|
||
* 多账号用 & 或换行
|
||
*
|
||
* @author Telegram@sudojia
|
||
* @site https://blog.imzjw.cn
|
||
* @date 2024/08/27
|
||
*
|
||
* const $ = new Env('摩托范')
|
||
* cron: 33 3 * * *
|
||
*/
|
||
const initScript = require('../utils/initScript')
|
||
const {$, notify, sudojia, checkUpdate} = initScript('摩托范');
|
||
const moment = require("moment/moment");
|
||
const motoList = process.env.MOTO_TOKEN ? process.env.MOTO_TOKEN.split(/[\n&]/) : [];
|
||
// 消息推送
|
||
let message = '';
|
||
// 接口地址
|
||
const baseUrl = 'https://api.58moto.com'
|
||
// 请求头
|
||
const headers = {
|
||
'User-Agent': 'okhttp/4.11.0',
|
||
'Content-Type': 'application/x-www-form-urlencoded',
|
||
'Accept-Encoding': 'gzip',
|
||
'os': 'OPPO:OPPO+R9s',
|
||
'osversion': '28',
|
||
'referer': 'api.58moto.com',
|
||
'version': '3.57.63',
|
||
'timestamp': Date.now()
|
||
};
|
||
|
||
!(async () => {
|
||
await checkUpdate($.name, motoList);
|
||
for (let i = 0; i < motoList.length; i++) {
|
||
const index = i + 1;
|
||
const [token, uid] = motoList[i].split('#');
|
||
headers.token = token;
|
||
$.userId = uid;
|
||
console.log(`\n*****第[${index}]个${$.name}账号*****`);
|
||
message += `📣====${$.name}账号[${index}]====📣\n`;
|
||
await main();
|
||
await $.wait(sudojia.getRandomWait(2000, 2500));
|
||
}
|
||
if (message) {
|
||
await notify.sendNotify(`「${$.name}」`, `${message}`);
|
||
}
|
||
})().catch((e) => $.logErr(e)).finally(() => $.done());
|
||
|
||
async function main() {
|
||
await getUserInfo();
|
||
await $.wait(sudojia.getRandomWait(800, 1200));
|
||
await isSign();
|
||
await $.wait(sudojia.getRandomWait(1e3, 2e3));
|
||
await getPoints();
|
||
}
|
||
|
||
/**
|
||
* 获取用户信息
|
||
*
|
||
* @returns {Promise<void>}
|
||
*/
|
||
async function getUserInfo() {
|
||
try {
|
||
const data = await sudojia.sendRequest(`${baseUrl}/user/center/info/v2/principal`, 'post', headers, `uid=${$.userId}`);
|
||
if (data.code !== 0) {
|
||
return $.log(data.msg);
|
||
}
|
||
const mobile = data.data.mobile;
|
||
const hiddenMobile = `${mobile.slice(0, 3)}***${mobile.slice(-3)}` || '18888888888';
|
||
console.log(`${data.data.nickname}(${hiddenMobile})`);
|
||
message += `${data.data.nickname}(${mobile})\n`;
|
||
headers.token = data.data.token;
|
||
} catch (e) {
|
||
console.error(`获取用户信息时发生异常:` + e);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 检测签到
|
||
*
|
||
* @returns {Promise<void>}
|
||
*/
|
||
async function isSign() {
|
||
try {
|
||
const data = await sudojia.sendRequest(`${baseUrl}/coins/task/v2/isSign?uid=${$.userId}`, 'get', headers);
|
||
if (data.code !== 0) {
|
||
return $.log(data.msg);
|
||
}
|
||
if (data.data.isSign) {
|
||
message += `今日已签到\n`;
|
||
return $.log(`今日已签到`);
|
||
}
|
||
await $.wait(sudojia.getRandomWait(1e3, 2e3));
|
||
await sign();
|
||
} catch (e) {
|
||
console.error(`检测签到时发生异常:` + e);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 签到
|
||
*
|
||
* @returns {Promise<void>}
|
||
*/
|
||
async function sign() {
|
||
try {
|
||
const data = await sudojia.sendRequest(`${baseUrl}/coins/task/dailyCheckIn`, 'post', headers, `uid=${$.userId}&weekDate=${moment().format('YYYYMMDD')}`);
|
||
if (0 !== data.code) {
|
||
return $.log(data.msg);
|
||
}
|
||
console.log(data.data.contentDesc || '签到成功');
|
||
message += '签到成功\n';
|
||
} catch (e) {
|
||
console.error(`签到时发生异常:` + e);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 获取积分
|
||
*
|
||
* @returns {Promise<void>}
|
||
*/
|
||
async function getPoints() {
|
||
try {
|
||
const data = await sudojia.sendRequest(`${baseUrl}/coins/account/energy?uid=${$.userId}`, 'get', headers);
|
||
if (data.code !== 0) {
|
||
return $.log(data.msg);
|
||
}
|
||
console.log(`当前能量:${data.data.available}`);
|
||
message += `当前能量:${data.data.available}\n\n`;
|
||
} catch (e) {
|
||
console.error(`获取积分时发生异常:` + e);
|
||
}
|
||
}
|