虎牙自动注册持久化成功流水与批次,支持失败续跑与随时导出
将注册批次/条目/成功记录落库,成功一个写入一条流水;服务中断可恢复并续跑失败项,换电脑也能导出 txt。同时修复 pending 被误判为运行中导致页面卡住的问题。
This commit is contained in:
@@ -96,6 +96,7 @@ class HuyaAccount(Base):
|
||||
game_name = Column(String(128), default="")
|
||||
game_channel = Column(String(64), default="")
|
||||
game_phone = Column(String(64), default="")
|
||||
sms_url = Column(Text, default="")
|
||||
assigned_to = Column(Integer, ForeignKey("users.id"), nullable=True, index=True)
|
||||
created_at = Column(DateTime, default=_utcnow)
|
||||
updated_at = Column(DateTime, default=_utcnow, onupdate=_utcnow)
|
||||
@@ -104,6 +105,81 @@ class HuyaAccount(Base):
|
||||
tasks = relationship("HuyaTask", back_populates="account")
|
||||
|
||||
|
||||
class HuyaRegisterBatch(Base):
|
||||
"""虎牙自动注册批次(持久化元数据)"""
|
||||
__tablename__ = "huya_register_batches"
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
batch_id = Column(String(64), unique=True, nullable=False, index=True)
|
||||
tag = Column(String(64), default="")
|
||||
created_by = Column(Integer, ForeignKey("users.id"), nullable=False, index=True)
|
||||
concurrency = Column(Integer, default=1)
|
||||
wait_seconds = Column(Integer, default=180)
|
||||
poll_interval = Column(Integer, default=5)
|
||||
password_prefix = Column(String(16), default="hy")
|
||||
fixed_password = Column(EncryptedText(), default="")
|
||||
use_proxy = Column(Boolean, default=False)
|
||||
status = Column(String(32), default="pending", index=True)
|
||||
message = Column(String(512), default="")
|
||||
total = Column(Integer, default=0)
|
||||
success_count = Column(Integer, default=0)
|
||||
failed_count = Column(Integer, default=0)
|
||||
stopped_count = Column(Integer, default=0)
|
||||
created_at = Column(DateTime, default=_utcnow)
|
||||
started_at = Column(DateTime, nullable=True)
|
||||
finished_at = Column(DateTime, nullable=True)
|
||||
|
||||
items = relationship("HuyaRegisterItem", back_populates="batch", cascade="all, delete-orphan")
|
||||
|
||||
|
||||
class HuyaRegisterItem(Base):
|
||||
"""虎牙自动注册批次内单条手机号状态"""
|
||||
__tablename__ = "huya_register_items"
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
batch_db_id = Column(Integer, ForeignKey("huya_register_batches.id"), nullable=False, index=True)
|
||||
batch_id = Column(String(64), nullable=False, index=True)
|
||||
line = Column(Integer, nullable=False)
|
||||
phone = Column(String(64), default="", index=True)
|
||||
provider = Column(String(32), default="")
|
||||
sms_url = Column(Text, default="")
|
||||
status = Column(String(32), default="pending", index=True)
|
||||
message = Column(String(512), default="")
|
||||
code = Column(String(32), default="")
|
||||
change_code = Column(String(32), default="")
|
||||
attempts = Column(Integer, default=0)
|
||||
change_attempts = Column(Integer, default=0)
|
||||
account_id = Column(Integer, ForeignKey("huya_accounts.id"), nullable=True)
|
||||
username = Column(String(128), default="")
|
||||
uid = Column(String(32), default="")
|
||||
password = Column(EncryptedText(), default="")
|
||||
password_changed = Column(Boolean, default=False)
|
||||
cookie = Column(EncryptedText(), default="")
|
||||
started_at = Column(DateTime, nullable=True)
|
||||
finished_at = Column(DateTime, nullable=True)
|
||||
|
||||
batch = relationship("HuyaRegisterBatch", back_populates="items")
|
||||
|
||||
|
||||
class HuyaRegisterSuccessLog(Base):
|
||||
"""虎牙自动注册成功流水(只追加,供随时导出)"""
|
||||
__tablename__ = "huya_register_success_logs"
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
batch_id = Column(String(64), default="", index=True)
|
||||
item_id = Column(Integer, nullable=True)
|
||||
account_id = Column(Integer, ForeignKey("huya_accounts.id"), nullable=True)
|
||||
phone = Column(String(64), default="", index=True)
|
||||
username = Column(String(128), default="")
|
||||
uid = Column(String(32), default="")
|
||||
password = Column(EncryptedText(), default="")
|
||||
sms_url = Column(Text, default="")
|
||||
tag = Column(String(64), default="", index=True)
|
||||
provider = Column(String(32), default="")
|
||||
created_by = Column(Integer, ForeignKey("users.id"), nullable=True)
|
||||
created_at = Column(DateTime, default=_utcnow, index=True)
|
||||
|
||||
|
||||
class HuyaTask(Base):
|
||||
"""虎牙业务任务"""
|
||||
__tablename__ = "huya_tasks"
|
||||
|
||||
Reference in New Issue
Block a user