# # @@@@@@ @@@@@@ @@@@@@@ @@@@@@@ @@@@@@ @@@@@@@@@@ @@@@@@ @@@@@@@ @@@ @@@ @@@ @@@@@@@@ @@@@@@ # @@@@@@@@ @@@@@@@ @@@@@@@ @@@@@@@@ @@@@@@@@ @@@@@@@@@@@ @@@@@@@@ @@@@@@@@ @@@ @@@ @@@ @@@@@@@@ @@@@@@@ # @@! @@@ !@@ @@! @@! @@@ @@! @@@ @@! @@! @@! @@! @@@ @@! @@@ @@! @@@ @@! @@! !@@ # !@! @!@ !@! !@! !@! @!@ !@! @!@ !@! !@! !@! !@! @!@ !@! @!@ !@! @!@ !@! !@! !@! # @!@!@!@! !!@@!! @!! @!@!!@! @!@ !@! @!! !!@ @!@ @!@ !@! @!@ !@! @!@ !@! @!! @!!!:! !!@@!! # !!!@!!!! !!@!!! !!! !!@!@! !@! !!! !@! ! !@! !@! !!! !@! !!! !@! !!! !!! !!!!!: !!@!!! # !!: !!! !:! !!: !!: :!! !!: !!! !!: !!: !!: !!! !!: !!! !!: !!! !!: !!: !:! # :!: !:! !:! :!: :!: !:! :!: !:! :!: :!: :!: !:! :!: !:! :!: !:! :!: :!: !:! # :: ::: :::: :: :: :: ::: ::::: :: ::: :: ::::: :: :::: :: ::::: :: :: :::: :: :::: :::: :: # : : : :: : : : : : : : : : : : : : : :: : : : : : : :: : : : :: :: :: : : # # © Copyright 2024 # # https://t.me/Den4ikSuperOstryyPer4ik # and # https://t.me/ToXicUse # # 🔒 Licensed under the GNU AGPLv3 # https://www.gnu.org/licenses/agpl-3.0.html # # meta developer: @AstroModules # meta banner: https://raw.githubusercontent.com/Den4ikSuperOstryyPer4ik/Astro-modules/main/Banners/InlineBotManager.jpg import logging from .. import loader from .. import utils as u logger = logging.getLogger(__name__) @loader.tds class InlineBotManagerMod(loader.Module): '''Control over your Inline bot!''' strings = { "name": "InlineBotManager", "no_args": ( "No arguments :( | Read, how to use the module, command: {}>/code>" ), "...-set": ( "{} for your inline bot(@{}) successfully set to {}" ), "error": "An error has occurred.", "namea": "Name", "inline-text": "Inline-Text", "about-text": "About", "description-text": "Description", "help-mod": """Instructions for the module: ------------------------------------------------ •Information about the module: •Module name --> InlineBotManager •Module description --> Control over your Inline bot! •Link to the module(to download) --> •Unload the module --> {prefix}unloadmod InlineBotManager •Your inline botname --> {} •Your inline bot username --> @{} ------------------------------------------------ • Commands: • {prefix}ibcheckname --> check bot name to be: "🌘 Hikka Userbot of {your nickname}" -------------------------------------------- • {prefix}ibsetname --> set a name for your Inline Bot Command example: {prefix}ibsetname DSOP-UserBot -------------------------------------------- • {prefix}ibsetqtext --> set text instead of "InlineQuery" for your Inline Bot Command example: {prefix}ibsetqtext UserBot-Inline-Query -------------------------------------------- • {prefix}ibsetdescription --> change the information Description the inline bot Command example: {prefix}ibsetdescription DSOP-UserBot -------------------------------------------- • {prefix}ibsetabout --> change the text about the information about the inline bot Command example: {prefix}ibsetabout DSOP-UserBot-about ------------------------------------------------""", "check-yes": "Bot name checked successfully!\nIt's correct.", "check-no": ( "Your inline bot name(@{}) was successfully checked! Result: bot name" " didn't match account name, bot name was changed from {} to" " {}" ), "_cfg_check_name": ( "Check and change the name of your inline bot after every restart?" ), } strings_ru = { "_cls_doc": """Управление над своим Inline ботом!""", "no_args": ( "Нет аргументов :( | Прочитайте, как пользоваться модулем, командой:" " {}" ), "...-set": ( "{} для вашего инлайн-бота(@{}) успешно установлен(-о/-а) на" " {}" ), "namea": "Имя", "inline-text": "Inline-Текст", "about-text": "Текст об информации", "description-text": "Информация", "error": "Произошла ошибка.", "help-mod": """Инструкция к модулю: ------------------------------------------------ •Информация о модуле: •Название модуля --> InlineBotManager •Описание модуля --> Управление над своим Inline ботом! •Ссылка на модуль(для загрузки) --> •Выгрузить модуль --> {prefix}unloadmod InlineBotManager ------------------------------------------------ •Информация о вашем Инлайн-Боте: ------ •Имя бота --> {} ---------------------- •Юзернейм бота --> @{} ------------------------------------------------ •Команды: • {prefix}ibcheckname --> проверить имя бота, чтобы оно было: "🌘 Hikka Userbot of (ваш ник-нейм)" ------------------------------------------------ • {prefix}ibsetname <имя> --> установить имя для вашего Инлайн-Бота Пример команды: {prefix}ibsetname DSOP-UserBot ------------------------------------------------ • {prefix}ibsetqtext <текст> --> установить текст вместо "InlineQuery" для вашего Инлайн-Бота Пример команды: {prefix}ibsetqtext UserBot-Inline-Query ------------------------------------------------ • {prefix}ibsetdescription <текст> --> изменить информацию о инлайн-боте Пример команды: {prefix}ibsetdescription DSOP-UserBot ------------------------------------------------ • {prefix}ibsetabout <текст> --> изменить текст об информации о инлайн-боте Пример команды: {prefix}ibsetabout DSOP-UserBot-about ------------------------------------------------""", "ib-help": """---------------------- """, "check-yes": "Имя бота успешно проверено!\nОно верное.", "check-no": ( "Имя вашего инлайн-бота(@{}) было успешно проверено! Результат: имя бота" " не соответствовало имени аккаунта, имя бота было сменено с" " {} на {}" ), "_cfg_check_name": ( "Проверять и изменять имя вашего инлайн-бота после каждого рестарта?" ), } def __init__(self): self.config = loader.ModuleConfig( loader.ConfigValue( "check_name", False, lambda: self.strings("_cfg_check_name"), validator=loader.validators.Boolean(), ) ) @loader.command(ru_doc="--> Просмотреть помощь по этому модулю") async def inlinebothelpcmd(self, message): """--> Check help for this module""" await message.delete() name = self.bot.first_name username = self.bot.username await self.client.send_message( message.peer_id, self.strings("help-mod").format( name, username, prefix=self.get_prefix(), ), ) @loader.command(ru_doc="<имя> --> изменить имя для вашего Инлайн-Бота") async def ibsetnamecmd(self, message): """ --> change Name for your Inline-Bot""" args = u.get_args_raw(message) if not args: command = f"{self.get_prefix()}inlinebothelp" await u.answer(message, self.strings("no_args").format(command)) else: async with self.client.conversation(self.botfather) as conv: await conv.send_message("/setname") await conv.send_message(f"@{self.inline.bot_username}") await conv.send_message(args) await conv.mark_read() await u.answer( message, self.strings("...-set").format( self.strings("namea"), self.inline.bot_username, args ), ) @loader.command( ru_doc="<текст> --> изменить текст в InlineQuery для вашего Инлайн-Бота" ) async def ibsetqtextcmd(self, message): """ --> change text in InlineQuery for your Inline-Bot""" args = u.get_args_raw(message) if not args: command = f"{self.get_prefix()}inlinebothelp" await u.answer(message, self.strings("no_args").format(command)) else: async with self.client.conversation(self.botfather) as conv: await conv.send_message("/setinline") await conv.send_message(f"@{self.inline.bot_username}") await conv.send_message(args) await conv.mark_read() await u.answer( message, self.strings("...-set").format( self.strings("inline-text"), self.inline.bot_username, args ), ) @loader.command(ru_doc="<текст> --> изменить информацию о инлайн-боте") async def ibsetdescriptioncmd(self, message): """ --> change inline-bot description""" args = u.get_args_raw(message) if not args: command = f"{self.get_prefix()}inlinebothelp" await u.answer(message, self.strings("no_args").format(command)) else: async with self.client.conversation(self.botfather) as conv: await conv.send_message("/setdescription") await conv.mark_read() await conv.send_message(f"@{self.inline.bot_username}") await conv.mark_read() await conv.send_message(args) await u.answer( message, self.strings("...-set").format( self.strings("description-text"), self.inline.bot_username, args ), ) @loader.command(ru_doc="<текст> --> изменить текст об информации о инлайн-боте") async def ibsetaboutcmd(self, message): """ --> change inline-bot about text""" args = u.get_args_raw(message) if not args: command = f"{self.get_prefix()}inlinebothelp" await u.answer(message, self.strings("no_args").format(command)) else: async with self.client.conversation(self.botfather) as conv: await conv.send_message("/setabouttext") await conv.send_message(f"@{self.inline.bot_username}") await conv.send_message(args) await conv.mark_read() await u.answer( message, self.strings("...-set").format( self.strings("about-text"), self.inline.bot_username, args ), ) @loader.command( ru_doc="""-->проверить имя бота, чтобы оно было: "🌘 Hikka Userbot of {ваш ник}" """ ) async def ibchecknamecmd(self, message): """-->check bot name to be: "🌘 Hikka Userbot of {your nickname}" """ bot_name = self.bot.first_name acc_name = self.acc.first_name norm_nameb = f"🌘 Hikka Userbot of {acc_name}" if bot_name == norm_nameb: await u.answer(message, self.strings("check-yes")) logger.debug(self.strings("check-yes")) else: async with self.client.conversation(self.botfather) as conv: await conv.send_message("/setname") await conv.send_message(f"@{self.inline.bot_username}") await conv.send_message(norm_nameb) await conv.mark_read() logger.info( self.strings("check-no").format(self.bot.username, bot_name, norm_nameb) ) await u.answer( message, self.strings("check-no").format( self.inline.bot_username, bot_name, norm_nameb ), ) async def client_ready(self, *_): self.botfather = "@BotFather" self.bot = await self.inline.bot.get_me() self.acc = await self.client.get_me() if self.config["check_name"]: m = await self.client.send_message("me", f"{self.get_prefix()}ibcheckname") await self.ibchecknamecmd(m)