From fc14cad3ff6f8c07f326cb5c453ede316c952624 Mon Sep 17 00:00:00 2001 From: profitroll Date: Wed, 3 Jan 2024 23:16:26 +0100 Subject: [PATCH] owner, scoped_commands and i18n_bot_info can be provided in Client's kwargs now --- src/libbot/pyrogram/classes/client.py | 95 +++++++++++++++------------ 1 file changed, 53 insertions(+), 42 deletions(-) diff --git a/src/libbot/pyrogram/classes/client.py b/src/libbot/pyrogram/classes/client.py index 90422f6..be5808f 100644 --- a/src/libbot/pyrogram/classes/client.py +++ b/src/libbot/pyrogram/classes/client.py @@ -46,6 +46,7 @@ class PyroClient(Client): def __init__( self, name: str = "bot_client", + owner: Union[int, None] = None, config: Union[Dict[str, Any], None] = None, config_path: Union[str, Path] = Path("config.json"), api_id: Union[int, None] = None, @@ -58,6 +59,8 @@ class PyroClient(Client): sleep_threshold: int = 120, max_concurrent_transmissions: int = 1, commands_source: Union[Dict[str, dict], None] = None, + scoped_commands: Union[bool, None] = None, + i18n_bot_info: bool = False, scheduler: Union[AsyncIOScheduler, BackgroundScheduler, None] = None, **kwargs, ): @@ -93,12 +96,16 @@ class PyroClient(Client): else max_concurrent_transmissions, **kwargs, ) - self.owner: int = self.config["bot"]["owner"] + self.owner: int = self.config["bot"]["owner"] if owner is None else owner self.commands: List[PyroCommand] = [] self.commands_source: Dict[str, dict] = ( self.config["commands"] if commands_source is None else commands_source ) - self.scoped_commands: bool = self.config["bot"]["scoped_commands"] + self.scoped_commands: bool = ( + self.config["bot"]["scoped_commands"] + if scoped_commands is None + else scoped_commands + ) self.start_time: float = 0 self.bot_locale: BotLocale = BotLocale( @@ -116,6 +123,8 @@ class PyroClient(Client): self.scopes_placeholders: Dict[str, int] = {"owner": self.owner} + self.i18n_bot_info: bool = i18n_bot_info + async def start(self, register_commands: bool = True) -> None: await super().start() @@ -129,51 +138,53 @@ class PyroClient(Client): getpid(), ) - # Register default bot's info - try: - await self.set_bot_info( - name=self._("name", "bot"), - about=self._("about", "bot"), - description=self._("description", "bot"), - lang_code="", - ) - logger.info( - "Bot's info for the default locale %s has been updated", - self.default_locale, - ) - except KeyError: - logger.warning( - "Default locale %s has incorrect keys or values in bot section", - self.default_locale, - ) - - # Register bot's info for each available locale - for locale_code in self.locales: - locale = self.locales[locale_code] - - if "metadata" not in locale or ("codes" not in locale["metadata"]): - logger.warning( - "Locale %s is missing metadata or metadata.codes key", locale_code + if self.i18n_bot_info: + # Register default bot's info + try: + await self.set_bot_info( + name=self._("name", "bot"), + about=self._("about", "bot"), + description=self._("description", "bot"), + lang_code="", + ) + logger.info( + "Bot's info for the default locale %s has been updated", + self.default_locale, + ) + except KeyError: + logger.warning( + "Default locale %s has incorrect keys or values in bot section", + self.default_locale, ) - continue - for code in locale["metadata"]["codes"]: - try: - await self.set_bot_info( - name=locale["bot"]["name"], - about=locale["bot"]["about"], - description=locale["bot"]["description"], - lang_code=code, - ) - logger.info( - "Bot's info for the locale %s has been updated", - self.default_locale, - ) - except KeyError: + # Register bot's info for each available locale + for locale_code in self.locales: + locale = self.locales[locale_code] + + if "metadata" not in locale or ("codes" not in locale["metadata"]): logger.warning( - "Locale %s has incorrect keys or values in bot section", + "Locale %s is missing metadata or metadata.codes key", locale_code, ) + continue + + for code in locale["metadata"]["codes"]: + try: + await self.set_bot_info( + name=locale["bot"]["name"], + about=locale["bot"]["about"], + description=locale["bot"]["description"], + lang_code=code, + ) + logger.info( + "Bot's info for the locale %s has been updated", + self.default_locale, + ) + except KeyError: + logger.warning( + "Locale %s has incorrect keys or values in bot section", + locale_code, + ) # Send a message to the bot's reports chat about the startup try: