153 lines
4.9 KiB
JavaScript
153 lines
4.9 KiB
JavaScript
// # 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}`);
|
||
}
|
||
}
|