v1.2.12 新闻页增强:类别筛选标签(全部/新闻/百科/总决赛/续约/中国球员/选秀) + 分页控件(10条/页),可与搜索组合

This commit is contained in:
2026-08-18 00:13:29 +08:00
parent 4e40f486d5
commit 2da005ecca
4 changed files with 59 additions and 15 deletions
+22
View File
@@ -351,6 +351,28 @@ def player_game_logs(player_id, limit=10):
return out
# ================================================================== 新闻列表(前台分页版)
def list_news(q="", kind="", tag="", page=1, size=10):
"""前台新闻列表:关键词 + 类型(kind) + 话题标签(tag) + 分页"""
conds, args = [], []
if q:
like = f"%{fuzzy(q)}%"
conds.append("(title LIKE ? ESCAPE '\\' OR content LIKE ? ESCAPE '\\' OR tags LIKE ? ESCAPE '\\')")
args += [like, like, like]
if kind:
conds.append("kind=?")
args.append(kind)
if tag:
conds.append("tags LIKE ? ESCAPE '\\'")
args.append(f"%{fuzzy(tag)}%")
where = ("WHERE " + " AND ".join(conds)) if conds else ""
total = query_one(f"SELECT COUNT(*) AS c FROM news {where}", args)["c"]
rows = query(f"""SELECT id,title,author,source,publish_time,tags,kind,substr(content,1,160) AS summary
FROM news {where} ORDER BY publish_time DESC, id DESC LIMIT ? OFFSET ?""",
args + [size, (page - 1) * size])
return {"results": rows, "total": total, "page": page, "size": size}
# ================================================================== 新闻(SQL 关键词 + 向量语义 + 可选 rerank 融合)
def search_news(query_text, limit=5):
q = (query_text or "").strip()