chore: 初始化仓库(排除 adb 二进制文件以解决推送超时)
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
"""一次性脚本:创建"抖音定时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")
|
||||
Reference in New Issue
Block a user