2025年3月6日星期四

轻之文库任务脚本

1.购买服务器

阿里云:

服务器购买地址

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

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

3.代码如下

const axios = require("axios");const { username,password  } = config.linovelheaders = {    referer"https://www.linovel.net/my/profile",    "user-agent""Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36",    "x-requested-with""XMLHttpRequest",    cookie" "}
function get(op, data) {    return new Promise(async (resolve) => {        try {            let url = `https://www.linovel.net/my/${op}?xhr=1`;            let res = await axios.get(url, {                headers            });            if (data) res = await axios.post(op, data, {                headers            });            if (res.data.code == 0) {                msg = res.data.msg                if (op == "qiandao") msg = `签到成功✅ 获得${res.data.data.base}墨水,连签${res.data.data.day}天`;                if (op == "getMonthlyTicket") msg = `领取月票成功✅ 获得${res.data.data.now}月票`;
            } else {                msg = res.data.msg            }            if (data) {                ckk = res.headers["set-cookie"];                ck = "";                for (i = 0; i < ckk.length; i++) {                    ck += ckk[i].split("expires")[0] + ";"                }                headers.cookie = ck            }            resolve(msg)        } catch (err) {            console.log(err);            resolve("签到接口请求出错")        }        resolve();    });}
async function login(kotori) {    let loginRes = await get("https://www.linovel.net/auth/doLogin"`_kotori=${kotori}&lgt=1&redirect=%2F&username=${username}&password=${password}`)    console.log(loginRes)    if (loginRes == "登录成功") gg = true    else gg = false    return gg}
function getkotori() {    return new Promise(async (resolve) => {        try {            let res = await axios.get("https://www.linovel.net/auth/login?lgt=1")            let t = res.data.match(/\"_kotori\" value=\"(.+?)\"/)            resolve(t && t[1])        } catch (err) {            //  console.log(err);            resolve()        }        resolve();    });}
async function linovel() {    r = false    let kotori = await getkotori()    if (kotori) r = await login(kotori)    if (r) {        let qdmsg = await get("qiandao")        let ypmsg = await get("getMonthlyTicket")        let Liresult = `【轻之文库】:\n签到:${qdmsg}\n领取月票:${ypmsg}`        return Liresult    } else return "【轻之文库】:登陆失败"}module.exports = linovel;

解析

这脚本用于轻之文库的网站自动化登录、签到和领取月票脚本。并且利用axios库来发送HTTP请求。

  1. get(op, data):

    • 该函数是一个通用的HTTP请求处理函数,用于发送GET或POST请求。
    • 参数op代表操作类型,用于构建URL路径。如果data存在,则发送POST请求;否则发送GET请求。
    • 函数根据操作类型op(如"qiandao"、"getMonthlyTicket")调整返回的消息格式。
    • 如果请求中返回了cookie,该函数还会更新请求头中的cookie信息,以维持会话状态。
    • 函数处理请求的结果,并返回相应的消息。
  2. login(kotori):

    • 该函数用于处理登录操作。它首先调用get函数发送登录请求。
    • 参数kotori是一个动态获取的安全令牌,用于增强登录安全性。
    • 根据登录结果更新全局变量gg(可能是用于控制流程的标志),并返回登录是否成功的布尔值。
  3. getkotori():

    • 这个函数用于从登录页面获取安全令牌_kotori,该令牌通常用于防止跨站请求伪造(CSRF)。
    • 它通过解析登录页面的HTML内容来获取_kotori值。
    • 如果成功获取到令牌,返回该令牌;否则返回空。
  4. async function linovel():

    • 这是模块的主控制函数,用于协调整个自动化过程。
    • 它首先尝试获取_kotori令牌,然后尝试使用该令牌登录。
    • 如果登录成功,它会继续执行签到和领取月票的操作,并格式化这些操作的结果为一段消息。
    • 如果登录失败,返回一个表示登录失败的消息。



注意

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


没有评论:

发表评论

热点点评 I 全球稳定币的现状与未来:基于USDT和USDC的分析

兴业银行 蒋晓宇全球稳定币的现状与未来:基于USDT和USDC的分析事件2025年3月,作为美国主要银行业监 兴业银行 蒋晓宇 全球稳定币的现状与未来: 基于USDT和USDC的分析 事件 2025年3月,作为美国主要银行业监管部门的货币监理署(OCC)、联邦存款保险公司(F...