阿里云:
服务器购买地址
https://t.aliyun.com/U/8qaNGK
若失效,可用地址
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");
function ngaGet(lib, act, output = 11, other = null) {
return new Promise(async (resolve) => {
try {
let nga = config.nga;
let url = "https://ngabbs.com/nuke.php";
let res = await axios.post(
url,
`access_uid=${nga.uid}&access_token=${
nga.accesstoken
}& app_id=1010&__act=${act}&__lib=${lib}&__output=${output}&${other}`, {
headers: {
"User-Agent": nga.UA ? nga.UA : "xxxxxx Nga_Official/90409"
}
}
);
console.log(" " + (res.data && res.data.time || res.data.code))
resolve(res.data)
} catch (err) {
console.log(err);
resolve({
error: ["签到接口请求出错"]
})
}
resolve();
});
}
async function task() {
msg = "【NGA】:\n"
//签到
let res1 = await ngaGet("check_in", "check_in")
if (res1 && res1.data) {
msg += " 签到:" + res1.data[0];
} else {
console.log(res1);
msg += " 签到:" + (res1.error && res1.error[0]);
}
if (!msg.match(/登录|CLIENT/)) {
await ngaGet("mission", "checkin_count_add", 11, "mid=2&get_success_repeat=1&no_compatible_fix=1")
await ngaGet("mission", "checkin_count_add", 11, "mid=131&get_success_repeat=1&no_compatible_fix=1")
await ngaGet("mission", "checkin_count_add", 11, "mid=30&get_success_repeat=1&no_compatible_fix=1")
console.log("看视频免广告")
await ngaGet("mission", "video_view_task_counter_add_v2_for_adfree_sp1")
for (c of new Array(4)) await ngaGet("mission", "video_view_task_counter_add_v2_for_adfree")
console.log("看视频得N币")
for (c of new Array(5)) await ngaGet("mission", "video_view_task_counter_add_v2")
//分享帖子
console.log("分享帖子 5")
tid = Math.ceil(Math.random() * 12346567) + 12345678
for (c of new Array(5)) await ngaGet("data_query", "topic_share_log_v2", 12, "event=4&tid=" + tid)
console.log("领取分享奖励 1N币")
await ngaGet("mission", "check_mission", 11, "mid=149&get_success_repeat=1&no_compatible_fix=1")
//查询
let {
data: [sign, money, y]
} = await ngaGet("check_in", "get_stat")
msg += ` 连签 ${sign.continued}天 累签 ${sign.sum}天\n N币:${money.money_n}\n 铜币:${money.money}\n 啊哈:${y[0]}`
}
return msg
}
module.exports = task;
解析
这脚本是一个自动化任务处理器,用于在NGA论坛上执行一系列任务,如签到、观看视频以免广告、分享帖子以及领取奖励等。
ngaGet 函数:
该函数封装了对NGA论坛API的POST请求。 接受几个参数: lib
(API库名),act
(操作类型),output
(输出格式ID,默认为11),以及other
(其他任何需要附加在POST数据中的参数)。使用axios库向NGA论坛的API端点 https://ngabbs.com/nuke.php
发送请求。请求中包括用户的UID和access token,这些认证信息存储在 config.nga
中。请求成功后,打印出相关的响应时间或代码,最终将响应数据通过Promise返回。 task 函数:
主功能函数,用于协调和执行多个任务。 首先进行签到操作,调用 ngaGet
函数。根据签到结果更新消息,如果未发现登录错误则执行后续任务。 进行多个任务,如增加签到计数、观看视频任务(分为免广告和获得N币两种类型)、分享帖子,以及领取分享奖励。 使用 ngaGet
函数进行每个任务的API调用,逻辑包括循环执行某些任务和随机生成帖子ID以分享。在任务完成后,调用 ngaGet
获取用户的签到统计、N币和铜币数量。最终汇总所有信息,并返回。 模块导出:
将 task
函数导出,允许其他文件通过require
调用此函数进行任务操作。
这个脚本通过模块化和函数封装来简化对NGA论坛的日常任务自动化处理。通过ngaGet
函数通用化API请求的过程,而task
函数则负责协调整个任务流程,确保按顺序执行各个任务,并处理相关的数据和状态更新。这种设计增加了代码的重用性和维护性。
注意:
本文部分变量已做脱敏处理,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。技术层面需要提供帮助,可以通过打赏的方式进行探讨。
没有评论:
发表评论