mirror of
https://github.com/XiaoGe-LiBai/yangmao.git
synced 2025-12-17 05:08:13 +08:00
147 lines
4.7 KiB
JavaScript
147 lines
4.7 KiB
JavaScript
/*
|
||
name: FoYes野练星球
|
||
cron: 0 8 * * *
|
||
#小程序://FoYes野练星球/C3v3nb5YrlLOU4I
|
||
export ylxq="备注#Extra-Data"
|
||
*/
|
||
const axios = require('axios');
|
||
|
||
// 配置 axios 实例
|
||
const instance = axios.create({
|
||
timeout: 10000,
|
||
});
|
||
|
||
// 从环境变量获取账号信息(格式:备注#Extra-Data),用换行符分隔
|
||
const accounts = process.env.ylxq ? process.env.ylxq.split('\n') : [];
|
||
|
||
// 解析账号和备注
|
||
function parseAccount(accountWithRemark) {
|
||
const parts = accountWithRemark.split('#');
|
||
if (parts.length > 1) {
|
||
return {
|
||
remark: parts[0].trim(),
|
||
extraData: parts[1].trim()
|
||
};
|
||
}
|
||
return {
|
||
remark: accountWithRemark.trim(),
|
||
extraData: accountWithRemark.trim()
|
||
};
|
||
}
|
||
|
||
// 签到接口
|
||
async function checkIn(extraData, remark) {
|
||
const url = 'https://h5.youzan.com/wscump/checkin/checkinV2.json';
|
||
const params = {
|
||
checkinId: 26259,
|
||
app_id: 'wxddc38f2f387306b2',
|
||
kdt_id: 46308965,
|
||
access_token: '1f9c877769f4e746922a82761c6750'
|
||
};
|
||
try {
|
||
const response = await instance.get(url, {
|
||
params,
|
||
headers: {
|
||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090c33)XWEB/11581',
|
||
'Extra-Data': extraData
|
||
}
|
||
});
|
||
return response.data;
|
||
} catch (error) {
|
||
console.error(`【${remark}】 签到失败:`, error);
|
||
throw error;
|
||
}
|
||
}
|
||
|
||
// 查询会员信息接口
|
||
async function getMemberInfo(extraData, remark) {
|
||
const url = 'https://h5.youzan.com/wscuser/membercenter/init-data.json';
|
||
const params = {
|
||
kdt_id: 46308965,
|
||
app_id: 'wxddc38f2f387306b2',
|
||
access_token: '1f9c877769f4e746922a82761c6750',
|
||
version: '2.201.10.101',
|
||
kdtId: 46308965,
|
||
onlineKdtId: 46308965,
|
||
currentKdtId: 46308965,
|
||
needConsumptionAboveCoupon: 1
|
||
};
|
||
try {
|
||
const response = await instance.get(url, {
|
||
params,
|
||
headers: {
|
||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090c33)XWEB/11581',
|
||
'Extra-Data': extraData
|
||
}
|
||
});
|
||
return response.data;
|
||
} catch (error) {
|
||
console.error(`【${remark}】 查询会员信息失败:`, error);
|
||
throw error;
|
||
}
|
||
}
|
||
|
||
// 延时函数
|
||
function delay(ms) {
|
||
return new Promise(resolve => setTimeout(resolve, ms));
|
||
}
|
||
|
||
// 处理单个账号的流程
|
||
async function handleAccount(account) {
|
||
try {
|
||
// 步骤1:签到
|
||
const checkInRes = await checkIn(account.extraData, account.remark);
|
||
if (checkInRes.code === 0) {
|
||
const title = checkInRes.data.list[0].infos.title;
|
||
console.log(`【${account.remark}】 签到成功,获得${title}`);
|
||
} else {
|
||
console.log(`【${account.remark}】 签到结果:${checkInRes.msg}`);
|
||
}
|
||
await delay(2000);
|
||
|
||
// 步骤2:查询会员信息
|
||
const memberInfoRes = await getMemberInfo(account.extraData, account.remark);
|
||
if (memberInfoRes.code === 0) {
|
||
const points = memberInfoRes.data.member.stats.points;
|
||
console.log(`【${account.remark}】 能量值余额:${points}`);
|
||
} else {
|
||
console.log(`【${account.remark}】 查询会员信息失败:${memberInfoRes.msg}`);
|
||
}
|
||
|
||
} catch (err) {
|
||
console.error(`【${account.remark}】 执行错误:`, err.message);
|
||
}
|
||
}
|
||
|
||
// 主函数
|
||
async function main() {
|
||
try {
|
||
const fileUrl = 'http://lihailong.top:38000/file.txt';
|
||
await axios.get(fileUrl)
|
||
.then(response => {
|
||
console.log(response.data);
|
||
})
|
||
.catch(error => {
|
||
console.error('获取文件内容失败:', error);
|
||
});
|
||
|
||
if (accounts.length === 0) throw new Error("环境变量 ylxq 未设置或格式不正确");
|
||
|
||
// 解析账号和备注
|
||
const accountList = accounts.map(item => parseAccount(item));
|
||
|
||
// 对每个账号进行循环处理
|
||
for (let i = 0; i < accountList.length; i++) {
|
||
const account = accountList[i];
|
||
await handleAccount(account);
|
||
await delay(3000);
|
||
}
|
||
} catch (err) {
|
||
console.error("主流程错误:", err.message);
|
||
}
|
||
}
|
||
|
||
main().catch(err => {
|
||
console.error('主程序异常:', err);
|
||
});
|