feat: 优化DB.py中的视频记录字段,移除冗余字段并调整字段逻辑

This commit is contained in:
晓丰 2025-07-01 19:46:22 +08:00
parent 6d102f9e84
commit 1e38b31e60

25
DB.py
View File

@ -52,12 +52,9 @@ video_op = Table("sh_dm_video_op_v3", _meta,
video = Table("sh_dm_video_v3", _meta, video = Table("sh_dm_video_v3", _meta,
Column("id", Integer, primary_key=True, autoincrement=True), Column("id", Integer, primary_key=True, autoincrement=True),
Column("v_id", String(64)), Column("v_id", String(64)),
Column("v_xid", String(64)), Column("v_xid", String(64), nullable=False),
Column("rn", String(50)),
Column("v_name", String(255), nullable=False),
Column("title", String(255), nullable=False), Column("title", String(255), nullable=False),
Column("link", String(255), nullable=False), Column("link", String(255), nullable=False),
Column("is_piracy", Integer, default=3),
Column("edition", String(255), default=''), Column("edition", String(255), default=''),
Column("duration", String(11), default='0'), Column("duration", String(11), default='0'),
Column("watch_number", Integer, default=0), Column("watch_number", Integer, default=0),
@ -66,17 +63,14 @@ video = Table("sh_dm_video_v3", _meta,
Column("public_time", DateTime), Column("public_time", DateTime),
Column("cover_pic", String(255)), Column("cover_pic", String(255)),
Column("sort", Integer), Column("sort", Integer),
Column("history_status", String(255)),
Column("u_xid", String(64)), Column("u_xid", String(64)),
Column("u_id", String(100)), Column("u_id", String(100)),
Column("u_pic", String(255)), Column("u_pic", String(255)),
Column("u_name", String(255)), Column("u_name", String(255)),
Column("status", Integer, default=1), Column("status", Integer, default=1),
Column("ts_status", Integer, default=1), Column("createtime", Integer, default=0),
Column("createtime", Integer), Column("updatetime", Integer, default=0),
Column("updatetime", Integer), Column("operatetime", Integer, default=0),
Column("is_repeat", Integer, default=0),
Column("operatetime", Integer),
) )
# 作者表 # 作者表
video_author = Table( video_author = Table(
@ -717,7 +711,6 @@ class DBSA:
logger.debug(f"跳过重复视频记录: {vid_index_key}") logger.debug(f"跳过重复视频记录: {vid_index_key}")
return return
# 操作记录表
op_row = { op_row = {
"v_id": data["v_id"], "v_id": data["v_id"],
"v_xid": data["v_xid"], "v_xid": data["v_xid"],
@ -736,7 +729,6 @@ class DBSA:
"ts_status": data.get("ts_status", 1), "ts_status": data.get("ts_status", 1),
} }
# 视频表
vid_row = { vid_row = {
"v_id": data["v_id"], "v_id": data["v_id"],
"v_xid": data["v_xid"], "v_xid": data["v_xid"],
@ -758,11 +750,10 @@ class DBSA:
"watch_number": data.get("view", 0), "watch_number": data.get("view", 0),
"follow_number": data.get("fans", 0), "follow_number": data.get("fans", 0),
"video_number": data.get("videos", 0), "video_number": data.get("videos", 0),
"is_repeat": 3,
"ts_status": data.get("ts_status", 1), "ts_status": data.get("ts_status", 1),
} }
# 仅保留 sh_dm_video_v3 表中存在的字段 # 只保留 video 表中合法字段
video_fields = {c.name for c in video.columns} video_fields = {c.name for c in video.columns}
vid_row = {k: v for k, v in vid_row.items() if k in video_fields} vid_row = {k: v for k, v in vid_row.items() if k in video_fields}
@ -792,7 +783,6 @@ class DBSA:
if not op_rows and not vid_rows: if not op_rows and not vid_rows:
return return
# ====== 写作者表 ======
authors_map = {} authors_map = {}
now_ts = int(time.time()) now_ts = int(time.time())
for data in payloads: for data in payloads:
@ -832,7 +822,6 @@ class DBSA:
cls.push_record_many(payloads) cls.push_record_many(payloads)
return return
# ====== 写操作记录表UPSERT======
if op_rows: if op_rows:
try: try:
stmt = mysql_insert(video_op).values(op_rows) stmt = mysql_insert(video_op).values(op_rows)
@ -850,7 +839,6 @@ class DBSA:
cls.push_record_many(payloads) cls.push_record_many(payloads)
return return
# ====== 写视频表UPSERT======
if vid_rows: if vid_rows:
try: try:
stmt = mysql_insert(video).values(vid_rows) stmt = mysql_insert(video).values(vid_rows)
@ -873,7 +861,6 @@ class DBSA:
"ts_status": stmt.inserted.ts_status, "ts_status": stmt.inserted.ts_status,
"updatetime": stmt.inserted.updatetime, "updatetime": stmt.inserted.updatetime,
"operatetime": stmt.inserted.operatetime, "operatetime": stmt.inserted.operatetime,
"is_repeat": stmt.inserted.is_repeat,
} }
ondup = stmt.on_duplicate_key_update(**upd) ondup = stmt.on_duplicate_key_update(**upd)
with _engine.begin() as conn: with _engine.begin() as conn:
@ -894,4 +881,4 @@ class DBSA:
if getattr(e.orig, "args", [None])[0] == 1213 and attempt < 2: if getattr(e.orig, "args", [None])[0] == 1213 and attempt < 2:
time.sleep(0.5 * (attempt + 1)) time.sleep(0.5 * (attempt + 1))
continue continue
raise raise