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,125 @@
// # Source: https://github.com/sudojia/AutoTaskScript/blob/script/src/web/sudojia_sspanel.js
// # Raw: https://raw.githubusercontent.com/sudojia/AutoTaskScript/script/src/web/sudojia_sspanel.js
// # Repo: sudojia/AutoTaskScript
// # Path: src/web/sudojia_sspanel.js
// # UploadedAt: 2025-04-28T19:26:13+08:00
// # SHA256: 8bd3374a2bddc90f5a4577c605285a665d61dde740ce6ae4eaad72eb42ea37a5
// # Category: web版/账密
// # Evidence: web/H5关键词 + username/password/login
//
/**
* 机场每日签到
*
* 如何鉴别是 SSPANEL 面板?
* 网站拉到最下面有 Powered by SSPANEL 就是 SSPANEL 面板框架的机场
* 格式要求网站1,邮箱1:密码1&网站2,邮箱2:密码2
* export SITE_ACCOUNTS = 'https://paolu.com,abc@gmail.com:123456'
* 多账号用 & 或换行
*
* @author Telegram@sudojia
* @site https://blog.imzjw.cn
* @date 2021/9/25
* @lastModifyTime: 2024/09/16
*
* const $ = new Env('SSPANEL面板签到')
* cron: 35 9 * * *
*/
const initScript = require('../utils/initScript')
const {$, notify, sudojia, checkUpdate} = initScript('SSPANEL面板签到');
const {default: axios} = require("axios");
const accountList = process.env.SITE_ACCOUNTS ? process.env.SITE_ACCOUNTS.split(/[\n&]/) : [];
// 消息推送
let message = '';
// 请求头
const headers = {
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
"User-Agent": sudojia.getRandomUserAgent('PC'),
'Accept': 'application/json, text/javascript, */*; q=0.01',
'Accept-Encoding': 'gzip, deflate, br, zstd',
};
!(async () => {
await checkUpdate($.name, accountList);
console.log(`\n已随机分配 User-Agent\n\n${headers['user-agent'] || headers['User-Agent']}`);
// 校验格式
const isValidFormat = accountList.every(account => {
const parts = account.split(',');
if (parts.length !== 2) {
return false;
}
const [site, credentials] = parts;
const credParts = credentials.split(':');
return !(credParts.length !== 2 || !site || !credentials);
});
if (!isValidFormat) {
console.error('格式错误请确保遵循要求格式网站1,邮箱1:密码1&网站2,邮箱2:密码2');
process.exit(0);
}
for (let i = 0; i < accountList.length; i++) {
const index = i + 1;
const [rawUrl, emailPwd] = accountList[i].split(',');
const [email, pwd] = emailPwd.split(':');
const url = rawUrl.endsWith('/') ? rawUrl.slice(0, -1) : rawUrl;
console.log(`\n*****第[${index}]个${$.name}账号*****`);
console.log(`设定的机场网站是:${url}`);
await $.wait(sudojia.getRandomWait(300, 666));
message += `📣====${$.name}账号[${index}]====📣\n`;
await login(url, email, pwd);
}
if (message) {
await notify.sendNotify(`${$.name}`, `${message}`);
}
})().catch((e) => $.logErr(e)).finally(() => $.done());
/**
* 登录
*
* @returns {*}
*/
async function login(url, email, pwd) {
try {
const options = {
url: `${url}/auth/login`,
method: 'POST',
headers: headers,
data: `email=${email}&passwd=${pwd}&code=`
}
const response = await axios(options);
if (1 !== response.data.ret) {
return console.error(`登录失败:${response.data.msg}`);
}
const cookies = response.headers['set-cookie'];
headers.Cookie = cookies.join('; ');
console.log('登录成功~');
await $.wait(sudojia.getRandomWait(800, 1200));
await checkin(url);
} catch (e) {
console.error(`登录时发生异常:${e}`);
}
}
/**
* 签到
*
* @returns {*}
*/
async function checkin(url) {
try {
const data = await sudojia.sendRequest(`${url}/user/checkin`, 'post', headers, {});
if (1 !== data.ret) {
return console.error(`签到失败:${data.msg}`);
}
const {lastUsedTraffic, unUsedTraffic} = data.trafficInfo;
console.log(`签到成功,${data.msg}`);
console.log(`总套餐:${data.traffic}`);
console.log(`已使用:${lastUsedTraffic}`);
console.log(`剩余流量:${unUsedTraffic}`);
message += `签到成功,${data.msg}\n`;
message += `总套餐:${data.traffic}\n`;
message += `已使用:${lastUsedTraffic}\n`;
message += `剩余流量:${unUsedTraffic}\n\n`;
} catch (e) {
console.error(`签到时发生异常:${e}`);
}
}