Экспортирует пользователей одного или нескольких чатов Telegram и импортирует в другой чат.
- Python 3.x
- Telethon library
-
Устанавливаем зависимости:
pip3 install -r requirements.txt
-
Заходим на my.telegram.org, авторизуемся и получаем:
- API ID
- API Hash
-
Переименовываем пример конфига
config.example.py
вconfig.py
и меняем значения параметров на полученные в п. 2:- api_id
- api_hash
-
Указываем список чатов (без
@
), откуда надо парсить пользователей:export_chats = [ 'chat1_name', 'chat2_name' ]
-
Указываем имя целевого чата (без
@
), куда будут импортированы пользователи:target_chat = 'my_chat_name'
Выставляем права на выполнение:
chmod +x tg-chats-users-import.py config.py
и запускаем
./tg-chats-users-import.py
-
Прокси (MTProxy) — на случай, если у вас заблокирован Телеграм (не заполняйте, если прокси не нужен). Пример:
# по умолчанию: '' proxy_host = 'proxy.digitalresistance.dog' # по умолчанию: 443 proxy_port = 443 # по умолчанию: '00000000000000000000000000000000' proxy_secret = 'd41d8cd98f00b204e9800998ecf8427e'
-
Лимит импорта — максимальное кол-во пользователей, которые будут импортированы (выбираются случайным способом), по умолчанию лимита нет (будут импортированы все):
import_limit = 10
-
Исключить админов — при импорте пользователей по умолчанию администраторы чатов будут исключены:
exclude_admins = True
-
Исключить ботов — при импорте пользователей по умолчанию боты будут исключены:
exclude_bots = True
-
Исключить удаленные аккаунты — после удаления пользователя Telegram удаляет их полностью не сразу, некоторое время аккаунты еще числятся удаленными (помечаются как "Deleted account"), при импорте пользователей такие аккаунты по умолчанию не будут импортированы:
exclude_deleted = True
-
Исключить давно неиспользуемые аккаунты — пользователи, которые не были онлайн указанное кол-во дней или дольше, будут исключены из импорта. По умолчанию: 30 дней. Для того, чтобы импортировать только пользователей, которые были онлайн недавно (Recently), укажите = 0.
exclude_offline_days = 30
-
Черный список — список пользователей (без
@
), которых надо исключить из импорта в любом случае:usernames_blacklist = [ 'username_1', 'username_2' ]
Используется стандартная библиотека logging
.
Для того, чтобы изменить уровень подробности логирования, поменяйте значение параметра (повлияет как на вывод в консоль, так и на файл лога):
log_level = 'INFO' # DEBUG | INFO | WARNING | ERROR | CRITICAL
Нельзя отключить, будет всегда.
-
Путь к логу
Укажите
'.'
— логирование будет в директории скрипта. Можно оставить пустым — логирования в файл не будет.log_path = '' # log_path = '.' или log_path = '/tmp'
-
Имя файла
Оставьте пустым — файл лога будет
tg-chats-users-import.log
(формируется по шаблону<имя_скрипта>.log
). Можно указать кастомное имя файла лога, оно будет дополнено суффиксом.log
.log_name = '' # log_name = 'my_log_name' -> my_log_name.log