|
1 | | -__version__ = "3.2.1" |
| 1 | +__version__ = "3.2.2" |
2 | 2 |
|
3 | 3 | import asyncio |
4 | 4 | import logging |
|
33 | 33 | from core.clients import ApiClient, PluginDatabaseClient |
34 | 34 | from core.config import ConfigManager |
35 | 35 | from core.utils import human_join, strtobool, parse_alias |
36 | | -from core.models import PermissionLevel, ModmailLogger |
| 36 | +from core.models import PermissionLevel, ModmailLogger, SafeFormatter |
37 | 37 | from core.thread import ThreadManager |
38 | 38 | from core.time import human_timedelta |
39 | 39 |
|
@@ -69,6 +69,7 @@ def __init__(self): |
69 | 69 | self._session = None |
70 | 70 | self._api = None |
71 | 71 | self.metadata_loop = None |
| 72 | + self.formatter = SafeFormatter() |
72 | 73 |
|
73 | 74 | self._connected = asyncio.Event() |
74 | 75 | self.start_time = datetime.utcnow() |
@@ -120,7 +121,7 @@ def uptime(self) -> str: |
120 | 121 | if days: |
121 | 122 | fmt = "{d}d " + fmt |
122 | 123 |
|
123 | | - return fmt.format(d=days, h=hours, m=minutes, s=seconds) |
| 124 | + return self.formatter.format(fmt, d=days, h=hours, m=minutes, s=seconds) |
124 | 125 |
|
125 | 126 | def _configure_logging(self): |
126 | 127 | level_text = self.config["log_level"].upper() |
@@ -294,6 +295,8 @@ def guild_id(self) -> typing.Optional[int]: |
294 | 295 | except ValueError: |
295 | 296 | self.config.remove("guild_id") |
296 | 297 | logger.critical("Invalid GUILD_ID set.") |
| 298 | + else: |
| 299 | + logger.debug("No GUILD_ID set.") |
297 | 300 | return None |
298 | 301 |
|
299 | 302 | @property |
@@ -456,7 +459,7 @@ async def on_ready(self): |
456 | 459 | await self.wait_for_connected() |
457 | 460 |
|
458 | 461 | if self.guild is None: |
459 | | - logger.debug("Logging out due to invalid GUILD_ID.") |
| 462 | + logger.error("Logging out due to invalid GUILD_ID.") |
460 | 463 | return await self.logout() |
461 | 464 |
|
462 | 465 | logger.line() |
@@ -835,7 +838,7 @@ async def process_commands(self, message): |
835 | 838 | thread = await self.threads.find(channel=message.channel) |
836 | 839 | snippet = self.snippets[cmd] |
837 | 840 | if thread: |
838 | | - snippet = snippet.format(recipient=thread.recipient) |
| 841 | + snippet = self.formatter.format(snippet, recipient=thread.recipient) |
839 | 842 | message.content = f"{self.prefix}reply {snippet}" |
840 | 843 |
|
841 | 844 | ctxs = await self.get_contexts(message) |
|
0 commit comments