-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathbulkcheck.py
executable file
·179 lines (164 loc) · 6.84 KB
/
bulkcheck.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
# █ █ ▀ █▄▀ ▄▀█ █▀█ ▀
# █▀█ █ █ █ █▀█ █▀▄ █
# © 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": (
"<emoji document_id=5451732530048802485>⏳</emoji> <b>Processing...</b>"
),
"no_pm": (
"<emoji document_id=5312526098750252863>🚫</emoji> <b>This command can be"
" used only in chat</b>"
),
"leaked": (
"<emoji document_id=5465169893580086142>☎️</emoji> <b>Leaked numbers in"
" current chat:</b>\n\n{}"
),
"404": (
"<emoji document_id=5465325710698617730>☹️</emoji> <b>No leaked numbers"
" found here</b>"
),
}
strings_ru = {
"processing": (
"<emoji document_id=5451732530048802485>⏳</emoji> <b>Работаю...</b>"
),
"no_pm": (
"<emoji document_id=5312526098750252863>🚫</emoji> <b>Эту команду нужно"
" выполнять в чате</b>"
),
"leaked": (
"<emoji document_id=5465169893580086142>☎️</emoji> <b>Слитые номера в этом"
" чате:</b>\n\n{}"
),
"404": (
"<emoji document_id=5465325710698617730>☹️</emoji> <b>Тут нет слитых"
" номеров</b>"
),
"_cmd_doc_bulkcheck": "Проверить все участников чата на слитые номера",
"_cls_doc": "Проверяет всех участников чата на слитые номера",
}
strings_de = {
"processing": (
"<emoji document_id=5451732530048802485>⏳</emoji> <b>Verarbeite...</b>"
),
"no_pm": (
"<emoji document_id=5312526098750252863>🚫</emoji> <b>Dieser Befehl"
" kann nur"
" in einem Chat verwendet werden</b>"
),
"leaked": (
"<emoji document_id=5465169893580086142>☎️</emoji> <b>Leaked Nummern in"
" diesem Chat:</b>\n\n{}"
),
"404": (
"<emoji document_id=5465325710698617730>☹️</emoji> <b>Keine leaked Nummern"
" in diesem Chat gefunden</b>"
),
"_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": (
"<emoji document_id=5451732530048802485>⏳</emoji> <b>प्रोसेसिंग...</b>"
),
"no_pm": (
"<emoji document_id=5312526098750252863>🚫</emoji> <b>यह कमांड केवल चैट में"
" उपयोग किया जा सकता है</b>"
),
"leaked": (
"<emoji document_id=5465169893580086142>☎️</emoji> <b>वर्तमान चैट में लीक"
" किए गए नंबर:</b>\n\n{}"
),
"404": (
"<emoji document_id=5465325710698617730>☹️</emoji> <b>यहां कोई लीक किए गए"
" नंबर नहीं मिला</b>"
),
"_cmd_doc_bulkcheck": "चैट के सभी सदस्यों को लीक किए गए नंबरों के लिए जांचें",
"_cls_doc": "चैट के सभी सदस्यों को लीक किए गए नंबरों के लिए जांचता है",
}
strings_uz = {
"processing": (
"<emoji document_id=5451732530048802485>⏳</emoji> <b>Ishlamoqda...</b>"
),
"no_pm": (
"<emoji document_id=5312526098750252863>🚫</emoji> <b>Ushbu buyruq faqat"
" guruhda ishlatilishi mumkin</b>"
),
"leaked": (
"<emoji document_id=5465169893580086142>☎️</emoji> <b>Joriy guruhda"
" chiqarilgan raqamlar:</b>\n\n{}"
),
"404": (
"<emoji document_id=5465325710698617730>☹️</emoji> <b>Bu guruhda"
" chiqarilgan raqamlar topilmadi</b>"
),
"_cmd_doc_bulkcheck": (
"Guruhning barcha a'zolarini chiqarilgan raqamlar uchun tekshirish"
),
"_cls_doc": "Guruhning barcha a'zolarini chiqarilgan raqamlar uchun tekshiradi",
}
strings_tr = {
"processing": (
"<emoji document_id=5451732530048802485>⏳</emoji> <b>İşleniyor...</b>"
),
"no_pm": (
"<emoji document_id=5312526098750252863>🚫</emoji> <b>Bu komut sadece"
" sohbetlerde kullanılabilir</b>"
),
"leaked": (
"<emoji document_id=5465169893580086142>☎️</emoji> <b>Bu sohbetteki sızan"
" numaralar:</b>\n\n{}"
),
"404": (
"<emoji document_id=5465325710698617730>☹️</emoji> <b>Bu sohbette sızan"
" numara bulunamadı</b>"
),
"_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 += [
"<b>▫️ <a"
f' href="tg://user?id={member.id}">{utils.escape_html(get_display_name(member))}</a></b>:'
f" <code>+{result['data']}</code>"
]
await utils.answer(
message,
(
self.strings("leaked").format("\n".join(results))
if results
else self.strings("404")
),
)