Files
KingJin-web-zy/微信小程序/雀巢.js
2025-09-13 14:20:00 +08:00

167 lines
5.7 KiB
JavaScript
Raw 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.
// 大大鸣版 雀巢
// 环境变量 NESTLE_TOKEN 抓取 Authorization 的值例如bearer 0610099d-550e-4e8d-9624-6840ff680812只需要 bearer 后面的值
/**
* const $ = new Env('雀巢')
* cron: 30 12 * * * (建议根据实际情况调整)
* 变量export NESTLE_TOKEN="Authorization"
* 入口:#小程序://雀巢会员/O0NOfAHwAGV3tZb
*
*/
//自己的User-Agent 不设置将会调用getRandomUserAgent随机分配
// https://useragent.todaynav.com/ 微信打开此网站即可
var User_Agent = "";
const axios = require("axios");
const $ = {
name: "雀巢会员",
wait: a => new Promise(e => setTimeout(e, a)),
logErr: e => console.error(e),
done: () => console.log("任务完成")
};
const nestleList = process.env.NESTLE_TOKEN ? process.env.NESTLE_TOKEN.split(/[\n&]/) : [];
let message = "";
function getRandomUserAgent() {
if (User_Agent) {
return User_Agent;
}
const a = ["Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148", "Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36"];
return a[Math.floor(Math.random() * a.length)];
}
function getRandomWait(e, a) {
return Math.floor(Math.random() * (a - e + 1) + e);
}
async function sendRequest(e, a, n, t = null) {
try {
const o = {
url: e,
method: a,
headers: n,
timeout: 1e4,
validateStatus: () => true
};
if (t && (a.toLowerCase() === "post" || a.toLowerCase() === "put")) {
o.data = t;
}
const r = await axios(o);
return r.data;
} catch (e) {
console.error("请求失败: " + e.message);
return {
errcode: 500,
errmsg: "请求失败: " + e.message
};
}
}
const headers = {
"User-Agent": getRandomUserAgent(),
"content-type": "application/json",
referer: "https://servicewechat.com/wxc5db704249c9bb31/353/page-frame.html"
};
(async () => {
// printBanner();
console.log("\n已随机分配 User-Agent\n\n" + headers["User-Agent"]);
for (let e = 0; e < nestleList.length; e++) {
const n = e + 1;
console.log("\n*****第[" + n + "]个" + "雀巢会员" + "账号*****");
headers.authorization = "Bearer " + nestleList[e];
message += "📣====雀巢会员账号[" + n + "]====📣\n";
await main();
await $.wait(Math.floor(Math.random() * 501 + 2e3));
}
if (message) {
console.log("\n执行结果汇总\n" + message);
}
})()["catch"](e => console.error(e))["finally"](() => console.log("任务完成"));
async function main() {
await getUserInfo();
await everyDaySign()
await $.wait(Math.floor(Math.random() * 1001 + 1e3));
await getTaskList();
await $.wait(Math.floor(Math.random() * 1001 + 1e3));
await getUserBalance();
}
async function getUserInfo() {
try {
const e = await sendRequest("https://crm.nestlechinese.com/openapi/member/api/User/GetUserInfo", "get", headers);
if (200 !== e.errcode) {
return console.error("获取用户信息失败:" + e.errmsg);
}
const {
nickname: n,
mobile: t
} = e.data;
console.log("用户:" + n + "(" + t + ")");
message += "用户:" + n + "(" + t + ")\n";
} catch (e) {
console.error("获取用户信息时发生异常 -> " + e);
}
}
async function getTaskList() {
try {
const e = await sendRequest("https://crm.nestlechinese.com/openapi/activityservice/api/task/getlist", "post", headers);
if (200 !== e.errcode) {
return console.error("获取任务列表失败:" + e.errmsg);
}
for (const n of e.data) {
console.log("开始【" + n.task_title + "】任务");
await doTask(n.task_guid);
await $.wait(Math.floor(Math.random() * 501 + 2e3));
}
} catch (e) {
console.error("获取任务列表时发生异常 -> " + e);
}
}
async function doTask(e) {
try {
const n = await sendRequest("https://crm.nestlechinese.com/openapi/activityservice/api/task/add", "post", headers, {
task_guid: e
});
if (201 == n.errcode) {
return console.error("任务失败 -> " + n.errmsg + "\n");
}
console.log("完成任务" + n.errcode + " -> " + n.errmsg + "\n");
} catch (e) {
console.error("完成任务时发生异常 -> " + e);
}
}
async function everyDaySign() {
let data = JSON.stringify({
"rule_id": 1,
"goods_rule_id": 1
});
try {
const e = await sendRequest("https://crm.nestlechinese.com/openapi/activityservice/api/sign2025/sign", "post", headers, data);
if (200 !== e.errcode) {
return console.error("用户每日签到失败:" + e.errmsg);
}
console.log("当前签到天数:" + e.data.sign_day);
message += "当前签到天数:" + e.data.sign_day + "\n\n";
} catch (e) {
console.error("用户每日签到发生异常 -> " + e);
}
}
async function getUserBalance() {
try {
const e = await sendRequest("https://crm.nestlechinese.com/openapi/pointsservice/api/Points/getuserbalance", "post", headers);
if (200 !== e.errcode) {
return console.error("获取用户积分余额失败:" + e.errmsg);
}
console.log("当前巢币:" + e.data);
message += "当前巢币:" + e.data + "\n\n";
} catch (e) {
console.error("获取用户巢币时发生异常 -> " + e);
}
}