# █ █ ▀ █▄▀ ▄▀█ █▀█ ▀ # █▀█ █ █ █ █▀█ █▀▄ █ # © Copyright 2022 # https://t.me/hikariatama # # 🔒 Licensed under the GNU AGPLv3 # 🌐 https://www.gnu.org/licenses/agpl-3.0.html # meta pic: https://static.dan.tatar/bulkcheck_icon.png # meta banner: https://mods.hikariatama.ru/badges/bulkcheck.jpg # meta developer: @hikarimods # scope: hikka_only # scope: hikka_min 1.2.10 # requires: requests import requests from telethon.tl.types import Message from telethon.utils import get_display_name from .. import loader, utils @loader.tds class BulkCheckMod(loader.Module): """Check all members of chat for leaked numbers""" strings = { "name": "BulkCheck", "processing": ( " Processing..." ), "no_pm": ( "🚫 This command can be" " used only in chat" ), "leaked": ( "☎️ Leaked numbers in" " current chat:\n\n{}" ), "404": ( "☹️ No leaked numbers" " found here" ), } strings_ru = { "processing": ( " Работаю..." ), "no_pm": ( "🚫 Эту команду нужно" " выполнять в чате" ), "leaked": ( "☎️ Слитые номера в этом" " чате:\n\n{}" ), "404": ( "☹️ Тут нет слитых" " номеров" ), "_cmd_doc_bulkcheck": "Проверить все участников чата на слитые номера", "_cls_doc": "Проверяет всех участников чата на слитые номера", } strings_de = { "processing": ( " Verarbeite..." ), "no_pm": ( "🚫 Dieser Befehl" " kann nur" " in einem Chat verwendet werden" ), "leaked": ( "☎️ Leaked Nummern in" " diesem Chat:\n\n{}" ), "404": ( "☹️ Keine leaked Nummern" " in diesem Chat gefunden" ), "_cmd_doc_bulkcheck": "Überprüfe alle Mitglieder des Chats auf leaked Nummern", "_cls_doc": "Überprüft alle Mitglieder des Chats auf leaked Nummern", } strings_hi = { "processing": ( " प्रोसेसिंग..." ), "no_pm": ( "🚫 यह कमांड केवल चैट में" " उपयोग किया जा सकता है" ), "leaked": ( "☎️ वर्तमान चैट में लीक" " किए गए नंबर:\n\n{}" ), "404": ( "☹️ यहां कोई लीक किए गए" " नंबर नहीं मिला" ), "_cmd_doc_bulkcheck": "चैट के सभी सदस्यों को लीक किए गए नंबरों के लिए जांचें", "_cls_doc": "चैट के सभी सदस्यों को लीक किए गए नंबरों के लिए जांचता है", } strings_uz = { "processing": ( " Ishlamoqda..." ), "no_pm": ( "🚫 Ushbu buyruq faqat" " guruhda ishlatilishi mumkin" ), "leaked": ( "☎️ Joriy guruhda" " chiqarilgan raqamlar:\n\n{}" ), "404": ( "☹️ Bu guruhda" " chiqarilgan raqamlar topilmadi" ), "_cmd_doc_bulkcheck": ( "Guruhning barcha a'zolarini chiqarilgan raqamlar uchun tekshirish" ), "_cls_doc": "Guruhning barcha a'zolarini chiqarilgan raqamlar uchun tekshiradi", } strings_tr = { "processing": ( " İşleniyor..." ), "no_pm": ( "🚫 Bu komut sadece" " sohbetlerde kullanılabilir" ), "leaked": ( "☎️ Bu sohbetteki sızan" " numaralar:\n\n{}" ), "404": ( "☹️ Bu sohbette sızan" " numara bulunamadı" ), "_cmd_doc_bulkcheck": "Sohbetteki tüm üyeleri sızan numaralar için kontrol et", "_cls_doc": "Sohbetteki tüm üyeleri sızan numaralar için kontrol eder", } async def bcheckcmd(self, message: Message): """Bulk check using Murix database""" if message.is_private: await utils.answer(message, self.strings("no_pm")) return message = await utils.answer(message, self.strings("processing")) results = [] async for member in self._client.iter_participants(message.peer_id): result = ( await utils.run_sync( requests.get, f"http://api.murix.ru/eye?uid={member.id}&v=1.2", ) ).json() if result["data"] != "NOT_FOUND": results += [ "▫️ {utils.escape_html(get_display_name(member))}:' f" +{result['data']}" ] await utils.answer( message, ( self.strings("leaked").format("\n".join(results)) if results else self.strings("404") ), )