feat: 将v_name列添加到视频表并更新相关逻辑
This commit is contained in:
parent
fc026ea50e
commit
d7d7035e51
15
DB.py
15
DB.py
@ -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',
|
||||
@ -1037,4 +1042,4 @@ class DBSA:
|
||||
cls._buf_vid.append(vid_row)
|
||||
cls._buf_payload.append(data)
|
||||
cls._existing_op_keys.add(op_key)
|
||||
cls._existing_vid_keys.add(vid_key)
|
||||
cls._existing_vid_keys.add(vid_key)
|
Loading…
x
Reference in New Issue
Block a user