59 lines
1.6 KiB
Python
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
|