// # Source: https://github.com/sudojia/AutoTaskScript/blob/script/src/wx_mini/sudojia_nestle.js // # Raw: https://raw.githubusercontent.com/sudojia/AutoTaskScript/script/src/wx_mini/sudojia_nestle.js // # Repo: sudojia/AutoTaskScript // # Path: src/wx_mini/sudojia_nestle.js // # UploadedAt: 2025-04-28T19:26:13+08:00 // # SHA256: 86dc1a42e90d023d443758d5634cec776618bb521efbf7a7933facb1257d9b92 // # Category: 微信小程序/抓包版 // # Evidence: appid/openid/session_key/encryptedData等小程序字段 // /** * #小程序://雀巢会员/4EpKApLxlhQhsiu * * 抓包 Host:https://crm.nestlechinese.com 获取请求头 authorization 并且删掉 Bearer * export NESTLE_TOKEN = 'eyJhbxxxxXXXXxxxxxXXX' * 多账号用 & 或换行 * * @author Telegram@sudojia * @site https://blog.imzjw.cn * @date 2024/11/27 * * const $ = new Env('雀巢会员') * cron: 28 8 * * * */ const initScript = require('../utils/initScript') const {$, notify, sudojia, checkUpdate} = initScript('雀巢会员'); const nestleList = process.env.NESTLE_TOKEN ? process.env.NESTLE_TOKEN.split(/[\n&]/) : []; let message = ''; // 接口地址 const baseUrl = 'https://crm.nestlechinese.com' // 请求头 const headers = { 'User-Agent': sudojia.getRandomUserAgent(), 'content-type': 'application/json', 'referer': 'https://servicewechat.com/wxc5db704249c9bb31/353/page-frame.html', }; !(async () => { await checkUpdate($.name, nestleList); console.log(`\n已随机分配 User-Agent\n\n${headers['user-agent'] || headers['User-Agent']}`); for (let i = 0; i < nestleList.length; i++) { const index = i + 1; console.log(`\n*****第[${index}]个${$.name}账号*****`); headers.authorization = `Bearer ${nestleList[i]}`; 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(1e3, 2e3)); await getTaskList(); await $.wait(sudojia.getRandomWait(1e3, 2e3)); await getUserBalance(); } /** * 获取用户信息 * * @return {Promise} */ async function getUserInfo() { try { const data = await sudojia.sendRequest(`${baseUrl}/openapi/member/api/User/GetUserInfo`, 'get', headers); if (200 !== data.errcode) { return console.error(`获取用户信息失败:${data.errmsg}`); } const {nickname, mobile} = data.data; console.log(`用户:${nickname}(${mobile})`); message += `用户:${nickname}(${mobile})\n`; } catch (e) { console.error(`获取用户信息时发生异常 -> ${e}`); } } async function getTaskList() { try { const data = await sudojia.sendRequest(`${baseUrl}/openapi/activityservice/api/task/getlist`, 'post', headers); if (200 !== data.errcode) { return console.error(`获取任务列表失败:${data.errmsg}`); } for (const task of data.data) { console.log(`开始【${task.task_title}】任务`) await doTask(task.task_guid); await $.wait(sudojia.getRandomWait(2000, 2500)); } } catch (e) { console.error(`获取任务列表时发生异常 -> ${e}`); } } async function doTask(task_guid) { try { const data = await sudojia.sendRequest(`${baseUrl}/openapi/activityservice/api/task/add`, 'post', headers, { "task_guid": task_guid }); if (200 !== data.errcode) { return console.error(`任务失败 -> ${data.errmsg}\n`); } console.log(`完成任务 -> ${data.errmsg}\n`); } catch (e) { console.error(`完成任务时发生异常 -> ${e}`); } } async function getUserBalance() { try { const data = await sudojia.sendRequest(`${baseUrl}/openapi/pointsservice/api/Points/getuserbalance`, 'post', headers); if (200 !== data.errcode) { return console.error(`获取用户积分余额失败:${data.errmsg}`); } console.log(`当前巢币:${data.data}`); message += `当前巢币:${data.data}\n\n`; } catch (e) { console.error(`获取用户巢币时发生异常 -> ${e}`); } }