阿里云:
服务器购买地址
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=201905
2.部署教程
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
等待所有的登录和签到操作完成。将所有结果整合并输出。
注意:
本文部分变量已做脱敏处理,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。技术层面需要提供帮助,可以通过打赏的方式进行探讨。
没有评论:
发表评论