阿里云:
服务器购买地址
https://t.aliyun.com/U/C6sVsb
若失效,可用地址
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")
let token = config.kurobbs.token
let userId = JSON.parse(base64Decode(token.split(".")[1])).userId
let devCode = config.kurobbs.devCode
function sleep(n) {
let start = new Date().getTime()
while (true) {
if (new Date().getTime() - start > n) {
break
}
}
}
function base64Decode(data) {
return Buffer.from(data, 'base64').toString('utf-8')
}
async function post(option) {
return await axios({
url: `https://api.kurobbs.com/${option.url}`,
method: "post",
params: option.data,
headers: {
osVersion: "Android",
devCode: devCode,
countryCode: "CN",
ip: "",
model: "Mi 13",
source: "android",
lang: "zh-Hans",
version: "1.0.5",
versionCode: 1050,
token: token,
"User-Agent": "okhttp/3.10.0"
}
}).then(res => {
return res.data
})
}
//帖子列表
async function bbsList() {
return await post({
url: "forum/list",
data: {
forumId: 10,
gameId: 3,
pageIndex: 1,
pageSize: 20,
searchType: 1,
timeType: 0
}
})
}
//社区签到
async function bbsSign() {
return await post({
url: "user/signIn",
data: {
gameId: 3
}
})
}
//分享
async function share() {
return await post({
url: "encourage/level/shareTask",
data: {
gameId: 3
}
})
}
//点赞 type 1是点赞,2是取消点赞
async function like(type, bbs) {
return await post({
url: "forum/like",
data: {
forumId: bbs.gameForumId,
gameId: 3,
likeType: 1,
operateType: type,
postCommentId: 0,
postCommentReplyId: 0,
postId: bbs.postId,
postType: bbs.postType,
toUserId: bbs.userId
}
})
}
//浏览帖子
async function getBbs(bbs) {
return post({
url: "forum/getPostDetail",
data: {
isOnlyPublisher: 0,
postId: bbs.postId,
showOrderType: 2
}
})
}
//任务列表
async function task() {
return post({
url: "encourage/level/getTaskProcess",
data: {
gameId: 0,
userId: userId
}
})
}
async function main() {
let result = "【库街区】:"
await bbsSign()
let bbslist = await bbsList()
for (let i = 1; i <= 5; i++) {
let random = Math.floor(Math.random() * 20)
let bbs = bbslist.data.postList[random]
await like(1, bbs)
await like(2, bbs)
}
await share()
for (let j = 3; j <= 3; j++) {
let random = Math.floor(Math.random() * 20)
let bbs = bbslist.data.postList[random]
await getBbs(bbs)
sleep(3000)
}
let taskList = await task()
for (let i of taskList.data.dailyTask) {
let taskName = i.remark
let status = i.completeTimes === i.needActionTimes ? "已完成" : "未完成"
result += `${taskName}:${status} `
}
console.log(result)
return result
}
module.exports = main
解析
这个脚本是一个针对库街区社区的自动化任务脚本,主要功能包括签到、点赞、分享、浏览帖子等,完成任务后返回任务完成状态。它通过调用该社区的 API 实现自动化操作
https://www.kurobbs.com/main.html
主要功能
- 社区签到
:自动执行签到操作。 - 点赞帖子
:随机选择帖子进行点赞,支持取消点赞操作。 - 浏览帖子
:随机浏览帖子。 - 分享任务
:自动完成分享任务。 - 获取任务进度
:获取用户的任务列表,并查看每个任务的完成状态。
1. sleep
方法:
这是一个自定义的睡眠函数,用于让程序在执行过程中暂停一定时间,防止过快的请求触发反作弊机制。 它通过不断检查当前时间与开始时间的差异来实现阻塞等待。
2. base64Decode
方法:
该方法用来解码 base64 编码的数据。主要用于解析 token
中的userId
信息。
3. post
方法:
这是一个通用的 HTTP 请求函数,封装了 axios
请求,用于发送 POST 请求到"库街区"的 API。- 参数
url
:API 的接口地址。 data
:请求的参数。 - 功能
设置请求头,包含了认证信息(如 token
)和其他请求参数。发送 POST 请求并返回响应数据。
4. bbsList
方法:
获取帖子列表,通过调用 post
方法请求 API 接口forum/list
,获取指定论坛的帖子列表。该接口请求了一个固定的 forumId
(10)和gameId
(3),分页获取帖子列表。
5. bbsSign
方法:
执行签到操作,调用 user/signIn
接口进行签到。请求的 gameId
为 3,表示签到的是"库街区"社区。
6. share
方法:
执行分享任务,通过调用 encourage/level/shareTask
接口完成分享任务。
7. like
方法:
实现点赞操作, type
为 1 表示点赞,2 表示取消点赞。调用 forum/like
接口,向指定帖子发送点赞或取消点赞的请求。
8. getBbs
方法:
浏览帖子,通过调用 forum/getPostDetail
接口查看帖子详情。
9. task
方法:
获取用户的任务列表,通过调用 encourage/level/getTaskProcess
接口,获取当前用户的任务进度。返回的任务列表包含了每日任务的完成状态。
10. main
方法:
这是脚本的核心逻辑,执行一系列操作来模拟用户行为。 - 流程
- 签到
:调用 bbsSign
方法进行签到。 - 点赞
:从帖子列表中随机选择 5 个帖子,执行点赞和取消点赞操作。 - 分享
:调用 share
方法完成分享任务。 - 浏览帖子
:从帖子列表中随机选择一个帖子,调用 getBbs
浏览帖子。 - 任务进度
:通过 task
方法获取任务进度,返回任务的完成状态(已完成/未完成)。 最后,将任务结果拼接成字符串并返回。
异常处理:
- 请求错误
:如果 API 请求失败,会捕获错误并输出相关信息。
主要 API 请求:
- 签到接口
: user/signIn
- 获取帖子列表
: forum/list
- 点赞接口
: forum/like
- 浏览帖子接口
: forum/getPostDetail
- 任务进度接口
: encourage/level/getTaskProcess
- 分享任务接口
: encourage/level/shareTask
注意:
本文部分变量已做脱敏处理,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。技术层面需要提供帮助,可以通过打赏的方式进行探讨。
没有评论:
发表评论