| | |
| | | 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 |
| | |
| | | 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("未配置ecloud_w_id,跳过联系人同步") |
| | | except Exception as e: |
| | | logger.error(f"联系人同步异常: {str(e)}") |
| | | |
| | | logger.info("应用启动完成") |
| | | |
| | | yield |
| | | |
| | | # 关闭时执行 |
| | | logger.info("正在关闭应用...") |
| | | |
| | | # 停止消息聚合服务 |
| | | try: |
| | | message_aggregator.stop() |
| | | logger.info("消息聚合服务已停止") |
| | | except Exception as e: |
| | | logger.error(f"消息聚合服务停止失败: {str(e)}") |
| | | |
| | | # 停止消息工作进程 |
| | | try: |
| | |
| | | |
| | | # 注册路由 |
| | | 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("/") |