46 lines
2.6 KiB
Python
46 lines
2.6 KiB
Python
from tortoise import fields
|
|
from app.models.base import TimestampMixin, BaseModel
|
|
|
|
|
|
class CleaningTask(BaseModel, TimestampMixin):
|
|
target = fields.CharField(max_length=255, description="目标(URL/公司名/ID)")
|
|
clean_type = fields.CharField(max_length=50, default="auto", description="清洗模式")
|
|
platform = fields.CharField(max_length=50, default="auto", description="目标平台")
|
|
proxy = fields.CharField(max_length=255, null=True, description="代理地址")
|
|
status = fields.CharField(max_length=20, default="pending", description="状态: pending/processing/success/fail")
|
|
storage_status = fields.CharField(max_length=20, default="unknown", description="存储状态: saved/duplicate/failed/unknown")
|
|
remote_sent = fields.BooleanField(default=False, description="是否已远程推送")
|
|
result_summary = fields.JSONField(null=True, description="清洗结果摘要")
|
|
original_data = fields.JSONField(null=True, description="原始请求数据")
|
|
error_msg = fields.TextField(null=True, description="错误信息")
|
|
|
|
class Meta:
|
|
table = "cleaning_task"
|
|
|
|
|
|
class ProxyConfig(BaseModel, TimestampMixin):
|
|
name = fields.CharField(max_length=100, description="名称")
|
|
proxy_type = fields.CharField(max_length=20, description="代理类型: http/socks/tunnel")
|
|
platform = fields.CharField(max_length=50, default="all", description="目标平台: boss/qcwy/zhilian/all")
|
|
proxy_url = fields.CharField(max_length=255, description="代理地址")
|
|
is_active = fields.BooleanField(default=True, description="是否可用")
|
|
|
|
class Meta:
|
|
table = "proxy_config"
|
|
|
|
|
|
class ProxyProvider(BaseModel, TimestampMixin):
|
|
name = fields.CharField(max_length=100, description="名称")
|
|
platform = fields.CharField(max_length=50, default="all", description="目标平台: boss/qcwy/zhilian/all")
|
|
mode = fields.CharField(max_length=20, description="解析模式: json/text")
|
|
list_path = fields.CharField(max_length=255, null=True, description="JSON列表路径")
|
|
ip_path = fields.CharField(max_length=255, null=True, description="IP字段路径")
|
|
port_path = fields.CharField(max_length=255, null=True, description="端口字段路径")
|
|
username_path = fields.CharField(max_length=255, null=True, description="用户名字段路径")
|
|
password_path = fields.CharField(max_length=255, null=True, description="密码字段路径")
|
|
pattern = fields.TextField(null=True, description="文本解析正则")
|
|
template = fields.CharField(max_length=255, description="最终代理模板")
|
|
|
|
class Meta:
|
|
table = "proxy_provider"
|