status.py 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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. QUALITY_DONE = 30
  20. SKIPPED = 90
  21. FAILED = 99
  22. DECODE_API_STATUS_MAP = {
  23. "SUCCESS": ExecutionStatus.DECODE_SUCCESS,
  24. "PENDING": ExecutionStatus.DECODE_PENDING,
  25. "FAILED": ExecutionStatus.DECODE_FAILED,
  26. }
  27. def decode_api_status_to_code(status: str | None, *, has_success_response: bool) -> int:
  28. if status:
  29. mapped = DECODE_API_STATUS_MAP.get(status.strip().upper())
  30. if mapped is not None:
  31. return mapped
  32. if has_success_response:
  33. return ExecutionStatus.DECODE_SUBMITTED
  34. return ExecutionStatus.DECODE_REQUEST_FAILED