status.py 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. """热点内容流程状态码。"""
  2. from __future__ import annotations
  3. class ExecutionStatus:
  4. HOT_SAVED = 10
  5. NO_VALID_CONTENT = 15
  6. CONTENT_OK = 20
  7. CONTENT_REQUEST_FAILED = 25
  8. DECODE_SUBMITTED = 30
  9. DECODE_SUCCESS = 40
  10. DECODE_PENDING = 41
  11. DECODE_FAILED = 42
  12. DECODE_REQUEST_FAILED = 45
  13. DECODE_RESULT_FAILED = 50
  14. CONTRIBUTION_EXTRACTED = 60
  15. class PostprocessStatus:
  16. PENDING = 0
  17. DEMAND_MATCHED = 10
  18. WXINDEX_DONE = 20
  19. SKIPPED = 90
  20. FAILED = 99
  21. DECODE_API_STATUS_MAP = {
  22. "SUCCESS": ExecutionStatus.DECODE_SUCCESS,
  23. "PENDING": ExecutionStatus.DECODE_PENDING,
  24. "FAILED": ExecutionStatus.DECODE_FAILED,
  25. }
  26. def decode_api_status_to_code(status: str | None, *, has_success_response: bool) -> int:
  27. if status:
  28. mapped = DECODE_API_STATUS_MAP.get(status.strip().upper())
  29. if mapped is not None:
  30. return mapped
  31. if has_success_response:
  32. return ExecutionStatus.DECODE_SUBMITTED
  33. return ExecutionStatus.DECODE_REQUEST_FAILED