quote-rss-plugin/handlers/registry.py

30 lines
1 KiB
Python
Raw Permalink Normal View History

2025-08-13 18:49:19 +08:00
from typing import Dict,List
from .base_handler import BaseHandler
from .crypto_handler import CryptoHandler
from services.crypto_service import CryptoService
class HandlerRegistry:
"""处理器注册中心"""
def __init__(self):
self.handlers: Dict[str, BaseHandler] = {}
self._register_default_handlers()
def _register_default_handlers(self):
"""注册默认处理器"""
# 注册加密货币处理器
crypto_service = CryptoService()
crypto_handler = CryptoHandler(crypto_service)
self.register_handler(crypto_handler)
def register_handler(self, handler: BaseHandler):
"""注册处理器"""
self.handlers[handler.get_handler_name()] = handler
def get_handler(self, handler_name: str) -> BaseHandler:
"""获取处理器"""
return self.handlers.get(handler_name)
def list_handlers(self) -> List[str]:
"""列出所有可用的处理器"""
return list(self.handlers.keys())