|
@@ -0,0 +1,37 @@
|
|
|
|
|
+from typing import List, Dict
|
|
|
|
|
+
|
|
|
|
|
+from app.core.database import DatabaseManager
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+class PiaoquanCrawlerDatabaseMapper:
|
|
|
|
|
+ # 兜底修改发文时间戳, 使用相同群发的msgID
|
|
|
|
|
+ @staticmethod
|
|
|
|
|
+ async def fallback_mechanism_by_msg_id(pool: DatabaseManager) -> int:
|
|
|
|
|
+ # 通过msgId 来修改publish_timestamp
|
|
|
|
|
+ query = """
|
|
|
|
|
+ UPDATE official_articles_v2 oav
|
|
|
|
|
+ JOIN (
|
|
|
|
|
+ SELECT ghId, appMsgId, MAX(publish_timestamp) AS publish_timestamp
|
|
|
|
|
+ FROM official_articles_v2
|
|
|
|
|
+ WHERE publish_timestamp > %s
|
|
|
|
|
+ GROUP by ghId, appMsgId
|
|
|
|
|
+ ) vv
|
|
|
|
|
+ ON oav.appMsgId = vv.appMsgId AND oav.ghId = vv.ghId
|
|
|
|
|
+ SET oav.publish_timestamp = vv.publish_timestamp
|
|
|
|
|
+ WHERE oav.publish_timestamp <= %s;
|
|
|
|
|
+ """
|
|
|
|
|
+ return await pool.async_save(
|
|
|
|
|
+ query=query, params=(0, 0), db_name="piaoquan_crawler"
|
|
|
|
|
+ )
|
|
|
|
|
+
|
|
|
|
|
+ # 兜底修改发文时间戳,使用 update_time
|
|
|
|
|
+ @staticmethod
|
|
|
|
|
+ async def fallback_mechanism_by_update_time(pool: DatabaseManager) -> int:
|
|
|
|
|
+ query = """
|
|
|
|
|
+ UPDATE official_articles_v2
|
|
|
|
|
+ SET publish_timestamp = updateTime
|
|
|
|
|
+ WHERE publish_timestamp < %s;
|
|
|
|
|
+ """
|
|
|
|
|
+ return await pool.async_save(
|
|
|
|
|
+ query=query, params=(0,), db_name="piaoquan_crawler"
|
|
|
|
|
+ )
|