阿里云:
服务器购买地址
https://t.aliyun.com/U/2s8buw
若失效,可用地址
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");
cookie = config.quark.cookie;
const headers = {
"Content-Type": "application/json",
Cookie: "",
};
async function quark() {
for (let index = 0; index < cookie.length; index++) {
headers["Cookie"] = cookie[index];
await qd_check();
}
}
/**
*
* @returns 签到情况
*/
async function qd_check() {
return new Promise(async (resolve) => {
try {
const url = "https://pan.quark.cn/1/clouddrive/capacity/growth/info";
const params = {
pr: "ucpro",
fr: "pc",
uc_param_str: "",
};
let res = await axios.get(url, { headers, params });
if (res.data.data.cap_sign.sign_daily) {
const sign = res.data.data.cap_sign;
const number = sign.sign_daily_reward / 1048576;
const progress = Math.round(
(sign.sign_progress / sign.sign_target) * 100
);
console.log(`今日已签到,获取${number}MB,进度${progress}%`);
msg = `今日已签到,获取${number}MB,进度${progress}%`;
} else {
await qd();
}
} catch (error) {
console.log(error.data);
msg = "签到接口请求失败";
}
resolve("【夸克网盘】:" + msg || "正常运行了");
});
}
/**
*
* @returns 签到结果
*/
function qd() {
return new Promise(async (resolve) => {
try {
const url = "https://pan.quark.cn/1/clouddrive/capacity/growth/sign";
const params = {
pr: "ucpro",
fr: "pc",
uc_param_str: "",
};
let res = await axios.post(
url,
{
sign_cyclic: true,
},
{ headers, params }
);
if (res.data.status == 200) {
const sign = res.data.data;
const number = sign.sign_daily_reward / 1048576;
console.log(`签到成功,本次签到领取${number}MB`);
msg = `签到成功,本次签到领取${number}MB`;
} else {
console.log(`签到失败,${res.data.message}!`);
msg = "签到失败";
}
} catch (error) {
console.log(error.data);
msg = "签到接口请求失败";
}
resolve("【夸克网盘】:" + msg || "正常运行了");
});
}
module.exports = quark;
解析
这脚本是一个自动化签到脚本,用于夸克网盘(Quark Drive)的用户存储空间增长任务。它使用Node.js的axios
库来发送HTTP请求,检查签到状态或执行签到动作,并处理来自夸克网盘的API响应。
主要功能
- 自动化签到
循环通过多个用户的cookie自动签到,每个cookie代表一个不同的用户账户。 - 检查签到状态
查询当前用户是否已经签到,并报告已获得的存储空间及签到进度。 - 执行签到
如果用户当日未签到,则尝试签到并获取额外存储空间。
关键方法和组件
quark():
循环遍历所有提供的cookie,为每个用户执行签到检查或签到动作。 设置HTTP请求的headers,其中包括当前迭代的cookie。 qd_check():
发送GET请求到夸克网盘的API,检查用户的签到状态。 根据响应数据,报告用户已签到的状态,包括获得的存储空间和完成的签到进度。 如果用户未签到,调用 qd()
方法进行签到。qd():
发送POST请求到夸克网盘的API,尝试为用户签到。 根据API响应,报告签到结果,成功时显示获得的存储空间。
细节处理
Error Handling:
在 qd_check()
和qd()
方法中,通过try-catch
语句块捕获可能的错误,如网络请求失败、API返回错误等,并将错误信息输出到控制台。数据解析:
签到获得的存储空间从字节转换为MB,使用 1048576
(即2^20
)作为转换因子。计算签到进度百分比,使用得到的签到点数和目标点数计算。 异步处理:
使用 async/await
语法处理异步的HTTP请求,确保在发送下一个请求前当前请求已完成。
这脚本展示了如何使用Node.js和axios库以编程方式与网盘服务交互,实现自动签到和状态查询功能。通过循环处理多个用户账户的cookie,该脚本可以服务于多个用户或单个用户的多个账户,是自动化日常网络任务的一个典型例子。
注意:
本文部分变量已做脱敏处理,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。技术层面需要提供帮助,可以通过打赏的方式进行探讨。
没有评论:
发表评论