Files
starbot/starbot/core/bot.py
T

59 lines
1.6 KiB
Python

import sys
from loguru import logger
from starbot.core.datasource import DataSource
from starbot.exception.DataSourceException import DataSourceException
class StarBot:
"""
StarBot 类
"""
STARBOT_ASCII_LOGO = "\n".join(
(
r" _____ _ ____ _ ",
r" / ____| | | _ \ | | ",
r" | (___ | |_ __ _ _ __| |_) | ___ | |_ ",
r" \___ \| __/ _` | '__| _ < / _ \| __|",
r" ____) | || (_| | | | |_) | (_) | |_ ",
r" |_____/ \__\__,_|_| |____/ \___/ \__|",
r" StarBot - (v1.0.0) 2022-10-29",
r" Github: https://github.com/Starlwr/StarBot",
r"",
r"",
)
)
def __init__(self, datasource: DataSource):
"""
Args:
datasource: 推送配置数据源
"""
self.__datasource = datasource
async def run(self):
"""
启动 StarBot
"""
# 设置日志格式
logger_format = (
"<green>{time:YYYY-MM-DD HH:mm:ss.SSS}</green> | "
"<level>{level: <8}</level> | "
"<cyan>{name}</cyan>:<cyan>{line}</cyan> | "
"<level>{message}</level>"
)
logger.remove()
logger.add(sys.stderr, format=logger_format, level="INFO")
logger.opt(colors=True, raw=True).info(f"<yellow>{self.STARBOT_ASCII_LOGO}</>")
logger.info("开始启动 StarBot")
# 从数据源中加载配置
try:
await self.__datasource.load()
except DataSourceException as ex:
logger.error(ex.msg)
return