forked from mttu-developers/konabot
74 lines
2.1 KiB
Python
74 lines
2.1 KiB
Python
import os
|
|
|
|
import dotenv
|
|
import nonebot
|
|
from nonebot.adapters.console import Adapter as ConsoleAdapter
|
|
from nonebot.adapters.discord import Adapter as DiscordAdapter
|
|
from nonebot.adapters.minecraft import Adapter as MinecraftAdapter
|
|
from nonebot.adapters.onebot.v11 import Adapter as OnebotAdapter
|
|
|
|
from konabot.common import permsys
|
|
from konabot.common.log import init_logger
|
|
from konabot.common.nb.exc import BotExceptionMessage
|
|
from konabot.common.path import LOG_PATH
|
|
from konabot.common.database import get_global_db_manager
|
|
|
|
|
|
dotenv.load_dotenv()
|
|
env = os.environ.get("ENVIRONMENT", "prod")
|
|
env_enable_console = os.environ.get("ENABLE_CONSOLE", "none")
|
|
env_enable_qq = os.environ.get("ENABLE_QQ", "none")
|
|
env_enable_discord = os.environ.get("ENABLE_DISCORD", "none")
|
|
env_enable_minecraft = os.environ.get("ENABLE_MINECRAFT", "none")
|
|
|
|
|
|
def main():
|
|
if env.upper() == "DEBUG" or env.upper() == "DEV":
|
|
console_log_level = "DEBUG"
|
|
else:
|
|
console_log_level = "INFO"
|
|
init_logger(
|
|
LOG_PATH,
|
|
[
|
|
BotExceptionMessage,
|
|
],
|
|
console_log_level=console_log_level,
|
|
)
|
|
|
|
nonebot.init()
|
|
|
|
driver = nonebot.get_driver()
|
|
|
|
if (env != "prod" and env != "test" and env_enable_console.upper() != "FALSE") or (
|
|
env_enable_console.upper() == "TRUE"
|
|
):
|
|
driver.register_adapter(ConsoleAdapter)
|
|
|
|
if env_enable_qq.upper() == "TRUE":
|
|
driver.register_adapter(OnebotAdapter)
|
|
|
|
if env_enable_discord.upper() == "TRUE":
|
|
driver.register_adapter(DiscordAdapter)
|
|
|
|
if env_enable_minecraft.upper() == "TRUE":
|
|
driver.register_adapter(MinecraftAdapter)
|
|
|
|
# nonebot.load_builtin_plugin("echo")
|
|
nonebot.load_plugins("konabot/plugins")
|
|
nonebot.load_plugin("nonebot_plugin_analysis_bilibili")
|
|
|
|
permsys.create_startup()
|
|
|
|
# 注册关闭钩子
|
|
@driver.on_shutdown
|
|
async def shutdown_handler():
|
|
# 关闭全局数据库管理器
|
|
db_manager = get_global_db_manager()
|
|
await db_manager.close_all_connections()
|
|
|
|
nonebot.run()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|