Telegram недавно добавил предупреждение о том, что ваш собеседник пользуется неофициальным мессенджером. Общение с таким человеком может привести к потенциальной утечке переписки.
Но как узнать заранее, с кем стоит общаться, а с кем — нет? Если вы являетесь администратором чата, то вы можете легко проверить его участников на «чистоту» мессенджера.
Для начала работы вам понадобится установить Python для своей операционной системы, создать любого бота через @BotFather и получить для него токен.
Затем откройте терминал и выполните в нём команду:
pip install https://github.com/KurimuzonAkuma/kurigram/archive/dev.zip --force-reinstallТеперь получите данные для подключения по API по этой ссылке https://my.telegram.org/apps. Вам нужны данные из полей App api_id и App api_hash.

Скопируйте скрипт ниже и сохраните его в файл с расширением .py:
import asyncio
from pyrogram.client import Client
from pyrogram import raw
async def main() -> None:
api_id = ???
api_hash = "??"
bot_token = "???"
chat = "???"
print("Скрипт запущен. Подключение к Telegram...")
count_risk = 0
processed = 0
async with Client(
"acc",
bot_token=bot_token,
api_id=api_id,
api_hash=api_hash,
proxy=dict(
scheme="socks5",
hostname="127.0.0.1",
port=1080,
)
) as app:
print("Авторизация прошла успешно.")
# Получаем информацию о чате
chat_info = await app.get_chat(chat)
total_members = getattr(chat_info, "members_count", None)
if total_members is not None:
print(f"Всего участников в чате: {total_members}")
else:
print("Не удалось получить общее количество участников чата.")
print("Начинаю проверку участников...\n")
async for member in app.get_chat_members(chat):
if member.user.is_bot:
continue
processed += 1
name = " ".join(
x for x in [member.user.first_name, member.user.last_name] if x
).strip() or str(member.user.id)
username = f"@{member.user.username}" if member.user.username else "@нет_username"
try:
peer = await app.resolve_peer(member.user.id)
full = await app.invoke(
raw.functions.users.GetFullUser(id=peer)
)
await asyncio.sleep(3)
risk = bool(getattr(full.full_user, "unofficial_security_risk", False))
if risk:
count_risk += 1
print(f"{name} {username}")
except Exception as e:
print(f"Ошибка для {member.user.id} ({name}): {e}")
# Вывод процента проверки
if total_members:
percent = processed / total_members * 100
print(f"Проверено: {processed}/{total_members} ({percent:.1f}%)")
print(f"\nГотово. Найдено не чистых пользователей: {count_risk}")
if __name__ == "__main__":
try:
asyncio.run(main())
except (SystemExit, KeyboardInterrupt):
print("bye")В скрипте вам нужно поправить следующие данные:
- api_id — указать ваш api_id
- api_hash — указать ваш api_hash
- bot_token — указать ваш bot_token
- chat — указать юзернейм чата для парсинга (без @)
- proxy — указать данные для подключения через socks5 Proxy
Теперь просто выполните этот файл через терминал. Если всё сделано правильно, то начнётся парсинг участников.

Если скрипт найдёт участников, которые используют неофициальный мессенджер, он отобразит их имя. Если таких участников нет, то их просто не покажет.