"""一次性脚本:创建"抖音定时8-9点"任务。 用法(在 cmd 中执行,不是 PowerShell): cd /d d:\\platform-tools python create_task.py 任务配置: - 名称:抖音定时8-9点 - 类型:douyin_nurture(抖音养号) - 目标:全部空闲设备 - 调度:定时启停(每天 8:00 启动,9:00 自动停止) - 视频数量:不限(watch_count=0,靠停止 cron 到点停) - 运行时长:不限(max_duration=0,靠停止 cron 到点停) - 点赞:启用,rate=0.3 """ import sys import os sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) from flask import Flask from core.models import db, init_db, TaskJob as JobRow from core.task_manager import TaskManager, TaskJob from core.stf_client import STFClient app = Flask(__name__) app.config["SECRET_KEY"] = "dev-secret-key-change-in-production" app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///" + os.path.join( os.path.dirname(os.path.abspath(__file__)), "data", "users.db") app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False init_db(app) with app.app_context(): # 检查是否已存在同名任务 existing = JobRow.query.filter_by(name="抖音定时8-9点").first() if existing: print(f"任务已存在: id={existing.id}, name={existing.name}") print("如需重新创建,请先在前端删除该任务。") sys.exit(0) # 构造任务计划 job = TaskJob( name="抖音定时8-9点", task_type="douyin_nurture", target={"mode": "all"}, params={ "watch_count": 0, # 不限视频数量 "max_duration": 0, # 不限运行时长(靠 stop_cron 到点停止) "actions": { "like": { "enabled": True, "params": {"rate": 0.3, "method": "by_element"}, }, }, }, schedule={ "mode": "cron_stop", "cron": "0 8 * * *", # 每天 8:00 启动 "stop_cron": "0 9 * * *", # 每天 9:00 停止 }, retry={"max_attempts": 1, "delay": 60}, enabled=True, ) # 写入数据库 row = JobRow(id=job.id, name=job.name, task_type=job.task_type, enabled=job.enabled) row.set_target(job.target) row.set_params(job.params) row.set_schedule(job.schedule) row.set_retry(job.retry) db.session.add(row) db.session.commit() print(f"✓ 任务创建成功!") print(f" ID: {job.id}") print(f" 名称: {job.name}") print(f" 类型: {job.task_type}") print(f" 目标: 全部空闲设备") print(f" 调度: 每天 08:00 启动 → 09:00 自动停止") print(f" 视频数量: 不限(靠定时停止)") print(f" 点赞: 启用 (rate=0.3)") print() print("启动 web_server 后,该任务会自动加载并注册定时。") print("启动命令: python web_server.py")