Files
qinglong/脚本库/微信小程序/抓包版/植物星球/2025-04-28_sudojia_botanyStar_01e30b77.js
2026-05-24 05:33:05 +00:00

153 lines
4.9 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_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<void>}
*/
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<void>}
*/
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<void>}
*/
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<void>}
*/
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}`);
}
}