feat: Dict datasource support, Add StarBot model
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
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
|
||||
Reference in New Issue
Block a user