From bcacf80a7bd17a87d786d3570a9b88d87d023618 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=85=E5=BF=B5?= Date: Sat, 15 Aug 2026 15:07:43 +0800 Subject: [PATCH] =?UTF-8?q?fix(scraper):=20=E8=BF=87=E6=BB=A4type=3D-2?= =?UTF-8?q?=E6=97=A5=E6=9C=9F=E5=88=86=E9=9A=94=E7=BA=BF=20+=20=E6=B8=85?= =?UTF-8?q?=E7=90=86DB=E5=B7=B2=E6=9C=894062=E6=9D=A1=E5=88=86=E9=9A=94?= =?UTF-8?q?=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude --- yunke-server/scripts/cleanup_dividers.py | 7 +++++++ yunke-server/scripts/scrape_via_page.py | 3 +++ 2 files changed, 10 insertions(+) create mode 100644 yunke-server/scripts/cleanup_dividers.py diff --git a/yunke-server/scripts/cleanup_dividers.py b/yunke-server/scripts/cleanup_dividers.py new file mode 100644 index 0000000..324c6ae --- /dev/null +++ b/yunke-server/scripts/cleanup_dividers.py @@ -0,0 +1,7 @@ +import sqlite3 +con = sqlite3.connect('smoke.db') +c = con.cursor() +deleted = c.execute('DELETE FROM message WHERE type_raw = -2').rowcount +con.commit() +print(f'Deleted {deleted} divider messages') +print(f"Remaining wechat: {c.execute(chr(34)+'SELECT COUNT(*) FROM message WHERE channel=' + chr(39) + 'wechat' + chr(39) + chr(34)).fetchone()[0]}") diff --git a/yunke-server/scripts/scrape_via_page.py b/yunke-server/scripts/scrape_via_page.py index 0182712..5263d8b 100644 --- a/yunke-server/scripts/scrape_via_page.py +++ b/yunke-server/scripts/scrape_via_page.py @@ -453,6 +453,9 @@ async def scrape_messages(cookie_str: str, max_conversations: int = 100): for row in rows: if not isinstance(row, dict): continue + # 跳过 type=-2 日期分隔线(非真实消息,仅显示日期) + if str(row.get("type")) == "-2": + continue # Normalize to Message shape ts_raw = row.get("createTime") or row.get("timestamp") try: