Files
qinglong/脚本库/微信小程序/抓包版/欣都龙城/2025-04-28_sudojia_mallcoo_6ca50f24.js
2026-05-24 05:33:05 +00:00

222 lines
6.6 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// # Source: https://github.com/sudojia/AutoTaskScript/blob/script/src/wx_mini/sudojia_mallcoo.js
// # Raw: https://raw.githubusercontent.com/sudojia/AutoTaskScript/script/src/wx_mini/sudojia_mallcoo.js
// # Repo: sudojia/AutoTaskScript
// # Path: src/wx_mini/sudojia_mallcoo.js
// # UploadedAt: 2025-04-28T19:26:13+08:00
// # SHA256: 6ca50f248e9de6ddd7225c30ef1a1fe7f56a6b0b9f9bed0f489b5d7a3829374f
// # Category: 微信小程序/抓包版
// # Evidence: appid/openid/session_key/encryptedData等小程序字段
//
/**
* 欣都龙城小程序
*
* 抓包 Hosthttps://m.mallcoo.cn 随便找一个 url在 Body 中获取 Token 的值
* export MALLCOO_TOKEN = '_Fl34xxxxxxxxxxxxxxxx'
* 多账号用 & 或换行
*
* @author Telegram@sudojia
* @site https://blog.imzjw.cn
* @date 2024/07/22
*
* const $ = new Env('欣都龙城')
* cron: 48 10 * * *
*/
const initScript = require('../utils/initScript')
const {$, notify, sudojia, checkUpdate} = initScript('欣都龙城');
const mallcooList = process.env.MALLCOO_TOKEN ? process.env.MALLCOO_TOKEN.split(/[\n&]/) : [];
let message = '';
// 接口地址
const baseUrl = 'https://m.mallcoo.cn'
// 请求头
const headers = {
'User-Agent': sudojia.getRandomUserAgent(),
'Content-Type': 'application/json',
'Accept': '*/*',
'Referer': 'https://servicewechat.com/wx7ef63cf605a639fb/18/page-frame.html',
'Accept-Encoding': 'gzip, deflate, br',
};
// 请求体
let getBody = {
"MallId": 10144,
"Header": {
"systemInfo": {
"model": "microsoft",
"SDKVersion": "3.5.0",
"system": "Windows 11 x64",
"version": "3.9.10",
"miniVersion": "2.67.7"
}
}
}
!(async () => {
await checkUpdate($.name, mallcooList);
console.log(`\n已随机分配 User-Agent\n\n${headers['user-agent'] || headers['User-Agent']}`);
for (let i = 0; i < mallcooList.length; i++) {
const index = i + 1;
$.isLogin = true;
getBody.Header.Token = mallcooList[i];
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();
if (!$.isLogin) {
console.error('用户token错误或已过期');
process.exit(0);
}
await $.wait(sudojia.getRandomWait(2000, 2500));
await checkinBefore();
await $.wait(sudojia.getRandomWait(2000, 2500));
await getPoints();
await $.wait(sudojia.getRandomWait(2000, 2500));
await getCheckinDetail();
await $.wait(sudojia.getRandomWait(2000, 2500));
await getUserExpiredBonus();
}
/**
* 获取用户信息
*
* @return {Promise<void>}
*/
async function getUserInfo() {
try {
const data = await sudojia.sendRequest(`${baseUrl}/api/user/user/GetUserAndMallCard`, 'post', headers, getBody);
if (1 === data.m) {
console.log(`昵称:${data.d.NickName}`);
message += `昵称:${data.d.NickName}\n`;
} else {
if (320 === data.m) {
$.isLogin = false;
return;
}
console.log(data);
}
} catch (e) {
console.error(`获取用户信息时发生异常:${e}`);
}
}
/**
* 检测签到状态
*
* @return {Promise<void>}
*/
async function checkinBefore() {
try {
let body = JSON.parse(JSON.stringify(getBody));
body.IsCheckMemberCard = true;
const data = await sudojia.sendRequest(`${baseUrl}/api/user/user/CheckinBefore`, 'post', headers, body);
if (1 === data.m) {
if (!data.d.IsCheckIn) {
await $.wait(sudojia.getRandomWait(2000, 2500));
await signIn();
}
} else {
console.error(data.e);
}
} catch (e) {
console.error(`检测签到状态时发生异常:${e}`);
}
}
/**
* 签到
*
* @return {Promise<void>}
*/
async function signIn() {
try {
let body = JSON.parse(JSON.stringify(getBody));
delete body.MallId
body.MallID = 10144;
const data = await sudojia.sendRequest(`${baseUrl}/api/user/User/CheckinV2`, 'post', headers, body);
if (1 === data.m) {
console.log(`签到成功,积分+${data.d.Content}`);
message += `签到成功,积分+${data.d.Content}\n`;
} else {
console.log(data.e);
message += `${data.e}\n`;
}
} catch (e) {
}
}
/**
* 获取积分信息
*
* @return {Promise<void>}
*/
async function getPoints() {
try {
let body = JSON.parse(JSON.stringify(getBody));
delete body.MallId
body.MallID = 10144;
body.PageIndex = 1;
body.PageSize = 10;
const data = await sudojia.sendRequest(`${baseUrl}/api/user/Bonus/GetBonusHistoryList`, 'post', headers, body);
if (1 === data.m) {
console.log(`当前积分:${data.d.TotalBonus}`);
message += `当前积分:${data.d.TotalBonus}\n`;
} else {
console.log(data.e);
}
} catch (e) {
console.error(`获取积分信息时发生异常:${e}`);
}
}
/**
* 获取签到天数
*
* @return {Promise<void>}
*/
async function getCheckinDetail() {
try {
let body = JSON.parse(JSON.stringify(getBody));
delete body.MallId
body.MallID = 10144;
const data = await sudojia.sendRequest(`${baseUrl}/api/user/User/GetCheckinDetail`, 'post', headers, body);
if (1 === data.m) {
console.log(`已连续签到${data.d.ContinueDay}`);
message += `已连续签到${data.d.ContinueDay}\n`;
} else {
console.log(data.e);
}
} catch (e) {
console.error(`获取签到天数时发生异常:${e}`);
}
}
/**
* 获取过期积分
*
* @return {Promise<void>}
*/
async function getUserExpiredBonus() {
try {
let body = JSON.parse(JSON.stringify(getBody));
delete body.MallId
body.MallID = 10144;
const data = await sudojia.sendRequest(`${baseUrl}/api/user/Bonus/GetUserExpiredBonus`, 'post', headers, body);
if (1 === data.m) {
console.log(`${data.d.ExpiredBounsTips}`);
message += `${data.d.ExpiredBounsTips}\n\n`;
} else {
console.log(data.e);
}
} catch (e) {
console.error(`获取过期积分时发生异常:${e}`);
}
}