from abc import ABC, abstractmethod from types import FunctionType from utils.log import logger __all__ = ['Service', 'init_service'] class Service(ABC): @abstractmethod def __init__(self, *args, **kwargs): """初始化""" async def start(self): """启动 service""" async def stop(self): """关闭 service""" def init_service(func: FunctionType): from core.bot import bot if bot.is_running: try: service = bot.init_inject(func) logger.success(f'服务 "{service.__class__.__name__}" 初始化成功') bot.add_service(service) except Exception as e: # pylint: disable=W0703 logger.exception(f'来自{func.__module__}的服务初始化失败:{e}') return func