From 0ed1530b4049944f44554ba4711acb823a211854 Mon Sep 17 00:00:00 2001
From: yj <2077506045@qq.com>
Date: 星期二, 26 八月 2025 10:37:23 +0800
Subject: [PATCH] 1.新增结束语判断;2.增加@客服后静默;3.增加判断群已静默后AI已回复也不发消息

---
 main.py |   40 +++++++++++++++++++++++++++++++++++++++-
 1 files changed, 39 insertions(+), 1 deletions(-)

diff --git a/main.py b/main.py
index dd776b7..e6b60b3 100644
--- a/main.py
+++ b/main.py
@@ -7,10 +7,15 @@
 from fastapi.middleware.cors import CORSMiddleware
 from contextlib import asynccontextmanager
 from loguru import logger
+import time
 from config import settings
 from app.api.callback import router as callback_router
+from app.api.friend_ignore import router as friend_ignore_router
+from app.api.message_aggregation import router as message_aggregation_router
 from app.models.database import create_tables
 from app.workers.message_worker import message_worker
+from app.services.contact_sync import contact_sync_service
+from app.services.message_aggregator import message_aggregator
 
 
 @asynccontextmanager
@@ -33,12 +38,33 @@
     except Exception as e:
         logger.error(f"娑堟伅宸ヤ綔杩涚▼鍚姩澶辫触: {str(e)}")
 
+    # 鍚屾鑱旂郴浜轰俊鎭苟寤虹珛濂藉弸蹇界暐鍒楄〃
+    try:
+        if settings.ecloud_w_id:
+            logger.info("寮�濮嬪悓姝ヨ仈绯讳汉淇℃伅...")
+            success = contact_sync_service.sync_contacts_on_startup(settings.ecloud_w_id)
+            if success:
+                logger.info("鑱旂郴浜哄悓姝ュ畬鎴愶紝濂藉弸蹇界暐鍒楄〃宸插缓绔�")
+            else:
+                logger.warning("鑱旂郴浜哄悓姝ュけ璐�")
+        else:
+            logger.warning("鏈厤缃甧cloud_w_id锛岃烦杩囪仈绯讳汉鍚屾")
+    except Exception as e:
+        logger.error(f"鑱旂郴浜哄悓姝ュ紓甯�: {str(e)}")
+
     logger.info("搴旂敤鍚姩瀹屾垚")
 
     yield
 
     # 鍏抽棴鏃舵墽琛�
     logger.info("姝e湪鍏抽棴搴旂敤...")
+
+    # 鍋滄娑堟伅鑱氬悎鏈嶅姟
+    try:
+        message_aggregator.stop()
+        logger.info("娑堟伅鑱氬悎鏈嶅姟宸插仠姝�")
+    except Exception as e:
+        logger.error(f"娑堟伅鑱氬悎鏈嶅姟鍋滄澶辫触: {str(e)}")
 
     # 鍋滄娑堟伅宸ヤ綔杩涚▼
     try:
@@ -69,6 +95,8 @@
 
 # 娉ㄥ唽璺敱
 app.include_router(callback_router, prefix="/api/v1", tags=["鍥炶皟鎺ュ彛"])
+app.include_router(friend_ignore_router, prefix="/api/v1", tags=["濂藉弸蹇界暐绠$悊"])
+app.include_router(message_aggregation_router, prefix="/api/v1/aggregation", tags=["娑堟伅鑱氬悎绠$悊"])
 
 
 @app.get("/")
@@ -81,12 +109,22 @@
     }
 
 
+@app.get("/health")
+async def health_check():
+    """鍋ュ悍妫�鏌ユ帴鍙�"""
+    return {
+        "status": "healthy",
+        "message": "E浜戠瀹�-DifyAI瀵规帴鏈嶅姟杩愯姝e父",
+        "timestamp": int(time.time()),
+    }
+
+
 if __name__ == "__main__":
     # 閰嶇疆鏃ュ織
     logger.add(
         settings.log_file,
         rotation="1 day",
-        retention="30 days",
+        retention="7 days",
         level=settings.log_level,
         format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {name}:{function}:{line} - {message}",
     )

--
Gitblit v1.9.1