Continue seeded Qinglong script collection

This commit is contained in:
Hermes Agent
2026-05-24 05:33:05 +00:00
parent ca1a4275e4
commit b082da3fe1
392 changed files with 131619 additions and 7 deletions

View File

@@ -0,0 +1,355 @@
// # Source: https://github.com/sudojia/AutoTaskScript/blob/script/src/wx_mini/sudojia_colorful_mall.js
// # Raw: https://raw.githubusercontent.com/sudojia/AutoTaskScript/script/src/wx_mini/sudojia_colorful_mall.js
// # Repo: sudojia/AutoTaskScript
// # Path: src/wx_mini/sudojia_colorful_mall.js
// # UploadedAt: 2025-04-28T19:26:13+08:00
// # SHA256: 5087394f5b0263198225031c3d6e5559f2de251328e9b650c6e4a23cdd227300
// # Category: 微信小程序/抓包版
// # Evidence: appid/openid/session_key/encryptedData等小程序字段
//
/**
* 七彩虹商城小程序
*
* 退出登录后打开抓包再登录才会有此 URL
* 退出登录后打开抓包再登录才会有此 URL
* 退出登录后打开抓包再登录才会有此 URL
*
* 1. 抓包 URLhttps://shop.skycolorful.com/api/User/DecryptPhoneNumber 获取请求体的 Json 数据,全选复制
* 2. 到 JSON 在线工具网站 https://www.json.cn/jsonzip/ 粘贴 json 并压缩
* JSON 必须是一行,不能换行 不能换行 不能换行
* JSON 必须是一行,不能换行 不能换行 不能换行
* JSON 必须是一行,不能换行 不能换行 不能换行
*
* export COLORFUL_TOKEN = '{"OpenId":"xxx","Iv":"xxx","EncryptedData":"iYC3xFxxx"}'
* 多账号用 & 或换行
*
* @author Telegram@sudojia
* @site https://blog.imzjw.cn
* @date 2024/06/18
* @lastModify 2025/01/20
*
* const $ = new Env('七彩虹商城')
* cron: 14 12 * * *
*/
const initScript = require('../utils/initScript')
const {$, notify, sudojia, checkUpdate} = initScript('七彩虹商城');
const colorList = process.env.COLORFUL_TOKEN ? process.env.COLORFUL_TOKEN.split(/[\n&]/) : [];
// 消息推送
let message = '';
// 接口地址
const baseUrl = 'https://shop.skycolorful.com'
// 请求头
const headers = {
'User-Agent': sudojia.getRandomUserAgent(),
'Accept': '*/*',
'source': 'Wx',
'Content-Type': 'application/json',
'Accept-Encoding': 'gzip, deflate, br',
'referer': 'https://servicewechat.com/wx49018277e65fc3e1/61/page-frame.html',
'Ticks': Date.now(),
'requestId': uuidv4(),
'AppSecret': 'MmI1YzAxZmItNzY0MC00MDFhLTgxODgtNDNhMTMxOTBhNjI2',
'AppId': '815d8026-9a52-4445-a42c-a5443134232e',
'Sign': getSign()
};
!(async () => {
await checkUpdate($.name, colorList);
console.log(`\n已随机分配 User-Agent\n\n${headers['user-agent'] || headers['User-Agent']}`);
for (let i = 0; i < colorList.length; i++) {
const index = i + 1;
console.log(`\n*****第[${index}]个${$.name}账号*****`);
await getToken(JSON.parse(colorList[i]));
await $.wait(sudojia.getRandomWait(1200, 2000));
await checkLogin();
if (!$.isLogin) {
console.error(`Token 已失效`);
await notify.sendNotify(`「Token失效通知」`, `${$.name}账号[${index}] Token 已失效,请重新登录获取 Token\n\n`);
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 getUserInfo();
await $.wait(sudojia.getRandomWait(2000, 2500));
await isSign();
await $.wait(sudojia.getRandomWait(2000, 2500));
await newSign();
await $.wait(sudojia.getRandomWait(2000, 2500));
await signDays();
await $.wait(sudojia.getRandomWait(2000, 2500));
await createComment();
await $.wait(sudojia.getRandomWait(1000, 2000));
await getUserPoint();
}
async function getToken(bodyData) {
try {
const data = await sudojia.sendRequest(`${baseUrl}/api/User/DecryptPhoneNumber`, 'post', headers, bodyData);
if (0 !== data.Code) {
return console.error(data.Message);
}
headers.Authorization = `Bearer ${data.Data.Token}`;
headers['X-Authorization'] = `Bearer ${data.Data.RefreshToken}`;
console.log('Token 已更新');
} catch (e) {
console.error(`刷新 Token 时发生异常:${e}`);
}
}
async function checkLogin() {
try {
const data = await sudojia.sendRequest(`${baseUrl}/api/User/RefreshLoginTime`, 'post', headers, {"phone": ""});
if (0 !== data.Code) {
$.isLogin = false;
return;
}
$.isLogin = true;
console.log('Token 有效');
} catch (e) {
console.error('状态:', e.response.status);
$.isLogin = false;
}
}
/**
* 获取用户信息
*
* @return {Promise<*>}
*/
async function getUserInfo() {
try {
const data = await sudojia.sendRequest(`${baseUrl}/api/User/GetUserInfo`, 'get', headers);
if (0 !== data.Code) {
return console.error(data.Message);
}
$.mobile = data.Data.Mobile;
const nickName = data.Data.NickName;
const hiddenMobile = `${$.mobile.slice(0, 3)}***${$.mobile.slice(-3)}`;
console.log(`${nickName}(${hiddenMobile})`);
message += `${nickName}(${$.mobile})\n`
} catch (e) {
console.error(`获取用户信息时发生异常:${e}`);
}
}
/**
* 获取签到状态
*
* @return {Promise<void>}
*/
async function isSign() {
try {
const data = await sudojia.sendRequest(`${baseUrl}/api/User/IsSign`, 'get', headers);
if (data.Code !== 0) {
console.error(data.Message);
return;
}
if (data.Data.IsSign) {
console.log('今日已签到');
message += `今日已签到\n`;
return;
}
await $.wait(sudojia.getRandomWait(1200, 2000));
await sign();
} catch (e) {
console.error(`获取签到状态接口时发生异常:${e}`);
}
}
/**
* 签到
*
* @return {Promise<void>}
*/
async function sign() {
try {
const data = await sudojia.sendRequest(`${baseUrl}/api/User/Sign`, 'post', headers);
if (0 !== data.Code) {
console.error(data.Message);
return;
}
const signPoint = data.Data.Point
console.log(`旧版签到成功!积分+${signPoint}`);
message += `旧版签到成功!积分+${signPoint}\n`;
} catch (e) {
console.error(`旧版签到时发生异常:${e}`);
}
}
/**
* 新版签到
*
* @returns {Promise<void>}
*/
async function newSign() {
try {
const data = await sudojia.sendRequest(`${baseUrl}/api/User/SignV2`, 'post', headers);
if (0 !== data.Code) {
return console.error(`新版签到失败:${data.Message}`);
}
console.log(`新版签到成功!`);
message += `新版签到成功!\n`;
} catch (e) {
console.error(`新版签到时发生异常:${e}`);
}
}
/**
* 获取已连续签到天数
*
* @return {Promise<void>}
*/
async function signDays() {
try {
const data = await sudojia.sendRequest(`${baseUrl}/api/User/SignDays`, 'get', headers);
console.log(`已连续签到${data.Data}`);
message += `已连续签到${data.Data}\n`;
} catch (e) {
console.error('获取签到天数接口请求失败,请检查网络问题:', e);
}
}
// ****************************任务列表开始****************************
/**
* 获取 20 篇文章
*
* @return {Promise<*>}
*/
async function getArticlePage() {
try {
const data = await sudojia.sendRequest(`${baseUrl}/api/Bbs/GetHotList?page=1&size=30&phone=${$.mobile}`, 'get', headers);
const articleList = data.Data[Math.floor(Math.random() * data.Data.length)];
return articleList.Id;
} catch (e) {
console.error(`获取文章列表接口时发生异常:${e}`);
return null;
}
}
/**
* 刷新积分
*
* @param taskName
* @return {Promise<*>}
*/
async function getCurrentCount(taskName) {
const taskResp = await sudojia.sendRequest(`${baseUrl}/api/Sys/GetPointConfig`, 'get', headers);
const taskList = taskResp.Data.DataList;
const task = taskList.find(t => t.Name === taskName);
return task.DayGetPointTotal;
}
/**
* 每次积分+3每日上限9分
* 评论
*
* @return {Promise<void>}
*/
async function createComment() {
try {
for (let i = 0; i < 3; i++) {
const currentCount = await getCurrentCount('社区内容评论');
if (currentCount >= 9) {
console.log(`今日评论积分已达上限9分`);
break;
}
console.log(`第[${i + 1}]次评论`);
// 获取文章 ID
let articleId = await getArticlePage();
console.log(`获取的文章 ID: ${articleId}`);
await $.wait(sudojia.getRandomWait(1000, 2000));
// 获取随机评论内容
const content = getContent();
console.log(`获取的随机评论内容: ${content}`);
await $.wait(sudojia.getRandomWait(1000, 2000));
const data = await sudojia.sendRequest(`${baseUrl}/api/Bbs/PostReply`, 'post', headers, {
"PostId": articleId,
"ReplyId": "",
"ParentReplyId": "",
"Phone": $.mobile,
"Content": content,
"Pictures": []
});
if (0 === data.Code) {
console.log(`评论成功`);
console.log(`等待5s...\n`);
await $.wait(sudojia.getRandomWait(5500, 6500));
} else {
console.error('评论失败,返回: ', data);
}
}
} catch
(e) {
console.error(`发表评论时发生异常:${e}`);
}
}
function getContent() {
const contentArray = [
'膜拜大大大神!!',
'果断Mark',
'看帖看完了至少要顶一下!',
'前排占座,学习了!',
'每天一顶,心情好好',
'内容引起极度舒适,已收藏。',
'潜水多年,看到这个帖子我决定浮出水面点个赞。',
'楼主辛苦了,感谢!!'
];
return contentArray[Math.floor(Math.random() * contentArray.length)];
}
/**
* 获取用户积分
*
* @return {Promise<void>}
*/
async function getUserPoint() {
try {
const data = await sudojia.sendRequest(`${baseUrl}/api/User/GetUserPoint`, 'get', headers);
if (0 === data.Code) {
console.log(`当前积分:${data.Data.Num}`);
message += `当前积分:${data.Data.Num}\n`;
} else {
console.error(data.Message);
}
} catch (e) {
console.error(`获取用户积分接口时发生异常:${e}`);
}
}
/**
* 获取 Sign
*
* @return {string}
*/
function getSign() {
return sudojia.md5([
JSON.stringify({AppId: '815d8026-9a52-4445-a42c-a5443134232e'}),
JSON.stringify({Ticks: Date.now()}),
JSON.stringify({requestId: uuidv4()}),
JSON.stringify({AppSecret: "2b5c01fb-7640-401a-8188-43a13190a626"}
)].join(""));
}
/**
* 随机生成 UUID v4
*
* @return {string}
*/
function uuidv4() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
const r = (Math.random() * 16) | 0, v = c === 'x' ? r : (r & 0x3) | 0x8;
return v.toString(16);
});
}