Przeglądaj źródła

Refactor main entry

- Add GlobalSlowmodeMiddleware
- Pass TemplateRenderer to router builder
- Create .env with app version
- Adjust imports
Librellium 3 miesięcy temu
rodzic
commit
e936bdbeea
1 zmienionych plików z 20 dodań i 2 usunięć
  1. 20 2
      podslv21_bot/__main__.py

+ 20 - 2
podslv21_bot/__main__.py

@@ -3,7 +3,11 @@ import logging
 
 from aiogram import Bot, Dispatcher
 
-from podslv21_bot.bot import MessageManager, build
+from podslv21_bot import __version_str__
+from podslv21_bot.bot import (GlobalSlowmodeMiddleware,
+                              MessageManager,
+                              TemplateRenderer,
+                              build)
 from podslv21_bot.config import Config
 from podslv21_bot.moderation import (ModerationExecutor,
                                      ModerationPlanner,
@@ -13,6 +17,9 @@ from . import paths
 
 
 async def main():
+    with open(".env", "w") as env_file:
+        env_file.write(f"APP_VERSION={__version_str__}\n")
+
     if not paths.CONFIG_FILE.exists():
         Config().save(paths.CONFIG_FILE)
 
@@ -26,16 +33,27 @@ async def main():
     dispatcher = Dispatcher()
 
     message_manager = MessageManager()
+    renderer = TemplateRenderer(paths.TEMPLATES_DIR)
 
     executor = None
     if config.moderation.enabled:
         rule_manager = RuleManager(paths.RULES_DIR)
         rule_manager.reload()
+
         planner = ModerationPlanner(config, rule_manager)
         executor = ModerationExecutor(config, bot, planner)
 
+    dispatcher.update.middleware(
+        GlobalSlowmodeMiddleware(delay=5, template_renderer=renderer)
+    )
+    
     dispatcher.include_router(
-        build(config, message_manager, executor)
+        build(
+            config=config,
+            message_manager=message_manager,
+            template_renderer=renderer,
+            executor=executor
+        )
     )
 
     await dispatcher.start_polling(bot)