mirror of
https://github.com/PaiGramTeam/PaiGram.git
synced 2024-11-16 12:51:35 +00:00
31 lines
786 B
Python
31 lines
786 B
Python
|
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
|