我也来发个 2Libra 的签到脚本,基于 qd-today 项目
签到服务框架: https://github.com/qd-today/qd
当天首次签到
- 签到框架日志

- Telegram 通知

当天已签过到
- 签到框架日志

- Telegram 通知

如何配置?
现在还没有上架 qd 项目的 默认仓库 ,后续看情况,尽量上架。
- 现阶段可以把以下代码保存为
har文件,导入到 qd 系统中,保存为模板。

复制
[ { "comment": "发起签到请求", "request": { "method": "POST", "url": "https://2libra.com/api/sign", "headers": [ { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:147.0) Gecko/20100101 Firefox/147.0" }, { "name": "Accept", "value": "application/json, text/plain, */*" }, { "name": "Accept-Language", "value": "zh,zh-CN;q=0.9,en-US;q=0.8" }, { "name": "Accept-Encoding", "value": "gzip, deflate, br, zstd" }, { "name": "Referer", "value": "https://2libra.com/" }, { "name": "Origin", "value": "https://2libra.com" }, { "name": "Sec-GPC", "value": "1" }, { "name": "Sec-Fetch-Dest", "value": "empty" }, { "name": "Sec-Fetch-Mode", "value": "cors" }, { "name": "Sec-Fetch-Site", "value": "same-origin" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Cookie", "value": "{{cookie}}" }, { "name": "TE", "value": "trailers" }, { "name": "Authorization", "value": "{{Authorization}}" } ], "cookies": [ ] }, "rule": { "success_asserts": [ { "re": "201", "from": "status" }, { "re": "你今天已经签到过了", "from": "content" } ], "failed_asserts": [ ], "extract_variables": [ { "name": "m", "re": "(?<=\"m\":\").*?(?=\")", "from": "content" }, { "name": "message", "re": "(?<=\"message\":\").*?(?=\")", "from": "content" }, { "name": "streakd", "re": "(?<=\"streak\":)\\d+(?=[,}])", "from": "content" }, { "name": "sign_coins", "re": "(?<=\"coins\":)\\d+(?=[,}])", "from": "content" }, { "name": "balanced", "re": "(?<=\"balance\":)\\d+(?=[,}])", "from": "content" } ] } }, { "comment": "查询账户信息", "request": { "method": "GET", "url": "https://2libra.com/api/users/info?fields=info%2Cexp%2Ccoins", "headers": [ { "name": "Host", "value": "2libra.com" }, { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:147.0) Gecko/20100101 Firefox/147.0" }, { "name": "Accept", "value": "application/json, text/plain, */*" }, { "name": "Accept-Language", "value": "zh,zh-CN;q=0.9,en-US;q=0.8" }, { "name": "Accept-Encoding", "value": "gzip, deflate, br, zstd" }, { "name": "Referer", "value": "https://2libra.com/" }, { "name": "Sec-GPC", "value": "1" }, { "name": "Sec-Fetch-Dest", "value": "empty" }, { "name": "Sec-Fetch-Mode", "value": "cors" }, { "name": "Sec-Fetch-Site", "value": "same-origin" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Cookie", "value": "{{cookie}}" }, { "name": "Authorization", "value": "{{Authorization}}" } ], "cookies": [ ] }, "rule": { "success_asserts": [ { "re": "200", "from": "status" } ], "failed_asserts": [ ], "extract_variables": [ { "name": "username", "re": "(?<=\"username\":\").*?(?=\")", "from": "content" }, { "name": "user_number", "re": "(?<=\"user_number\":\").*?(?=\")", "from": "content" }, { "name": "currentExp", "re": "(?<=\"currentExp\":)\\d+(?=[,}])", "from": "content" }, { "name": "nextLevelExp", "re": "(?<=\"nextLevelExp\":)\\d+(?=[,}])", "from": "content" }, { "name": "expToNext", "re": "(?<=\"expToNext\":)\\d+(?=[,}])", "from": "content" }, { "name": "balance", "re": "(?<=\"coins\":)\\d+(?=[,}])", "from": "content" }, { "name": "level", "re": "(?<=\"exp\":\\{\"level\":)\\d+(?=[,}])", "from": "content" } ] } }, { "request": { "method": "GET", "url": "https://2libra.com/api/sign/stats", "headers": [ { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:147.0) Gecko/20100101 Firefox/147.0" }, { "name": "Accept", "value": "application/json, text/plain, */*" }, { "name": "Accept-Language", "value": "zh,zh-CN;q=0.9,en-US;q=0.8" }, { "name": "Accept-Encoding", "value": "gzip, deflate, br, zstd" }, { "name": "Referer", "value": "https://2libra.com/" }, { "name": "Sec-GPC", "value": "1" }, { "name": "Sec-Fetch-Dest", "value": "empty" }, { "name": "Sec-Fetch-Mode", "value": "cors" }, { "name": "Sec-Fetch-Site", "value": "same-origin" }, { "name": "Authorization", "value": "{{Authorization}}" }, { "name": "Connection", "value": "keep-alive" }, { "name": "Cookie", "value": "{{cookie}}" } ], "cookies": [ ] }, "rule": { "success_asserts": [ { "re": "200", "from": "status" } ], "failed_asserts": [ ], "extract_variables": [ { "name": "streak", "re": "(?<=\"streak\":)\\d+(?=[,}])", "from": "content" }, { "name": "maxStreak", "re": "(?<=\"maxStreak\":)\\d+(?=[,}])", "from": "content" }, { "name": "isotime", "re": "(?<=\")\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z(?=\")", "from": "content" } ] } }, { "comment": "字符串替换", "request": { "method": "POST", "url": "api://util/string/replace", "headers": [ ], "cookies": [ ], "data": "r=json&p=Z$&s={{isotime}}&t=%2B0000" }, "rule": { "success_asserts": [ { "re": "200", "from": "status" }, { "re": "\"状态\": \"OK\"", "from": "content" } ], "failed_asserts": [ ], "extract_variables": [ { "name": "time0", "re": "\"处理后字符串\": \"(.*)\"", "from": "content" } ] } }, { "comment": "返回对应时间戳和时间", "request": { "method": "POST", "url": "api://util/timestamp", "headers": [ ], "cookies": [ ], "data": "ts=&form=%Y-%m-%dT%H:%M:%S.%f%z&dt={{time0|urlencode}}" }, "rule": { "success_asserts": [ { "re": "200", "from": "status" } ], "failed_asserts": [ ], "extract_variables": [ { "name": "bj_date", "re": "\"北京时间\"\\s*:\\s*\"(\\d{4}-\\d{2}-\\d{2})", "from": "content" }, { "name": "bj_time", "re": "\"北京时间\"\\s*:\\s*\"\\d{4}-\\d{2}-\\d{2}T(\\d{2}:\\d{2}:\\d{2})", "from": "content" } ] } }, { "comment": "Unicode 转换", "request": { "method": "POST", "url": "api://util/unicode", "headers": [ ], "cookies": [ ], "data": "html_unescape=false&content={{username}}(第 {{user_number}} 号会员)\\r\\n{% if sign_coins %}{{message}},签到时间为:{{bj_date}} {{bj_time}},本次签到获得 {{sign_coins}} 金币{% else %}{{m}}{% endif %}\\r\\n 当前金币总数为 {{balance}} 个,已累计签到 {{streak}} 天\\r\\n 当前用户等级为 {{level}} 级,经验值为 {{currentExp}} 点,升级还需要 {{expToNext}} 点经验值" }, "rule": { "success_asserts": [ { "re": "200", "from": "status" }, { "re": "\"状态\": \"200\"", "from": "content" } ], "failed_asserts": [ ], "extract_variables": [ { "name": "__log__", "re": "\"转换后\": \"(.*)\"", "from": "content" } ] } } ]
- 通过刚刚导入的模板新建一个任务,填入你在 2Libra 的 cookie 或者 Authorization 即可。

然后这个任务就会定时执行啦!希望收到推送通知的话可以再配置一下推送渠道。

晚安,早点睡