From 69ad9cf123235c67488f1c08c826b3844213543c Mon Sep 17 00:00:00 2001 From: gilfanovr Date: Sun, 18 Oct 2026 21:22:09 +0300 Subject: [PATCH] =?UTF-8?q?rpi:=20tg=5Fbios.py=20=E2=80=94=20=D0=BB=D0=B8?= =?UTF-8?q?=D1=87=D0=BD=D1=8B=D0=B5=20=D0=BA=D0=B0=D0=BD=D0=B0=D0=BB=D1=8B?= =?UTF-8?q?=20=D1=83=D1=87=D0=B0=D1=81=D1=82=D0=BD=D0=B8=D0=BA=D0=BE=D0=B2?= =?UTF-8?q?;=20FloodWait=20ResolveUsername=20~22=20=D1=87=20=E2=80=94=20?= =?UTF-8?q?=D1=80=D0=B0=D0=B7=D0=BC=D0=B5=D1=80=D1=8B=20=D1=81=20t.me?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- stacks/rpi-tg-export/README.md | 6 ++ stacks/rpi-tg-export/app/tg_bios.py | 106 ++++++++++++++++++++++++++++ 2 files changed, 112 insertions(+) create mode 100644 stacks/rpi-tg-export/app/tg_bios.py diff --git a/stacks/rpi-tg-export/README.md b/stacks/rpi-tg-export/README.md index 71b19ce..2c98983 100644 --- a/stacks/rpi-tg-export/README.md +++ b/stacks/rpi-tg-export/README.md @@ -67,3 +67,9 @@ sudo systemctl enable --now tg-export.timer с `tg-export.service` — одна сессия): `/mnt/backup/tg/members/_<название>/members.{json,csv}` + `avatars/.jpg` (маленькие). Персональные данные участников — в поиск/индекс не идут. 2026-10-18: CY Fast Track Talks — 2774 из 2774, аватарок 1619. Разовая выгрузка, не по таймеру. +- **Личные каналы участников** — `app/tg_bios.py`: bio и «личный канал» каждого участника (GetFullUser, ~1 запрос/с — + 2765 профилей за ~55 мин без ограничений) → `bios.json`. 2026-10-18 CY Fast Track Talks: личный канал у 145 из 2765, + топ — `top-personal-channels.txt` в папке участников. ⚠️ Второй шаг скрипта (размер каждой ссылки через + `get_entity` = ResolveUsername) после ~190 запросов получил **FloodWait 77 545 с (~22 ч)** — остановлен; размеры + публичных каналов взяты со страниц `t.me/` (без сессии). Массово резолвить username через API нельзя — + брать `t.me`-страницы или `full.chats` из GetFullUser. diff --git a/stacks/rpi-tg-export/app/tg_bios.py b/stacks/rpi-tg-export/app/tg_bios.py new file mode 100644 index 0000000..ad426cd --- /dev/null +++ b/stacks/rpi-tg-export/app/tg_bios.py @@ -0,0 +1,106 @@ +#!/usr/bin/env python3 +"""Ссылки на группы/каналы в профилях участников (владелец 2026-10-18): по members.json группы — bio и «личный канал» +каждого участника (GetFullUser, ~1 запрос/с), затем размер каждой найденной группы/канала → топ по участникам. + + sudo -u tgexport sh -c '. /etc/tg-export/env; /opt/tg-export/venv/bin/python /opt/tg-export/tg_bios.py <папка members>' + +Результат в той же папке: bios.json (id → bio, личный канал; докачка с места остановки), links.json (группа/канал → +кто ссылается, размер), top.txt. ⚠️ Не параллельно с tg-export.service (одна сессия). +""" +import asyncio +import json +import os +import re +import sys +from pathlib import Path + +from telethon import TelegramClient, errors +from telethon.tl.functions.channels import GetFullChannelRequest +from telethon.tl.functions.users import GetFullUserRequest + +LINK = re.compile(r"(?:https?://)?(?:t\.me|telegram\.me)/(?:s/)?([A-Za-z][\w]{3,31})(?![\w/])|(?