feat: 将v_name列添加到视频表并更新相关逻辑

This commit is contained in:
晓丰 2025-07-07 20:02:56 +08:00
parent fc026ea50e
commit d7d7035e51

13
DB.py
View File

@ -53,6 +53,7 @@ video_op = Table("sh_dm_video_op_v3", _meta,
video = Table("sh_dm_video_v3", _meta,
Column("id", Integer, primary_key=True, autoincrement=True),
Column("v_id", String(64)),
Column("v_name", String(100), nullable=False),
Column("v_xid", String(64), nullable=False),
Column("title", String(255), nullable=False),
Column("link", String(255), nullable=False),
@ -720,7 +721,8 @@ class DBSA:
now_ts = int(time.time())
op_index_key = (data["v_xid"] or "", data["keyword"] or "", now_ts)
vid_index_key = (data["v_xid"] or "", data["title"] or "")
# —— 用 v_name 去重,避免 title 冲突 ——
vid_index_key = (data["v_xid"] or "", data["v_name"] or "")
# ---------- ① 获取互斥锁 ----------
if not cls._lock.acquire(timeout=cls.LOCK_TIMEOUT):
@ -737,7 +739,7 @@ class DBSA:
v_xid=data["v_xid"],
a_id=data["a_id"],
level=data.get("level", 0),
name_title=data["title"][:100],
name_title=data["v_name"][:100], # ✨ NEW: 截断避免过长
keyword=data["keyword"],
is_repeat=data["is_repeat"],
sort=data["sort"],
@ -756,6 +758,7 @@ class DBSA:
v_id=data["v_id"],
v_xid=data["v_xid"],
title=data["title"],
v_name=data["v_name"],
link=data["link"],
edition="",
duration=str(data["duration"]) if data.get("duration") else '0',
@ -901,6 +904,7 @@ class DBSA:
stmt_vid = mysql_insert(video).values(vid_rows)
ondup_vid = stmt_vid.on_duplicate_key_update(
title = stmt_vid.inserted.title,
v_name = stmt_vid.inserted.v_name,
link = stmt_vid.inserted.link,
edition = stmt_vid.inserted.edition,
duration = stmt_vid.inserted.duration,
@ -986,7 +990,7 @@ class DBSA:
now_ts = int(time.time())
op_key = (data["v_xid"] or "", data["keyword"] or "", now_ts)
vid_key = (data["v_xid"] or "", data["title"] or "")
vid_key = (data["v_xid"] or "", data["v_name"] or "")
if op_key in cls._existing_op_keys or vid_key in cls._existing_vid_keys:
return
@ -996,7 +1000,7 @@ class DBSA:
v_xid=data["v_xid"],
a_id=data.get("a_id", 0),
level=data.get("level", 0),
name_title=data["title"][:255],
name_title=data["v_name"],
keyword=data["keyword"],
is_repeat=data["is_repeat"],
sort=data["sort"],
@ -1013,6 +1017,7 @@ class DBSA:
v_id=data["v_id"],
v_xid=data["v_xid"],
title=data["title"],
v_name=data["v_name"],
link=data["link"],
edition="",
duration=str(data["duration"]) if data.get("duration") else '0',