2025年3月19日星期三

起点读书任务脚本

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 {    cookie,    UserId,    deviceUid,    BookId,    TicketCount,    roleId,    version} = config.qidianQDSign = "";Message = ""const cryptojs = require('crypto-js');const axios = require("axios")
function encrypt(data) {    let algorithm = 'des-128-cbc'    let passwd = '{1dYgqE)h9,R)hKqEcv4]k[h'    let iv = '01234567'    str = cryptojs.TripleDES.encrypt("" + data, cryptojs.enc.Utf8.parse(passwd), {        iv: cryptojs.enc.Utf8.parse(iv),        mode: cryptojs.mode.CBC,        padding: cryptojs.pad.Pkcs7    })    return str.toString()}var sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
function QDGet(url, data, method = "post") {    return new Promise(async (resolve) => {        try {            let headers = {                cookie,                QDSign,                "User-Agent""Mozilla/mobile QDReaderAndroid/7.9.186/674/1000209"            }            qdsign = QD(data)            headers.QDSign = qdsign
            let res = await axios({                method,                url"https://druidv6.if.qidian.com" + url,                data,                headers            })            console.log(JSON.stringify(res.data))            resolve(res.data)        } catch (err) {            console.log(err)            if (err.response && err.response.dataresolve(err.response.data)            else Message += err        }        resolve();    });}

function QD(data) {    let str1 = data.split("&")        .sort(function(a, b) {            return a.localeCompare(b);        }).join("&").toLowerCase()    sign = cryptojs.MD5(str1).toString()    let str = `Rv1rPTnczce|${Math.floor(Date.now() )}|${UserId}|${deviceUid}|1|${version}|0|${sign}|f189adc92b816b3e9da29ea304d4a7e4`    qdsign = encrypt(str)    return qdsign}
async function qidian() {    Message += "  签到:"    let QDSign = ""    let signres = await QDGet("/argus/api/v2/checkin/checkin""sessionKey=&banId=0&captchaTicket=&captchaRandStr=&challenge=&validate=&seccode=")    if (signres && (signres.Result == 0)) Message += `签到成功!连签${signres.Data.NoBrokenTime}天`    else if (signres && signres.MessageMessage += signres.Message    if (TicketCount) {        //投票        urltp = "/Atom.axd/Api/InterAction/VoteRecomTicket"        datatp = `bookId=${BookId}&bookName=&count=${TicketCount}&description=这本书写的太好了,犒劳一下希望后续更精彩!&isSendSina=0&isSendTX=0&clienttype=1400&sourceId=0&sourceType=0`        let VoteRecomTicketRes = await QDGet(urltp, datatp)        if (VoteRecomTicketRes && VoteRecomTicketRes.MessageMessage += "\n  投推荐票:" + VoteRecomTicketRes.Message    }    //笔芯     urlbx = "/argus/api/v1/bookrole/setrolelikestatus"    let databx = `bookId=${BookId??"1033475139"}&roleId=${roleId??("61367713050100871")}&likeStatus=1`    let likeRes = await QDGet(urlbx, databx)    if (likeRes && likeRes.MessageMessage += "\n  比心:" + likeRes.Message    //每日抽卡    urlck = "/argus/api/v2/bookrole/card/call?type=1&costType=1&cardpoolid=0"    datack = "type=1&costType=1&cardpoolid=0"    let ckres = await QDGet(urlck, datack, "get")    if (ckres && ckres.Result == 0Message += "\n  抽卡:" + "恭喜你欧气爆棚!!获得:" + ckres.Data.Items[0].CardName    else Message += "\n  抽卡:" + ckres.Message    return "【起点读书:】\n" + Message}module.exports = qidian

解析

这脚本是一个用于自动化任务的Node.js模块,主要用于起点中文网的签到、投推荐票、比心(点赞角色)、以及每日抽卡功能。它使用了加密技术、HTTP请求等技术来实现与起点中文网的交互。

主要作用

  1. 自动签到
    向起点中文网发送签到请求,获取连续签到天数等信息。
  2. 投推荐票
    向指定的书籍投推荐票。
  3. 比心(点赞)
    对特定角色进行点赞。
  4. 每日抽卡
    进行每日的抽卡活动,获取随机奖励。

主要方法

  1. encrypt(data)

    • 作用
      使用TripleDES算法加密数据,生成请求起点中文网所需的签名(QDSign)。
    • 参数
      data - 要加密的数据字符串。
    • 返回值
      加密后的字符串。
  2. QDGet(url, data, method = "post")

    • url
       - API的相对路径。
    • data
       - 请求的数据。
    • method
       - HTTP方法,默认为POST。
    • 作用
      发送HTTP请求到起点中文网的API。
    • 返回值
      :API响应的数据。
  3. QD(data)

    • 作用
      生成QDSign,用于验证请求的合法性。
    • 参数
      data - 请求参数的字符串形式。
    • 返回值
      加密后的QDSign。
  4. qidian()

    • 作用
      执行整个自动化任务的流程,包括签到、投票、比心和抽卡。
    • 返回值
      执行结果的消息字符串。

流程说明

  • 签到
    首先执行签到操作,若成功,记录连续签到天数。
  • 投票
    如果配置了投票,则对指定的书籍投推荐票。
  • 比心
    对配置的角色进行点赞。
  • 抽卡
    执行每日抽卡操作,记录获得的奖励。

脚本充分展示了Node.js在自动化网络任务中的应用,尤其是在处理登录、加密、API请求等方面的能力。


注意

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



没有评论:

发表评论

真实后台数据,揭秘 YouTube频道如何获得32万刀,轻松吸金!

揭秘油管频道主真实后台数据,学他如何利用短视频解说获得百万美刀收入。 YouTube Shorts 可以说是2025年来钱最快的方法。看看下面一个油管频道主的真实后台数据,频道名称叫 Tobey Reacts,这个频道赚了32万美元。 其实这个频道不完全靠shorts获得收入...