1.购买服务器
阿里云:
服务器购买地址
https://t.aliyun.com/U/wrtp9T
若失效,可用地址
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")
const url1 = "https://www.huashi6.com/"
const url2 = "https://www.huashi6.com/app"
function get(url, method = "get", data = null) {
return new Promise(async (resolve) => {
try {
let headers = { "cookie": config.huashi6.cookie }
if (method == "get") res = await axios.get(url, {
headers
});
headers ["content-type"] = "application/json;charset=utf-8"
if (method == "post") res = await axios.post(url, data, {
headers
});
resolve(res.data)
} catch (err) {
console.log(err);
resolve({msg:"签到接口请求出错"})
}
resolve();
});
}
async function task() {
let taskres = await get(`${url1}/front/growthTask/user/list`, "post")
if (taskres.success) {
taskList = ((taskres && taskres.data && taskres.data.daily) ?? []).filter(x => !x.finish)
if (taskList) {
for (t of taskList) {
console.log("去做任务:"+t.name)
if (t.id == 4) await get(`${url2}/growthTask/share`, "post") //分享
else if (t.id == 23) { //点赞
await get(`${url2}/like/like`, "post", {
"like": false,
"requestId": "",
"objectId": 638,
"objectType": 80
})
await get(`${url2}/like/like`, "post", {
"like": true,
"requestId": "",
"objectId": 638,
"objectType": 80
})
} else if (t.id == 9) {await get(`${url2}/comment/add`,"post", {
"resourceId": 955042,
"requestId": "",
"content": "🤤🤤",
"resourceType": 1
})} else if (t.id == 19){await get(`${url2}/user/currentUser`,"post", {
"requestId": ""
}) }//评论
}
}
console.log("\n\n")
//签到
let signres = await get(`${url1}/app/user/signin`, "post")
signInfo =""
if (signres.success) signInfo=`签到:连签${signres.data.continueCount}天\n`
//查询
let [coinInfo,levelInfo] = await Promise.all([
get(`${url2}/user/coinAccount`, "post",{"requestId":""}),
get(`${url2}/user/levelInfo`,"post", {"requestId":""})
]);
let coin = coinInfo&&coinInfo.data&&coinInfo.data.currentCoinCount
let level = levelInfo.data.levelInfo.fullLevelName
msg = signInfo+ "cc币:"+coin+"\n"+"等级:"+level+"\n"+ `升级进度:${levelInfo.data.currentExp}/${levelInfo.data.nextLevelExp}`
} else msg = taskres.msg
return "【触站】:\n"+msg
}
module.exports = task
解析
这个脚本用于自动化完成触站平台上的任务,包括签到、分享、点赞、评论等操作,最后返回任务完成情况和账户信息。
1. 请求功能 (get
函数):
get
是一个通用的网络请求函数,支持 GET 和 POST 请求:若请求失败,捕获异常并返回一个错误消息
{ msg: "签到接口请求出错" }
。包含
cookie
来保持用户登录状态,cookie
来源于config.huashi6.cookie
。如果是 POST 请求,还设置了
content-type
为application/json;charset=utf-8
。url
: 请求的目标 URL。method
: 请求方法(默认为get
)。data
: POST 请求时发送的数据。参数:
请求头:
错误处理:
2. 任务执行 (task
函数):
task
函数完成以下任务:同时通过
Promise.all
并行查询coinAccount
和levelInfo
,分别获取用户的当前 CC 币数量和等级信息。coinInfo
返回当前的coinCount
,levelInfo
返回当前等级和升级进度。调用
/app/user/signin
执行签到操作,并返回连续签到天数。通过调用
get
函数获取用户的成长任务列表(growthTask/user/list
)。过滤出未完成的任务 (
!x.finish
)。遍历每个未完成的任务,执行不同的任务操作:
任务类型 4(分享):调用
/growthTask/share
执行分享任务。任务类型 23(点赞):先调用
/like/like
取消点赞,再调用/like/like
进行点赞操作。任务类型 9(评论):调用
/comment/add
提交评论。任务类型 19(查询用户信息):调用
/user/currentUser
获取当前用户信息。获取任务列表:
签到操作:
查询账户信息:
根据返回结果拼接消息,包含签到信息、CC 币数量、等级和升级进度。
3. 返回结果:
如果任务列表和签到操作成功,返回一个格式化的字符串,包含任务的执行情况和账户信息:
【触站】:
签到:连签X天
cc币:Y
等级:Z
升级进度:A/B如果获取任务列表失败或其它操作失败,则返回失败信息。
4. 模块导出:
module.exports = task;
使得外部可以调用task
函数执行这些任务。
总结:
脚本通过
axios
发起 HTTP 请求来模拟用户在触站平台上的各种任务操作,包括签到、分享、点赞、评论等。通过并行请求获取用户的账户信息,最后返回一个格式化的字符串,包含任务结果和用户账户信息。
可以在此基础上进一步优化错误处理、并发控制和请求频率控制,以提高脚本的稳定性和效率。
注意:
本文部分变量已做脱敏处理,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。技术层面需要提供帮助,可以通过打赏的方式进行探讨。
没有评论:
发表评论