86 lines
2.9 KiB
Python
86 lines
2.9 KiB
Python
"""一次性脚本:创建"抖音定时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")
|