mirror of
https://gitflic.ru/project/maks1ms/ocab.git
synced 2025-03-14 06:13:49 +03:00
50 lines
1.2 KiB
Python
50 lines
1.2 KiB
Python
import asyncio
|
|
import traceback
|
|
|
|
from aiogram import Bot, Dispatcher
|
|
|
|
from ocab_core.logger import setup_logger
|
|
from ocab_core.modules_system import ModulesManager
|
|
from ocab_core.modules_system.loaders import FSLoader
|
|
from ocab_core.modules_system.loaders.unsafe_fs_loader import UnsafeFSLoader
|
|
from ocab_core.singleton import Singleton
|
|
from ocab_modules.standard.config.config import get_telegram_token
|
|
from service import paths
|
|
|
|
bot_modules = [
|
|
UnsafeFSLoader(f"{paths.modules_standard}/config"),
|
|
UnsafeFSLoader(f"{paths.modules_standard}/database"),
|
|
UnsafeFSLoader(f"{paths.modules_standard}/roles"),
|
|
FSLoader(f"{paths.modules_standard}/info"),
|
|
]
|
|
|
|
|
|
async def main():
|
|
bot = None
|
|
database = None
|
|
setup_logger()
|
|
|
|
app = Singleton()
|
|
|
|
try:
|
|
bot = Bot(token=get_telegram_token())
|
|
|
|
app.dp = Dispatcher()
|
|
app.modules_manager = ModulesManager()
|
|
|
|
for module_loader in bot_modules:
|
|
app.modules_manager.load(module_loader)
|
|
|
|
await app.dp.start_polling(bot)
|
|
except Exception:
|
|
traceback.print_exc()
|
|
finally:
|
|
if bot is not None:
|
|
await bot.session.close()
|
|
if database is not None:
|
|
database.close()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(main())
|