阿里云:
服务器购买地址
https://t.aliyun.com/U/qqlxBb若失效,可用地址
https://www.aliyun.com/activity/wuying/dj?source=5176.29345612&userCode=49hts92d腾讯云:
https://curl.qcloud.com/wJpWmSfU若失效,可用地址
https://cloud.tencent.com/act/cps/redirect?redirect=2446&cps_key=ad201ee2ef3b771157f72ee5464b1fea&from=console华为云
https://activity.huaweicloud.com/cps.html?fromacct=64b5cf7cc11b4840bb4ed2ea0b2f4468&utm_source=V1g3MDY4NTY=&utm_medium=cps&utm_campaign=2019052.部署教程
3.代码如下
const axios = require("axios");// Debug// const yaml = require("js-yaml");// const fs = require("fs");// if (fs.existsSync("./config.yml"))// config = yaml.load(fs.readFileSync("./config.yml", "utf8"));const xiaobaiAccounts = config.xiaobai;const host = "xb.xiaobaigongju.com";const headers = {thirdSession: "","user-agent":"Mozilla/5.0 (Linux; Android 14; V2055A Build/UP1A.231005.007; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36 uni-app Html5Plus/1.0 (Immersed/28.0)","Content-Type": "application/json",Host: host,};async function xiaobai() {let result = "【小白云盘每日签到】\n";console.log(result);let accountResults = [];try {const promises = xiaobaiAccounts.map(async (account, index) => {let accountResult = `第${index + 1}个账号(${account.username}):`;accountResult += await xiaobai_sign_add(account);accountResults.push(accountResult);});await Promise.all(promises);result += accountResults.join("\n");} catch (error) {result += "运行错误";}console.log("小白云盘运行结束。");return result;}async function xiaobai_login(username, password) {try {const loginUrl = `https://${host}/v1/app/m/user/login`;const postData = {phone: username,password: password,invitedCode: "",};const response = await axios.post(loginUrl, postData, { headers });if (response.data && response.data.code === 200) {const sessionKey = response.data.data.sessionKey;headers.thirdSession = sessionKey;console.log(`登录成功:${username}`);return "登录成功--";} else {console.error(`登录失败:${username}`);return "登录失败";}} catch (error) {console.error(`登录帐户时出错:${username}: ${error.message}`);return "登录出错";}}async function xiaobai_sign_add(account) {try {let loginResult = await xiaobai_login(account.username,account.password);if (loginResult.includes("登录成功")) {// 签到操作const signUrl = `https://${host}/v1/app/m/sign/add`;const response = await axios.post(signUrl, {}, { headers });if (response.data && response.data.code === 200) {console.log(`签到成功:${account.username}`);return loginResult + "签到成功";} else if (response.data &&response.data.code === 500 &&response.data.msg === "您今日已经签到过了哦!") {console.log(`今日已经签到过了:${account.username}`);return loginResult + "今日已经签到过了";} else {console.error(`签到失败:${account.username}`);return loginResult + `签到失败--${response.data.msg}`;}} else {// 登录失败处理console.error(`登录失败:${account.username}, 跳过登录。`);return loginResult;}} catch (error) {console.error(`签到时出错:${account.username}: ${error.message}`);return "签到出错";}}// Debug// xiaobai().then(() => {// console.log("\n");// console.log(result);// });module.exports = xiaobai;
这个脚本是用于自动登录并签到小白云盘的Node.js程序。
自动登录:通过小白云盘的API,为多个账号自动登录。
自动签到:登录后自动执行签到操作。
错误处理:登录或签到失败时,捕获错误并记录。
xiaobai_login(username, password)
功能:这个函数用来登录小白云盘。
参数:
username: 用户名或手机号。password: 密码。返回值:登录的结果,包括成功或失败的状态消息。
详细流程:
构建登录请求的URL和POST数据。
使用
axios发送POST请求进行登录。根据响应数据更新
headers中的thirdSession,用于后续的API调用认证。
xiaobai_sign_add(account)
功能:为登录成功的账户执行签到操作。
参数:
account: 包含用户名和密码的账户对象。返回值:签到操作的结果。
详细流程:
调用
xiaobai_login函数尝试登录。如果登录成功,发送签到请求。
根据签到请求的响应处理签到结果(成功、已签过或失败)。
xiaobai()
功能:执行所有账号的登录和签到流程,并汇总结果。
返回值:所有账号的登录和签到结果的汇总。
详细流程:
遍历账户数组,为每个账户执行登录和签到。
使用
Promise.all等待所有的登录和签到操作完成。将所有结果整合并输出。
注意:
本文部分变量已做脱敏处理,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。技术层面需要提供帮助,可以通过打赏的方式进行探讨。
没有评论:
发表评论