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=2019052.部署教程
3.代码如下
//游戏动力app*/const axios = require("axios");const code = config.gamepower.loginCodeconst headers = {packagename: "com.vgn.gamepower","user-agent": "okhttp/3.12.0",Host: "api.vgn.cn",version: "1.3.7",version_code: 47,device_name: "",device_id: "",screen_resolution: "2400*1080",device_type: "android",// "Content-Token": "","Content-Type": "application/json; charset=utf-8"}function get(task, method = "get", data = null) {return new Promise(async (resolve) => {try {let url = `https://api.vgn.cn/apiv2/${task}`;if (method == "get") res = await axios.get(url, {headers});if (method == "post") res = await axios.post(url, data, {headers});if (method == "patch") res = await axios.patch(url, data, {headers});if (method == "delete") res = await axios.delete(url, {headers});if (res.data.code == 200) console.log(" 操作成功")else console.log(" " + res.data.msg)resolve(res.data)} catch (err) {console.log(err);resolve({code: 500,msg: "签到接口请求出错"})}resolve();});}async function getaskList() {console.log("查询任务列表")let res = await get("task/list")if (res.code == 200 && res.data) return res.data.filter(x => x.task_type == 1 && x.status != 2)return []}async function dotask(taskList) {for (var task of taskList) {console.log("开始任务:" + task.title)if (task.status == 0) {switch (task.id) {case 14:await get("v3/member/wish", "patch", {"product_id": 1394330})breakcase 10:await get("v3/game/1394330/comment", "post", {"difficulty": 1,"score": 5,"length": 0,"progress": 1,"sale_notice": 0,"play_status": 2,"content": "好玩ヾ ^_^♪"})breakcase 7:for (i = 0; i < 5; i++) await get("home/operate", "post", {"operate": 1,"type_id": 22312,"type": 1})breakcase 8:let cres = await get("v3/group/comment/22179", "post", {"revert_id": "0","revert_user_id": "0","content": "牛啊牛啊牛啊牛","p_id": "0"})await get("comment/" + cres.data, "delete")breakcase 11:await get("task/share/6001", "post")breakcase 17:await get("task/share/6002", "post")breakdefault:break}}console.log(` 去领取奖励:经验值${task.exp} 瓶盖${task.reward_point}`)await get("task/" + task.id, "post")}}async function gamepower() {rinfo = ""let loginRes = await get("v2/login/qq", "post", {"code": code})if (loginRes.code == 200) {console.log("登陆成功")headers["Content-Token"] = loginRes.data.tokenlet taskList = await getaskList()console.log(`当前还有${taskList.length}任务待完成`)console.log("去签到")await get("v3/mine/reward/point/daily", "post")await dotask(taskList)console.log("\n查询个人信息")let uinfo = await get("v3/login/userinfo")if (uinfo.code == 200) rinfo = `\n昵称:${uinfo.data.member_nickname}\n等级:${uinfo.data.level_info.level}\n瓶盖:${uinfo.data.reward_point}\n连签:${uinfo.data.reward_days}`else rinfo = uinfo.msg} else rinfo = loginRes.msgconsole.log(rinfo)return "【游戏动力】:" + rinfo}module.exports = gamepower
解析
这个脚本的通过调用游戏动力APP的API接口,实现自动化的签到、任务执行和奖励领取功能。它通过 axios 进行HTTP请求,处理任务列表,完成不同类型的任务,最终获取奖励信息。
1. headers 配置
这些是请求时需要的 HTTP 请求头,用于模拟APP客户端与服务器的通信:
packagename: 固定的包名"com.vgn.gamepower"。user-agent: 用户代理,模拟的是okhttp版本。Host: 请求的服务器域名"api.vgn.cn"。version和version_code: 模拟APP版本号和版本代码。device_name,device_id: 设备信息,这里是空的,可能需要通过具体设备来填充。screen_resolution: 屏幕分辨率"2400*1080"。device_type: 设备类型,这里为"android"。Content-Type: 请求内容类型,"application/json; charset=utf-8"表示请求体为JSON格式。
2. get 函数
这是一个通用的HTTP请求函数,根据指定的请求方式(GET、POST、PATCH、DELETE)发送请求,并返回响应结果:
通过
axios的get,post,patch,delete方法来发起请求。如果返回的
code为200,说明操作成功,否则输出错误信息。如果出现错误,返回
{ code: 500, msg: "签到接口请求出错" }。
3. getaskList 函数
这个异步函数用于获取任务列表:
它通过调用
get("task/list")来请求任务列表。如果任务列表返回成功并且包含任务数据,它会过滤出
task_type == 1且status != 2的任务(假设task_type == 1表示有效任务,status != 2表示任务未完成)。返回过滤后的任务列表。
4. dotask 函数
这个异步函数用于执行任务:
对于每个任务,判断任务的
status是否为0,表示任务未完成。根据任务的
id,执行不同的操作,支持:任务ID为14时,调用
v3/member/wish接口。任务ID为10时,调用
v3/game/1394330/comment接口,发表评论。任务ID为7时,调用
home/operate接口,执行5次操作。任务ID为8时,评论并删除评论。
任务ID为11和17时,执行分享任务。
对于每个任务,完成后都会调用
get("task/" + task.id, "post")来领取奖励。
5. gamepower 函数
这是主要的执行函数,包含了登录、任务处理、签到和用户信息查询的逻辑:
登录:调用
v2/login/qq接口进行登录,登录成功后会设置Content-Token为登录返回的 token。获取任务列表:登录成功后,调用
getaskList()获取待完成的任务列表。签到:调用
get("v3/mine/reward/point/daily", "post")来进行每日签到。执行任务:调用
dotask()执行任务。查询个人信息:登录后,查询用户的昵称、等级、瓶盖数量和连续签到天数等信息,并输出。
6. 返回结果
在整个操作完成后,返回一个包含用户信息的字符串,格式如下:
【游戏动力】:
昵称:xxxx
等级:xx
瓶盖:xx
连签:xx
主要功能
登录到"游戏动力"APP。
获取未完成的任务列表。
执行任务,根据任务ID执行不同的API请求。
完成任务后领取奖励。
最后查询并输出用户的基本信息,包括昵称、等级、瓶盖数量和连续签到天数。
8. 模块导出
module.exports = gamepower 使得 gamepower 函数可以在其他模块中被调用,返回签到、任务完成和用户信息的结果。
注意:
本文部分变量已做脱敏处理,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。技术层面需要提供帮助,可以通过打赏的方式进行探讨。
没有评论:
发表评论