# * _ __ __ _ _ # * / \ _ _ _ __ ___ _ __ __ _| \/ | ___ __| |_ _| | ___ ___ # * / _ \| | | | '__/ _ \| '__/ _` | |\/| |/ _ \ / _` | | | | |/ _ \/ __| # * / ___ \ |_| | | | (_) | | | (_| | | | | (_) | (_| | |_| | | __/\__ \ # * /_/ \_\__,_|_| \___/|_| \__,_|_| |_|\___/ \__,_|\__,_|_|\___||___/ # * # * © Copyright 2024 # * # * https://t.me/AuroraModules # * # * 🔒 Code is licensed under GNU AGPLv3 # * 🌐 https://www.gnu.org/licenses/agpl-3.0.html # * ⛔️ You CANNOT edit this file without direct permission from the author. # * ⛔️ You CANNOT distribute this file if you have modified it without the direct permission of the author. # Name: BanWord # Author: dend1yya # Commands: # .bwadd | .bword | .bwlist | .bwordoff | .bwon | .bwdel | .bwoff # scope: hikka_only # meta developer: @AuroraModules # meta pic: https://i.postimg.cc/Hx3Zm8rB/logo.png # meta banner: https://te.legra.ph/file/926b74bc3235fb03433ea.jpg version = (1, 0, 0) from .. import loader, utils from datetime import timedelta @loader.tds class BanWordMod(loader.Module): """Модуль для управления запрещёнными словами в чате.""" strings = { "name": "BanWord", "word_added": "📄 Banword successfully added: {}", "kick": "👤 | User @{message.sender.username} used a banned word and was kicked. 🛡\n🥰 | Protected by AuroraModules", "mute": "👤 | User @{message.sender.username} used a banned word and was muted for 1 hour. 🛡\n🥰 | Protected by AuroraModules", "word_removed": "🗑 Banned word removed: {}", "none_bw": "🤬 The list of prohibited words is empty.", "bword_enabled": " Banned words are included in this chat", "bword_disabled": " Prohibited words are disabled.", "action_set": "🛡 Action set: {}", "no_action": " Action not specified. Use: kick, mute, delete", "no_word": "💬 Word not specified" } strings_ru = { "word_added": "📄 Запрещённое слово добавлено: {}", "kick": "👤 | Пользователь @{message.sender.username} использовал запрещённое слово и был кикнут. 🛡\n🥰 | Protected by AuroraModules", "mute": "👤 | Пользователь @{message.sender.username} использовал запрещённое слово и был замучен на 1 час. 🛡\n🥰 | Protected by AuroraModules", "word_removed": "🗑 Запрещённое слово удалено: {}", "none_bw": "🤬 Список запрещённых слов пуст.", "bword_enabled": " Банворды включены в этом чате.", "bword_disabled": " Банворды выключены в этом чате.", "action_set": "🛡 Действие установлено: {}", "no_action": " Действие не указано. Используйте: kick, mute, delete.", "no_word": "💬 Слово не указано.", } strings_uz = { "word_added": "📄 Taqiqlangan so'z qo'shildi: {}", "kick": "👤 | Foydalanuvchi @{message.sender.username} taqiqlangan soʻzni ishlatgan va haydalgan. 🛡\n🥰 | Protected by AuroraModules", "mute": "👤 | Foydalanuvchi @{message.sender.username} taqiqlangan soʻzni ishlatgan va 1 soatga o'chirilgan. 🛡\n🥰 | Protected by AuroraModules", "word_removed": "🗑 Taqiqlangan soʻz olib tashlandi: {}", "bword_enabled": " Bu chatda banwords yoqilgan.", "bw_none": "🤬 Taqiqlangan so'zlar ro'yxati bo'sh.", "bword_disabled": " Banwords o'chirilgan.", "action_set": "🛡 Harakat muvaffaqiyatli o'rnatildi: {}", "no_action": " Harakat belgilanmagan, foydalaning: kick, mute, delete", "no_word": "💬 So'z belgilanmagan", } strings_de = { "word_added": "📄 Verbotenes Wort hinzugefügt: {}", "kick": "👤 | Benutzer @{message.sender.username} hat ein verbotenes Wort verwendet und wurde rausgeworfen. 🛡\n🥰 | Protected by AuroraModules", "mute": "👤 | Benutzer @{message.sender.username} hat ein verbotenes Wort verwendet und wurde für 1 Stunde stummgeschaltet. 🛡\n🥰 | Protected by AuroraModules", "word_removed": "🗑 Verbotenes Wort entfernt: {}", "bw_none": "🤬 Die Liste der verbotenen Wörter ist leer.", "bword_enabled": " Banwords sind in diesem Chat aktiviert.", "bword_disabled": " Banwords sind in diesem Chat deaktiviert.", "action_set": "🛡 Aktion erfolgreich festgelegt: {}", "no_action": " Aktion nicht angegeben, verwenden: kick, mute, delete", "no_word": "💬 Das Wort ist nicht angegeben." } strings_es = { "word_added": "📄 Palabra prohibida añadida con éxito: {}", "kick": "👤 | El usuario @{message.sender.username} utilizó una palabra prohibida y fue expulsado. 🛡\n🥰 | Protegido por AuroraModules", "mute": "👤 | El usuario @{message.sender.username} utilizó una palabra prohibida y fue silenciado por 1 hora. 🛡\n🥰 | Protegido por AuroraModules", "word_removed": "🗑 Palabra prohibida eliminada: {}", "none_bw": "🤬 La lista de palabras prohibidas está vacía.", "bword_enabled": " Las palabras prohibidas están activadas en este chat", "bword_disabled": " Las palabras prohibidas están desactivadas.", "action_set": "🛡 Acción configurada: {}", "no_action": " Acción no especificada. Usa: kick, mute, delete", "no_word": "💬 Palabra no especificada" } def __init__(self): self.config = loader.ModuleConfig( loader.ConfigValue( "BAN_ACTION", "delete", lambda: "Action when finding a forbidden word: kick, mute, delete", ), ) async def watcher(self, message): chat_id = utils.get_chat_id(message) enabled_chats = self.db.get("BanWord", "enabled_chats", []) if str(chat_id) not in enabled_chats: return banned_words = self.db.get("BanWord", "banned_words", []) if any(word in message.text for word in banned_words): action = self.config["BAN_ACTION"] if action == "delete": await message.delete() elif action == "kick": entity = await message.client.get_input_entity(chat_id) await message.client.kick_participant(entity, message.sender_id) await message.respond(f"👤 | User @{message.sender.username} used a banned word and was kicked. 🛡\n🥰\nProtected by @AuroraModules") elif action == "mute": mute_duration = timedelta(hours=1) until_date = message.date + mute_duration entity = await message.client.get_input_entity(chat_id) await message.client.edit_permissions( entity, message.sender_id, until_date=until_date, send_messages=False ) await message.respond(f"👤 | User @{message.sender.username} used a banned word and was muted for 1 hour. 🛡\n🥰\nProtected by @AuroraModules") @loader.command( ru_doc = "Добавляет запрещённое слово.", uz_doc = "Taqiqlangan so'zni qo'shadi.", de_doc = "Fügt ein verbotenes Wort hinzu.", es_doc = "Añade una palabra prohibida.", ) async def bwadd(self, message): """Adds a banned word.""" args = utils.get_args_raw(message) if not args: await utils.answer(message, self.strings["no_word"]) return banned_words = self.db.get("BanWord", "banned_words", []) if args not in banned_words: banned_words.append(args) self.db.set("BanWord", "banned_words", banned_words) await utils.answer(message, self.strings["word_added"].format(args)) @loader.command( ru_doc = "Удаляет запрещённое слово.", uz_doc = "Taqiqlangan so'zni olib tashlaydi.", de_doc = "Entfernt ein verbotenes Wort.", es_doc = "Elimina una palabra prohibida.", ) async def bwdel(self, message): """Removes a banned word.""" args = utils.get_args_raw(message) if not args: await utils.answer(message, self.strings["no_word"]) return banned_words = self.db.get("BanWord", "banned_words", []) if args in banned_words: banned_words.remove(args) self.db.set("BanWord", "banned_words", banned_words) await utils.answer(message, self.strings["word_removed"].format(args)) @loader.command( ru_doc = "Включает банворды в чате.", uz_doc = "Chatda banwordsni yoqadi.", de_doc = "Aktiviert Banwords im Chat.", es_doc = "Activa las palabras prohibidas en el chat.", ) async def bwon(self, message): """Enables banwords in chat.""" chat_id = str(utils.get_chat_id(message)) enabled_chats = self.db.get("BanWord", "enabled_chats", []) if chat_id not in enabled_chats: enabled_chats.append(chat_id) self.db.set("BanWord", "enabled_chats", enabled_chats) await utils.answer(message, self.strings["bword_enabled"]) @loader.command( ru_doc = "Отключает банворды в чате.", uz_doc = "Chatdagi bandwordlarni o'chirib qo'yadi.", de_doc = "Deaktiviert Ban Words im Chat.", es_doc = "Desactiva las palabras prohibidas en el chat.", ) async def bwoff(self, message): """Disable banword in chat.""" chat_id = str(utils.get_chat_id(message)) enabled_chats = self.db.get("BanWord", "enabled_chats", []) if chat_id in enabled_chats: enabled_chats.remove(chat_id) self.db.set("BanWord", "enabled_chats", enabled_chats) await utils.answer(message, self.strings["bword_disabled"]) @loader.command( ru_doc = "Устанавливает действие при нахождении запрещённого слова (kick, mute, delete).", uz_doc = "Taqiqlangan so'z aniqlanganda harakatni o'rnatadi (kick, mute, delete).", de_doc = "Legt die Aktion fest, wenn ein verbotenes Wort gefunden wird (kick, mute, delete).", es_doc = "Establece la acción cuando se encuentra una palabra prohibida (expulsar, silenciar, eliminar).", ) async def bword(self, message): """Sets the action when a prohibited word is found (kick, mute, delete).""" args = utils.get_args_raw(message) if args not in ["kick", "mute", "delete"]: await utils.answer(message, self.strings["no_action"]) return self.config["BAN_ACTION"] = args await utils.answer(message, self.strings["action_set"].format(args)) @loader.command( ru_doc = "Выводит список запрещённых слов.", uz_doc = "Taqiqlangan so'zlar ro'yxatini ko'rsatadi.", de_doc = "Zeigt eine Liste verbotener Wörter an.", es_doc = "Muestra una lista de palabras prohibidas.", ) async def bwlist(self, message): """Displays a list of prohibited words.""" banned_words = self.db.get("BanWord", "banned_words", []) if not banned_words: await utils.answer(message, self.strings["none_bw"]) return word_list = "\n".join(f"• {word}" for word in banned_words) await utils.answer(message, f"💬 Banned Words:\n{word_list}")