// # Source: https://github.com/sudojia/AutoTaskScript/blob/script/src/wx_mini/sudojia_botanyStar.js // # Raw: https://raw.githubusercontent.com/sudojia/AutoTaskScript/script/src/wx_mini/sudojia_botanyStar.js // # Repo: sudojia/AutoTaskScript // # Path: src/wx_mini/sudojia_botanyStar.js // # UploadedAt: 2025-04-28T19:26:13+08:00 // # SHA256: 01e30b77f8153378a3f6ef3e942ba54083ee56179b1ed2ef39eff8d4b5284731 // # Category: 微信小程序/抓包版 // # Evidence: appid/openid/session_key/encryptedData等小程序字段 // /** * 植物星球小程序 * * 注册登录之后在 我的 -> 账号管理 -> 修改密码 进行重设密码 * export BOTANY_ACCOUNT = '18888888888#sudojia' 手机号#密码 * 多账号用 & 或换行 * * @author Telegram@sudojia * @site https://blog.imzjw.cn * @date 2024/07/09 * * const $ = new Env('植物星球') * cron: 32 13 * * * */ const initScript = require('../utils/initScript') const {$, notify, sudojia, checkUpdate} = initScript('植物星球'); const botanyList = process.env.BOTANY_ACCOUNT ? process.env.BOTANY_ACCOUNT.split(/[\n&]/) : []; let message = ''; // 接口地址 const baseUrl = 'https://api.pftp2012.com' // 请求头 const headers = { 'user-agent': sudojia.getRandomUserAgent(), 'accept-encoding': 'gzip, deflate, br', 'referer': 'https://servicewechat.com/wxd7296b6421fc974e/1/page-frame.html', 'content-type': 'application/x-www-form-urlencoded', 'accept': '*/*', }; !(async () => { await checkUpdate($.name, botanyList); console.log(`\n已随机分配 User-Agent\n\n${headers['user-agent'] || headers['User-Agent']}`); for (let i = 0; i < botanyList.length; i++) { const index = i + 1; const [phone, password] = botanyList[i].split('#'); console.log(`\n*****第[${index}]个${$.name}账号*****`); if (!await login(phone, sudojia.md5(password))) { continue; } message += `📣====${$.name}账号[${index}]====📣\n`; await $.wait(sudojia.getRandomWait(800, 1200)); 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 sign(); await $.wait(sudojia.getRandomWait(800, 1200)); console.log(`开始浏览任务...\n如果绿星币+0,那么说明已经完成浏览任务了`); await doTask('10'); await $.wait(11000); await doTask('60'); await $.wait(sudojia.getRandomWait(800, 1200)); await getPoints(); } /** * 登录 * * @param phone * @param password * @return {Promise} */ async function login(phone, password) { try { const data = await sudojia.sendRequest(`${baseUrl}/api/Member/Login`, 'post', headers, `userName=${phone}&userPwd=${password}`); if (100 !== data.Status) { return null; } $.userToken = data.Data.MemberInfo.Token; headers.Authorization = `Bearer ${$.userToken}`; return $.userToken; } catch (e) { console.error(`登录时发生异常:${e}`); return null; } } /** * 签到 * * @return {Promise} */ async function sign() { await $.wait(sudojia.getRandomWait(800, 1100)); try { const data = await sudojia.sendRequest(`${baseUrl}/api/Member/SignIn`, 'post', headers); if (100 !== data.Status) { console.error(data.Msg); return; } // 签到天数 const signDays = data.Data.ContinuouNum; console.log(`签到成功!绿星币+${data.Data.PollenNum},已连续签到${signDays}天`); message += `签到成功!绿星币+${data.Data.PollenNum}\n已连续签到${signDays}天\n`; } catch (e) { console.error(`签到时发生异常:${e}`); } } /** * 浏览任务 * * @param taskId 任务ID * @return {Promise} */ async function doTask(taskId) { try { const data = await sudojia.sendRequest(`${baseUrl}/api/Member/CompleteMemberMission`, 'post', headers, `type=${taskId}&channel=40`); if (100 !== data.Status) { console.error(data.Msg); return; } console.log(`浏览任务成功,绿星币+${data.Data}`); } catch (e) { console.error(`浏览任务时发生异常:${e}`); } } /** * 获取绿星币 * * @return {Promise} */ async function getPoints() { try { const data = await sudojia.sendRequest(`${baseUrl}/api/Member/GetMemberInfo`, 'get', headers); if (100 !== data.Status) { console.error(data.Msg); return; } const points = data.Data.MemberInfo.MemberPollen; console.log(`当前绿星币:${points}`); message += `当前绿星币:${points}\n\n`; } catch (e) { console.error(`获取绿星币时发生异常:${e}`); } }