__main__.py 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import asyncio
  2. import logging
  3. from aiogram import Bot, Dispatcher
  4. from simpleforward.bot import MessageManager, build
  5. from simpleforward.config import Config
  6. from simpleforward.moderation import AsyncModerator, RuleManager
  7. from . import paths
  8. async def main():
  9. if not paths.CONFIG_FILE.exists():
  10. Config().save(paths.CONFIG_FILE)
  11. config = Config.load(paths.CONFIG_FILE)
  12. logging.basicConfig(format=config.logging.fmt,
  13. datefmt=config.logging.date_fmt,
  14. level=config.logging.level)
  15. bot = Bot(token=config.bot.token.get_secret_value())
  16. dispatcher = Dispatcher()
  17. message_manager = MessageManager()
  18. moderator = None
  19. if config.moderation.enabled:
  20. rule_manager = RuleManager(paths.RULES_DIR)
  21. moderator = AsyncModerator(config, rule_manager)
  22. dispatcher.include_router(
  23. build(config, message_manager, moderator)
  24. )
  25. await dispatcher.start_polling(bot)
  26. if __name__ == "__main__":
  27. asyncio.run(main())