Przeglądaj źródła

Add Config to global template namespace in TemplateRenderer

Add Config to global template namespace in TemplateRenderer
Librellium 3 miesięcy temu
rodzic
commit
1b81a8e7b8
1 zmienionych plików z 12 dodań i 11 usunięć
  1. 12 11
      anonflow/bot/utils/template_renderer.py

+ 12 - 11
anonflow/bot/utils/template_renderer.py

@@ -6,15 +6,17 @@ from aiogram.types import Message
 from jinja2 import Environment, FileSystemLoader, TemplateNotFound
 
 from anonflow import __version_str__
+from anonflow.config import Config
 
 
 class TemplateRenderer:
-    def __init__(self, templates_dir: Path):
+    def __init__(self, config: Config, templates_dir: Path):
         self._logger = logging.getLogger(__name__)
 
+        self.config = config
+
         self._env = Environment(
-            loader=FileSystemLoader(templates_dir),
-            enable_async=True
+            loader=FileSystemLoader(templates_dir), enable_async=True
         )
 
     async def _get_context(self, message: Message):
@@ -28,19 +30,18 @@ class TemplateRenderer:
             "bot_first_name": bot.first_name,
             "bot_last_name": bot.last_name,
             "bot_username": bot.username,
-            "bot_version": __version_str__
+            "bot_version": __version_str__,
+            "config": self.config,
         }
 
-    async def render(self,
-                     template_name: str,
-                     *,
-                     message: Optional[Message] = None,
-                     **extra_context):
+    async def render(self, template_name: str, *, message: Optional[Message] = None, **extra_context):
         try:
             template = self._env.get_template(template_name)
             context = await self._get_context(message) if message else {}
 
-            return await template.render_async(**{**context, **extra_context, "message": message})
+            return await template.render_async(
+                **{**context, **extra_context, "message": message}
+            )
         except TemplateNotFound:
             self._logger.warning(f"Template {template_name} not found.")
-            return f"Шаблон не найден для {template_name}"
+            return f"Шаблон не найден для {template_name}"