模仿青龙面板的任务执行器
租的服务器, 到期了, 但是薅羊毛的脚本不能停啊, 虽然一年下来, 收益不过百来块, 就是图一乐.本来想着将青龙面板装到本地, 但是觉得不太安全, 于是自己捏了一个毛坯房.
其实还有更简单的方法, 就是使用windows的定时任务, 但是不太灵活.
比如设置每天定时执行, 错过时间了怎么办?
另外, 我尝试过, 并没有运行脚本.
我的程序很简单, 主要部分, 就是添加任务, 设置cron格式的执行时间, 然后主程序不断循环, 检查是否有任务需要执行.
次要部分就是界面了, 老规矩, fastapi+vue, 界面写起来容易, 前后端拼起来就难了, 主要还是水平太菜, python和html都不太会.
前前后后花了一个月时间吧, 总算是能自动跑脚本了, 然后, 我发现, 为了这点苍蝇肉, 花了那么多功夫, 真是蠢到家了:rggrg
成品地址: https://wwoc.lanzouq.com/iDgW31h7l4gh
需要安装python3.11, 以及其他依赖.
重要说明: 添加任务时的cron格式: 分 时 天 周 月 (貌似, 我也忘了, copy别人的代码, 自己只用到前面两个时间, 具体可以在cron.py看)
程序有很多bug, 捉了一礼拜, 弃疗了...
附上如何跑脚本的脚本
import os
from subprocess import Popen, PIPE
from pathlib import Path
WorkDir = Path(__file__).parent
os.chdir(WorkDir)# 设置工作目录为脚本所在目录, 防止脚本内部引用时找不到模块
dir = os.curdir# 脚本所在目录
scripts = [
"jd_bean_change_pro.js",
"jd_beanSign.js",
"jd_bean_home.js",
"jd_cxjhelp_draw.js",
"jd_dwapp.js",
"jd_fruit_task.js",
"jd_kd.js",
"jd_krsign.js",
"jd_plantBean.js",
"jd_price.js",
"jd_qdtx.js",
"jd_sign_graphics.js",
"jd_speed_sign_new.js",
"jd_tj_sign.js",
"jd_ttlhb.js",
"jd_unsubscribe.js",
]
def sprint(msg: str):
print(f"\033[1;34;40m{msg}\033[0m")
print(f"Start executing jobs, total [{len(scripts)}]")
for i, script in enumerate(scripts):
msg = f"start to executing job[{i}]:{script}"
sprint(msg)
full_path = os.path.join(dir, script)
process = Popen(["node", full_path], stdout=PIPE, stderr=PIPE,encoding='utf8')
stdout, stderr = process.communicate()
res = stdout.decode("utf-8")
err = stderr.decode("utf-8")
print(res)
print(err)
msg = f"Complete job[{i}]:{script}"
sprint(msg)
if "cookie已失效" in res:
print("JD Cookie 已经过期!")
break
其实有时候,不管羊毛大不大,制作学习的过程也很重要,这次的制作,以后也一定会有更多的想法和启发,感谢分享 源码地址 https://github.com/StBinge/watchdog.git 薅羊毛脚本是那种游戏挂机吗 求教{:301_974:} 感谢分享,薅羊毛的方法有了,得找一下羊在哪里 感谢分享{:1_893:} 感谢分享,{:1_893:} 能薅羊毛吗 薅羊毛可以吗,可以薅羊毛吗
感谢分享,