feat: 优化DB.py中的视频记录字段,移除冗余字段并调整字段逻辑
This commit is contained in:
parent
6d102f9e84
commit
1e38b31e60
25
DB.py
25
DB.py
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user