2025年3月25日星期二

橙光任务脚本

1.购买服务器

阿里云:

服务器购买地址

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.部署教程

2024年最新青龙面板跑脚本教程(一)持续更新中

3.代码如下

const axios = require("axios");const md5 = require("crypto-js").MD5headers = {}let result = "【橙光游戏】: ";const {    uid,    token,    skey,    sflag,    folder,    gameid,    did} = config.rpg66const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
//签到function check() {    return new Promise(async (resolve) => {        try {            const url = "https://www.66rpg.com/Ajax/Home/new_sign_in.json";            let data = `token=${token}&mobile_uid=&client=2&android_cur_ver=268`;            const headers = {                "user-agent""Mozilla/5.0 (Linux; Android 10; Redmi K30 Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/85.0.4183.127 Mobile Safari/537.36",                "content-type""application/x-www-form-urlencoded; charset=UTF-8",            };            let res = await axios.post(url, data, {                headers,            });            if (res.data.status == 1) {                msg = `签到成功,获得:${res.data.data.today.award_name}明日继续签到🉑获得:${res.data.data.tomorrow.award_name}!! ||  `;            } else {                msg = "签到失败⚠️⚠️⚠️ " + res.data.msg + " ||  ";            }            console.log("    签到结果:" + msg);            result += msg;        } catch (err) {            msg = "签到接口请求出错!! ";            console.log(err);        }        resolve();    });}


function get(url, method = "get", data = null, xsign) {    return new Promise(async (resolve) => {        try {            if (xsign) headers["x-sign"] = xsign
            if (method == "get") res = await axios.get(url, {                headers            });            //      headers ["content-type"] = "application/json;charset=utf-8"            headers["user-agent"] == "axios/0.19.0"            if (method == "post") res = await axios.post(url, data, {                headers            })            headers = {}            if (res.data && res.data.data && (res.data.data.msg || res.data.msg)) console.log("    " + (res.data.data.msg || res.data.msg))            resolve(res.data)        } catch (err) {            console.log(err);            resolve({                msg"签到接口请求出错"            })        }        resolve();    });}
//获取活跃任务列表async function getaskList() {    let url = `https://www.66rpg.com/ActiveSystem/index/get_today_task_lists?jsonCallBack=&uid=&token=${token}&client=2&_=`    let res = await get(url)    if (res && res.status == 1) taskList = res.data    else taskList = []    return taskList}

//登陆奖励function loginreward() {    return new Promise(async (resolve) => {        try {            var url = `http://iapi.66rpg.com/user/v2/sso/launch_remind?pack_name=com.sixrpg.opalyer&sv=QKQ1.190825.002testkeys&android_cur_ver=2.25.268.1027&nt=4g&device_code=RedmiK30&channel=LYyingyongbao&skey=&device_unique_id=${did}&token=${token}`;            let res = await get(url, "get"nullgetsign(url))            if (res.status == 1) {                if (!res.data.integral.hidden) {                    msg =                        "    登陆成功,获得:" +                        res.data.integral.msg +                        "," +                        res.data.flower.msg;                } else {                    msg = "今日已经领取过登陆奖励了";                }            } else {                msg = "领取登陆奖励失败:" + res.msg;            }            result += msg;            console.log("    领取结果:" + msg);        } catch (err) {            console.log(err);        }        resolve();    });}
// x-sign生成function getsign(url) {    data = url.split("?")[1]    var str = data        .split("&")        .sort(function(a, b) {            return a.localeCompare(b);        })        .join("&");    return md5(str + "a_744022879dc25b40").toString()}
//评论任务function favor() {    return new Promise(async (resolve) => {        try {            //先取消收藏            var url0 = `http://iapi.66rpg.com/Favorite/v1/Favorite/editor_game_folders?device_code=MEIZU18Pro&sv=Flyme9.0.1.3A&nt=4g&token=${token}&skey=${skey}&action=editor_game_folders&ts=&android_cur_ver=2.32.288.0119`            let data0 = `pack_name=com.sixrpg.opalyer&folder=&sv=Flyme9.0.1.3A&gindex=242004&android_cur_ver=2.32.288.0119&nt=4g&device_code=MEIZU18Pro&channel=XiaoMiReaderDYD&skey=${skey}&device_unique_id=${did}&token=${token}`            let res0 = await get(url0 + "&sign=" + getsign(url0), "post", data0, getsign(url0))            console.log("    取消收藏:" + res0.msg);            //收藏            var url1 = `https://www.66rpg.com/api/client?pack_name=com.sixrpg.opalyer&sv=Flyme9.0.1.3A&android_cur_ver=2.32.288.0119&nt=4g&channel=XiaoMiReaderDYD&platform=2&token=${token}&folder=${folder}%2C&gindex=242004&device_code=&action=fav_game&skey=${skey}&device_unique_id=${did}&fav_type=1`            let res = await get(url1, "get"nullgetsign(url1))            console.log("    收藏结果:" + res.msg);        } catch (err) {            console.log(err);        }        resolve();    });}



async function uploadtime(id) {    timm = 30 * 60    let url = "https://c.66rpg.com/collect/v1/index/runtime"    time = parseInt(new Date().getTime().toString() / 1000)    let datas = `{"run":{"${id}":${timm}}}${uid}${time}MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDtsvsk/MIEI9YXvHzLfg+eEJkY3d7RmVynKBZY35T0xg3WwZgmC6GSPZqrMMcht6aiZYPJywhm9JiE6kBo/0Mvxklm5Wd35wIKeDXcq8Aqb4aQXalcwsD3f829OR1P2AqGilr14Rftv4ixyQATG/BqP2/kgft2rcq4e/E7bDWNLQIDAQAB`    let check = md5(datas).toString()    let str = `data=%7B%22run%22%3A%7B%22${id}%22%3A${timm}%7D%7D&uid=${uid}&ts=${time}&check=${check}&platform=3&channel_id=0&online_plat=${timm}&nonce=b613b114-b3a8-4bb6-a444-7096b2abc5fe&timestamp=${time}`    let res = await get(url, "post", str)    console.log("    上传结果:" + res.msg)}async function cg() {    console.log("橙光app每日签到开始...");    //获取任务列表    let taskList = await getaskList()
    //送花    //   gid = 1510209    // ssurl =`https://www.66rpg.com/api/client?pack_name=com.sixrpg.opalyer&flower_place=4&sv=Flyme9.0.1.3A&android_cur_ver=2.32.288.0119&nt=network_unknown&num=1&channel=XiaoMiReaderDYD&token=${token}&gindex=${gid}&group_id=&device_code=MEIZU18Pro&action=send_flower&skey=${skey}&device_unique_id=${did}`    //   let aa =       await get(ssurl, "get", null, getsign(ssurl))    //     console.log(aa)    for (task of taskList) {        console.log("去做任务:" + task.task_name)        if (task.max_claim <= task.play_count) {} else {            switch (task.task_type) {                case 0//每日登陆                    await loginreward();                    break                case 1//阅读5min                    await uploadtime(1593227)                    await sleep(12 * 1000)                    await uploadtime(1593227)                    break                case 2//分享作品                    surl = `http://www.66rpg.com/api/newClient?pack_name=com.sixrpg.opalyer&sv=QKQ1.190825.002testkeys&android_cur_ver=2.27.273.1229&nt=4g&channel=vivoDYD&platform=2&token=${token}&gindex=${gameid}&share_msg_id=&device_code=RedmiK30&action=share_game&skey=${skey}&device_unique_id=${did}&share_channel=3`;                    await get(surl, "get"nullgetsign(surl))                    break                case 3//分享别人看                    for (c of new Array(5)) {                        await get(`https://m.66rpg.com/main/ajax/game/add_game_share.json?token=&client=0&stype=1&starget=${gameid}&sflag=${sflag}&platform=2&share_msg_id=&um_chnnl=share&um_from_appkey=60ab3e2453b67264990bf849`)                        await sleep(1000)                    }                    break                case 4//发表评论                    datac = `pack_name=com.avgorange.dating&sv=Flyme9.0.1.3A&auth=eyJhY3Rpb24iOiJjb21tZW50X3Bvc3QiLCJnaW5kZXgiOiIxNTY5ODQ0IiwicGFyZW50X2NpZCI6IiIsImNvbnRlbnQiOiLmiZPljaHmiZPljaHmiZPljaHmiZPljaHmiZPljaEiLCJkZXZpY2VfdHlwZSI6Ik1FSVpVMThQcm8iLCJyIjoiNTZGIn0%253D&android_cur_ver=2.32.292.0530&parent_cid=&nt=wifi&channel=talkingdata202106&device_type=MEIZU18Pro&content=%E6%89%93%E5%8D%A1%E6%89%93%E5%8D%A1%E6%89%93%E5%8D%A1%E6%89%93%E5%8D%A1%E6%89%93%E5%8D%A1&gindex=1569844&device_code=MEIZU18Pro&skey=${skey}&device_unique_id=${did}&call_source=game`                    surl = `http://www.66rpg.com/api/client?device_code=MEIZU18Pro&sv=Flyme9.0.1.3A&nt=wifi&token=${token}&skey=${skey}&action=comment_post&ts=1656227475&android_cur_ver=2.32.292.0530`                    aa = await get(surl + "&sign=" + getsign(surl), "post", datac, getsign(surl))                    break                default:                    break            }        }        await get(`https://www.66rpg.com/ActiveSystem/index/claimReward?task_type=${task.task_type}&uid=${uid}&token=${token}&client=2&_=`)    }    console.log("去签到")    await check();    console.log("每日分享")    surl = `http://www.66rpg.com/api/newClient?pack_name=com.sixrpg.opalyer&sv=QKQ1.190825.002testkeys&android_cur_ver=2.27.273.1229&nt=4g&channel=vivoDYD&platform=2&token=${token}&gindex=${gameid}&share_msg_id=&device_code=RedmiK30&action=share_game&skey=${skey}&device_unique_id=${did}&share_channel=3`;    await get(surl, "get"nullgetsign(surl))    Info = ""    urlyy = `https://www.66rpg.com/propShop/interapi/game/v1/game/get_user_gift_game?pack_name=com.sixrpg.opalyer&sv=Flyme9.0.1.3A&android_cur_ver=2.32.288.0119&nt=4g&device_code=MEIZU18Pro&channel=XiaoMiReaderDYD&skey=${skey}&page=1&sort=1&device_unique_id=${did}&token=${token}`    let ri = await get(urlyy, "get"nullgetsign(urlyy))    count = ri && ri.data ? ri.data.count : "未知"    var iurl = `http://iapi.66rpg.com/user/v2/user/user_info?uid=${uid}&pack_name=com.sixrpg.opalyer&sv=Flyme9.0.1.3A&android_cur_ver=2.32.288.0119&nt=network_unknown&device_code=&channel=XiaoMiReaderDYD&action=user_info&skey=${skey}&device_unique_id=${did}&token=${token}`    let ires = await get(iurl, "get"nullgetsign(iurl))    if (ires.status == 1) {        info = ires.data[uid]        if (info.last_available_time != 0) hl = `\n    花篮:至${info.last_available_time_str.replace("花篮领取有效期 ","")}`        else hl = ""        Info = `   昵称:${info.uname}\n    等级:${info.user_level}\n    鲜花:${info.rest_flower}\n    积分:${info.coin3}\n    橙子:${info.user_orange}${hl}\n    拥有:${count}部`    }    console.log(Info)    return "【橙光】:\n " + Info}
//cg()module.exports = cg;

解析

这脚本是为橙光游戏app设计的Node.js自动化脚本,用于处理每日签到、登录奖励、每日任务和分享功能。脚本中使用了axios库来发起网络请求,并通过自定义的get函数来简化HTTP请求的处理。此外,使用md5加密生成特定的签名(x-sign),这是API安全认证的一部分。

主要功能

  1. 签到(check函数)

    • 向橙光游戏的签到接口发送POST请求。
    • 根据响应判断签到是否成功,并记录结果。
  2. 获取活跃任务列表(getaskList函数)

    • 从橙光游戏获取当日的任务列表。
    • 处理API响应并返回任务列表。
  3. 登录奖励(loginreward函数)

    • 访问登录奖励的API。
    • 根据API的响应处理和记录领奖情况。
  4. x-sign生成(getsign函数)

    • 使用MD5算法生成所需的x-sign,该签名用于验证请求的合法性。
  5. 评论任务(favor函数)

    • 处理特定的收藏与取消收藏任务,通过API请求实现。
  6. 上传时间(uploadtime函数)

    • 为指定任务上传虚拟的运行时间。
  7. 主控制函数(cg函数)

    • 顺序调用上述功能函数,实现自动化的任务执行。
    • 处理并输出用户信息和任务执行结果。

特点

  • Modular Approach
    通过将功能拆分成多个函数,使代码更清晰、易于维护。
  • Error Handling
    使用try-catch语句处理可能的运行时错误,保证程序稳定性。
  • Async/Await
    利用JavaScript的异步特性,确保网络请求按顺序执行并正确处理响应。
  • Task Automation
    自动化多种日常任务,如签到、分享和评论,提高用户互动效率。

应用场景

这个脚本非常适合需要每日执行多项任务的橙光游戏用户,尤其是那些希望自动化日常操作以节省时间和精力的用户。通过运行这个脚本,用户可以无需手动干预即可完成签到、领取奖励和完成任务,从而更加专注于游戏本身的享受。


注意

本文部分变量已做脱敏处理,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。技术层面需要提供帮助,可以通过打赏的方式进行探讨。







没有评论:

发表评论

突发:中美关税靴子落地了

突发:中美关税靴子落地了 中美关税靴子落地了 直接讲重点: 1)中国出口美国,目前收10%的基础关税(为期90天),还有芬太尼20%的关税(中美继续谈,谈好了,芬太尼关税也可以取消)。目前最近90天,就是30%关税。 2)美国出口中国的产品按10%关税征税。 3)中国取消对美...