__init__.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. # coding=utf-8
  2. """
  3. 存储模块 - 支持多种存储后端
  4. 支持的存储后端:
  5. - local: 本地 SQLite + TXT/HTML 文件
  6. - remote: 远程云存储(S3 兼容协议:R2/OSS/COS/S3 等)
  7. - auto: 根据环境自动选择(GitHub Actions 用 remote,其他用 local)
  8. """
  9. from trendradar.storage.base import (
  10. StorageBackend,
  11. NewsItem,
  12. NewsData,
  13. RSSItem,
  14. RSSData,
  15. convert_crawl_results_to_news_data,
  16. )
  17. from trendradar.storage.sqlite_mixin import SQLiteStorageMixin
  18. from trendradar.storage.local import LocalStorageBackend
  19. from trendradar.storage.manager import StorageManager, get_storage_manager
  20. # 远程后端可选导入(需要 boto3)
  21. try:
  22. from trendradar.storage.remote import RemoteStorageBackend
  23. HAS_REMOTE = True
  24. except ImportError:
  25. RemoteStorageBackend = None
  26. HAS_REMOTE = False
  27. __all__ = [
  28. # 基础类
  29. "StorageBackend",
  30. "NewsItem",
  31. "NewsData",
  32. "RSSItem",
  33. "RSSData",
  34. # Mixin
  35. "SQLiteStorageMixin",
  36. # 转换函数
  37. "convert_crawl_results_to_news_data",
  38. # 后端实现
  39. "LocalStorageBackend",
  40. "RemoteStorageBackend",
  41. "HAS_REMOTE",
  42. # 管理器
  43. "StorageManager",
  44. "get_storage_manager",
  45. ]