# На модуль распространяется лицензия "GNU General Public License v3.0 # https://github.com/all-licenses/GNU-General-Public-License-v3.0 # meta developer: @PyModule # meta fhsdesc: tool, tools, channel, admintools, admin, admintool from telethon.tl.types import Message from .. import loader @loader.tds class ChannelAdapterMod(loader.Module): """Модуль для добавления переходника в сообщения каналов""" strings = {"name": "ChannelAdapter"} async def client_ready(self, client, db): self.client = client self.db = db if not self.db.get(__name__, "adapters"): self.db.set(__name__, "adapters", {}) def get_adapters(self): """Получает адаптеры из базы данных""" return self.db.get(__name__, "adapters", {}) def save_adapters(self, adapters): """Сохраняет адаптеры в базу данных""" self.db.set(__name__, "adapters", adapters) @loader.command() async def addadaptercmd(self, message: Message): """[CHANNEL ID] [Текст] - Добавить канал и переходник.""" args = message.raw_text.split() if len(args) < 2: await message.edit("❗️ Укажите ID канала.") return chat_id = args[1] adapter_text = " ".join(args[2:]) if not adapter_text: await message.edit("❗️ Укажите текст переходника.") return adapters = self.get_adapters() adapters[chat_id] = adapter_text self.save_adapters(adapters) await message.edit(f" Переходник добавлен для канала: {chat_id} - {adapter_text}") @loader.command() async def deladaptercmd(self, message: Message): """[CHANNEL ID] - Удалить переходник для канала.""" args = message.raw_text.split() if len(args) < 2: await message.edit("❗️ Укажите ID канала.") return chat_id = args[1] adapters = self.get_adapters() if chat_id not in adapters: await message.edit(" Этот канал не найден в списке.") return del adapters[chat_id] self.save_adapters(adapters) await message.edit(f" Переходник для канала {chat_id} удалён.") @loader.command() async def listadapterscmd(self, message: Message): """- Показать список всех переходников.""" adapters = self.get_adapters() if not adapters: await message.edit(" Нет сохранённых переходников.") return text = "
👁 Список сохранённых переходников
\n\n\n" for chat_id, adapter_text in adapters.items(): text += f" {chat_id}: {adapter_text}\n\n" await message.edit(text) @loader.command() async def clearadapterscmd(self, message: Message): """- Удалить все переходники.""" adapters = self.get_adapters() if not adapters: await message.edit(" Нет переходников для удаления.") return self.db.set(__name__, "adapters", {}) await message.edit(" Все адаптеры были удалены.") async def watcher(self, message: Message): """Автоматически добавляет переходник в сообщения каналов""" if not message or not message.out: return adapters = self.get_adapters() adapter_text = adapters.get(str(message.chat_id), None) if not adapter_text: return try: if message.text: modified_text = f"{message.text}\n\n{adapter_text}" await message.edit(modified_text, parse_mode='html') elif message.media: modified_caption = f"{message.text}\n\n{adapter_text}" if message.text else adapter_text await message.edit(text=modified_caption, parse_mode='html') except Exception as e: me = await self.client.get_me() await self.client.send_message(me.id, f"❗️ Ошибка в ChannelAdapter:\n`{str(e)}`")