__init__.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. convert_news_data_to_results,
  17. )
  18. from trendradar.storage.sqlite_mixin import SQLiteStorageMixin
  19. from trendradar.storage.local import LocalStorageBackend
  20. from trendradar.storage.manager import StorageManager, get_storage_manager
  21. # 远程后端可选导入(需要 boto3)
  22. try:
  23. from trendradar.storage.remote import RemoteStorageBackend
  24. HAS_REMOTE = True
  25. except ImportError:
  26. RemoteStorageBackend = None
  27. HAS_REMOTE = False
  28. __all__ = [
  29. # 基础类
  30. "StorageBackend",
  31. "NewsItem",
  32. "NewsData",
  33. "RSSItem",
  34. "RSSData",
  35. # Mixin
  36. "SQLiteStorageMixin",
  37. # 转换函数
  38. "convert_crawl_results_to_news_data",
  39. "convert_news_data_to_results",
  40. # 后端实现
  41. "LocalStorageBackend",
  42. "RemoteStorageBackend",
  43. "HAS_REMOTE",
  44. # 管理器
  45. "StorageManager",
  46. "get_storage_manager",
  47. ]