"""热点内容流程状态码。""" from __future__ import annotations class ExecutionStatus: HOT_SAVED = 10 # 搜不到文章、缺标题/正文:未到 LLM 分类,不写 category_filter_* 字段 NO_VALID_CONTENT = 15 CONTENT_OK = 20 # LLM 分类通过 CATEGORY_FILTER_PASSED = 21 # LLM 分类不通过(与 NO_VALID_CONTENT 互斥) CATEGORY_FILTER_REJECTED = 22 CONTENT_REQUEST_FAILED = 25 DECODE_SUBMITTED = 30 DECODE_SUCCESS = 40 DECODE_PENDING = 41 DECODE_FAILED = 42 DECODE_REQUEST_FAILED = 45 DECODE_RESULT_FAILED = 50 CONTRIBUTION_EXTRACTED = 60 class PostprocessStatus: PENDING = 0 DEMAND_MATCHED = 10 WXINDEX_DONE = 20 QUALITY_DONE = 30 SKIPPED = 90 FAILED = 99 DECODE_API_STATUS_MAP = { "SUCCESS": ExecutionStatus.DECODE_SUCCESS, "PENDING": ExecutionStatus.DECODE_PENDING, "FAILED": ExecutionStatus.DECODE_FAILED, } def decode_api_status_to_code(status: str | None, *, has_success_response: bool) -> int: if status: mapped = DECODE_API_STATUS_MAP.get(status.strip().upper()) if mapped is not None: return mapped if has_success_response: return ExecutionStatus.DECODE_SUBMITTED return ExecutionStatus.DECODE_REQUEST_FAILED