1.购买服务器阿里云:服务器购买地址https://t.aliyun.com/U/DT4XYh若失效,可用地址
阿里云:
服务器购买地址
https://t.aliyun.com/U/DT4XYh
若失效,可用地址
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.部署教程
3.代码如下
'''
new Env('LaTeX工作室签到')
cron: 2 1 * * *
'''
import os
import re
import sys
import requests
# 测试用环境变量
# os.environ['COOKIE_LATEX_TOKEN'] = ''
try: # 异常捕捉
from utils.notify import send # 导入消息通知模块
except Exception as err: # 异常捕捉
print('%s\n加载通知服务失败~' % err)
# 获取环境变量
def get_env():
# 判断 COOKIE_LATEX_TOKEN 是否存在于环境变量
if "COOKIE_LATEX_TOKEN" in os.environ:
# 读取系统变量以 \n 或 && 分割变量
cookie_list = re.split('\n|&&', os.environ.get('COOKIE_LATEX_TOKEN'))
else:
# 标准日志输出
print('未添加 COOKIE_LATEX_TOKEN 变量')
send('LaTeX工作室签到', '未添加 COOKIE_LATEX_TOKEN 变量')
# 脚本退出
sys.exit(0)
return cookie_list
class LaTeX:
'''LaTeX工作室签到类'''
def __init__(self, token):
self.token = token
self.logintime = None
self.money = None
self.nickname = None
self.score = None
self.sign_num = None
self.sign_text = None
self.vip_text = None
self.msg = None
def sign(self):
"""签到"""
url = f"https://www.latexstudio.net/api/Sign/Sign?token={self.token}"
res = requests.post(url).json()
self.sign_text = res['msg']
def user(self):
"""获取用户信息"""
url = f"https://www.latexstudio.net/api/user/index?token={self.token}"
res = requests.get(url).json()
if res['code'] == 1:
self.logintime = res['data']['logintime']
self.money = res['data']['money']
self.nickname = res['data']['nickname']
self.score = res['data']['score']
self.sign_num = res['data']['tongji']['sign_num']
self.vip_text = res['data']['vip_text']
else:
self.msg += res['msg']
def main(self):
"""执行"""
self.user()
self.sign()
if self.msg:
return '❌️ 签到失败,可能是token失效了!'
else:
return (f'👶 {self.nickname}\n'
f'⭐ 会员套餐: {self.vip_text}\n'
f'⭐ 余额: {self.money}\n'
f'⭐ 积分: {self.score}\n'
f'⭐ 累计已签到: {self.sign_num} 天\n'
f'⭐ {self.sign_text}\n'
f'⭐ 上次登录: {self.logintime}\n')
if __name__ == "__main__":
print("----------LaTeX工作室开始尝试签到----------")
msg, cookie_LaTeX_Tokens = "", get_env()
i = 0
while i < len(cookie_LaTeX_Tokens):
log = f"第 {i + 1} 个账号开始执行任务\n"
try:
log += LaTeX(cookie_LaTeX_Tokens[i]).main()
except Exception as e:
print(f"第 {i + 1} 个账号 处理时发生错误: {str(e)}")
print("继续处理下一个账号...")
continue
msg += log + "\n"
# print(log)
i += 1
try:
send('LaTeX工作室签到', msg)
except Exception as err:
print('%s\n❌️错误,请查看运行日志!' % err)
print("----------LaTeX工作室签到执行完毕----------")
解析
该脚本为LaTeX 工作室动签到脚本,主要作用:
支持多账号:从环境变量
COOKIE_LATEX_TOKEN
读取多个 token(用换行或&&
分隔)。对每个账号先拉取用户信息,再执行签到,最后把结果通过
utils.notify.send
做消息推送。运行安排示例(注释里):
cron: 2 1 * * *
(每天 01:02)。
主要方法
get_env()
从环境变量
COOKIE_LATEX_TOKEN
读取所有账号 token,并按换行或&&
分割为列表。若未配置该变量,发送提醒并退出。
class LaTeX
负责单个账号的具体操作与数据存放。
属性:保存 token、昵称、余额、积分、累计签到天数、会员信息、最后登录时间、签到返回文案等。
user(self)
(获取用户信息)GET
https://www.latexstudio.net/api/user/index?token=...
成功(
code == 1
)时写入:nickname
、money
、score
、tongji.sign_num
、vip_text
、logintime
。失败则将后端返回
msg
记录到self.msg
(用于后续失败提示)。sign(self)
(执行签到)POST
https://www.latexstudio.net/api/Sign/Sign?token=...
读取返回
msg
作为签到结果文案sign_text
(如"签到成功/已签到"等)。main(self)
(单账号主流程)先调用
user()
再sign()
;若
self.msg
非空,返回"❌️ 签到失败,可能是 token 失效";否则拼接并返回该账号的结果概览(昵称、会员、余额、积分、累计签到、签到提示、上次登录)。
脚本入口(if __name__ == "__main__":
)
打印开始标记;调用
get_env()
得到所有 token;逐个账号:
构造
LaTeX(token)
,调用其main()
获取结果;捕获异常(单账号异常不影响后续账号);累计日志。
结束后调用
send('LaTeX工作室签到', msg)
推送汇总结果;打印结束标记。
要点:
多账号并串行执行;
失败多为 token 失效(
user()
失败即提示);需要在运行环境预置
utils.notify.send
通知模块与COOKIE_LATEX_TOKEN
。
注意:
本文部分变量已做脱敏处理,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。技术层面需要提供帮助,可以通过打赏的方式进行探讨。
没有评论:
发表评论