luojunhui пре 1 дан
родитељ
комит
1bd49c6ec2

+ 2 - 2
app/api/v1/endpoints/__init__.py

@@ -3,7 +3,7 @@ from .health import create_health_bp
 from .tasks import create_tasks_bp
 from .tokens import create_tokens_bp
 from .monitor import create_monitor_bp
-from .mcp import create_mcp_bp
+# from .mcp import create_mcp_bp
 
 __all__ = [
     "create_abtest_bp",
@@ -11,5 +11,5 @@ __all__ = [
     "create_tasks_bp",
     "create_tokens_bp",
     "create_monitor_bp",
-    "create_mcp_bp",
+    # "create_mcp_bp",
 ]

+ 52 - 52
app/api/v1/endpoints/mcp.py

@@ -1,52 +1,52 @@
-from __future__ import annotations
-
-from pydantic import ValidationError
-from quart import Blueprint, jsonify
-
-from app.api.v1.utils import ApiDependencies, LongArticlesMcpRequest
-from app.api.v1.utils import parse_json, validation_error_response
-from app.domains.mcp import deal, UnknownMcpTaskName
-
-
-def create_mcp_bp(deps: ApiDependencies) -> Blueprint:
-    bp = Blueprint("mcp", __name__)
-
-    @bp.route("/long_articles_mcp/<string:task_name>", methods=["POST"])
-    async def long_articles_mcp(task_name: str):
-        """MCP 交互接口
-
-        - POST /api/long_articles_mcp/<task_name>
-        - 通过 task_name 分发到 MCP 域内对应的方法
-        - 请求体为 JSON,可选字段如 page、page_size、sort_by、sort_order 等
-        """
-        try:
-            req, _ = await parse_json(LongArticlesMcpRequest)
-        except ValidationError as e:
-            payload, status = validation_error_response(e)
-            return jsonify(payload), status
-
-        # 使用校验后的模型转 dict,保证类型正确,且含 extra 透传字段
-        params = req.model_dump(exclude_none=True)
-
-        try:
-            result = await deal(
-                task_name=task_name,
-                pool=deps.db,
-                log_service=deps.log,
-                params=params,
-            )
-        except UnknownMcpTaskName:
-            return (
-                jsonify(
-                    {
-                        "code": 404,
-                        "message": f"unknown task_name: {task_name}",
-                        "data": None,
-                    }
-                ),
-                404,
-            )
-
-        return jsonify({"code": 0, "message": "success", "data": result})
-
-    return bp
+# from __future__ import annotations
+#
+# from pydantic import ValidationError
+# from quart import Blueprint, jsonify
+#
+# from app.api.v1.utils import ApiDependencies, LongArticlesMcpRequest
+# from app.api.v1.utils import parse_json, validation_error_response
+# # from app.domains.mcp import deal, UnknownMcpTaskName
+#
+#
+# def create_mcp_bp(deps: ApiDependencies) -> Blueprint:
+#     bp = Blueprint("mcp", __name__)
+#
+#     @bp.route("/long_articles_mcp/<string:task_name>", methods=["POST"])
+#     async def long_articles_mcp(task_name: str):
+#         """MCP 交互接口
+#
+#         - POST /api/long_articles_mcp/<task_name>
+#         - 通过 task_name 分发到 MCP 域内对应的方法
+#         - 请求体为 JSON,可选字段如 page、page_size、sort_by、sort_order 等
+#         """
+#         try:
+#             req, _ = await parse_json(LongArticlesMcpRequest)
+#         except ValidationError as e:
+#             payload, status = validation_error_response(e)
+#             return jsonify(payload), status
+#
+#         # 使用校验后的模型转 dict,保证类型正确,且含 extra 透传字段
+#         params = req.model_dump(exclude_none=True)
+#
+#         try:
+#             result = await deal(
+#                 task_name=task_name,
+#                 pool=deps.db,
+#                 log_service=deps.log,
+#                 params=params,
+#             )
+#         except UnknownMcpTaskName:
+#             return (
+#                 jsonify(
+#                     {
+#                         "code": 404,
+#                         "message": f"unknown task_name: {task_name}",
+#                         "data": None,
+#                     }
+#                 ),
+#                 404,
+#             )
+#
+#         return jsonify({"code": 0, "message": "success", "data": result})
+#
+#     return bp

+ 2 - 2
app/api/v1/routes/routes.py

@@ -9,7 +9,7 @@ from app.api.v1.endpoints import (
     create_tasks_bp,
     create_tokens_bp,
     create_monitor_bp,
-    create_mcp_bp
+    # create_mcp_bp
 )
 from app.core.config import GlobalConfigSettings
 from app.core.database import DatabaseManager
@@ -33,7 +33,7 @@ def register_v1_blueprints(deps: ApiDependencies) -> Blueprint:
     api.register_blueprint(create_tokens_bp(deps))
     api.register_blueprint(create_abtest_bp(deps))
     api.register_blueprint(create_monitor_bp(deps))
-    api.register_blueprint(create_mcp_bp(deps))
+    # api.register_blueprint(create_mcp_bp(deps))
 
     return api
 

+ 0 - 0
app/domains/data_recycle_tasks/recycle_mini_program_info/__init__.py


+ 20 - 0
app/domains/data_recycle_tasks/recycle_mini_program_info/_const.py

@@ -0,0 +1,20 @@
+class RecycleMiniProgramInfoConst:
+
+    class TaskSatus:
+        INIT = 0
+        PROCESSING = 1
+        SUCCESS = 2
+        Failed = 99
+
+    class ArticleStatus:
+        ILLEGAL = 25012
+        DELETED = 25005
+        SUCCESS = 0
+        UNKNOWN = 10000
+
+    class PublishTimestampStatus:
+        DEFAULT = 0
+        REQUEST_FAIL = -1
+        DELETED = -2
+        UNKNOWN = -3
+        ILLEGAL = -4

+ 45 - 0
app/domains/data_recycle_tasks/recycle_mini_program_info/_mapper.py

@@ -0,0 +1,45 @@
+from app.core.database import DatabaseManager
+
+from ._const import RecycleMiniProgramInfoConst
+
+
+class RecycleMiniProgramInfoMapper(RecycleMiniProgramInfoConst):
+    def __init__(self, pool: DatabaseManager):
+        self.pool = pool
+
+    # 获取文章列表-old
+    async def fetch_article_list(self) -> list[dict]:
+        query = """select ContentUrl, wx_sn from official_articles_v2 where publish_timestamp in %s;"""
+        return await self.pool.async_fetch(
+            query=query,
+            db_name="piaoquan_crawler",
+            params=(
+                tuple(
+                    [
+                        self.PublishTimestampStatus.DEFAULT,
+                        self.PublishTimestampStatus.REQUEST_FAIL,
+                        self.PublishTimestampStatus.REQUEST_FAIL
+                    ]
+                ),
+            )
+        )
+
+    # 更新文章发文时间戳 &&  root_source_id_list
+    async def set_publish_detail_info(self, wx_sn,
+                                      publish_timestamp, root_source_id_list):
+        query = """
+            UPDATE official_articles_v2 
+            SET publish_timestamp = %s, root_source_id_list = %s
+            WHERE wx_sn = %s;
+        """
+        await self.pool.async_save(
+            query=query,
+            db_name="piaoquan_crawler",
+            params=(
+                publish_timestamp,
+                root_source_id_list,
+                wx_sn
+            ),
+        )
+
+

+ 0 - 0
app/domains/data_recycle_tasks/recycle_mini_program_info/_util.py


+ 0 - 0
app/domains/data_recycle_tasks/recycle_mini_program_info/entrance.py


+ 0 - 3
app/domains/mcp/__init__.py

@@ -1,3 +0,0 @@
-from .entrance import deal, UnknownMcpTaskName
-
-__all__ = ["deal", "UnknownMcpTaskName"]