|
|
@@ -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)
|