ChannelReaderBot — это бот, реализованный с использованием библиотеки Telethon, предназначенный для чтения сообщений в каналах Telegram от имени пользовательских аккаунтов (userbot).
В репозитории представлены два скрипта:
get_updates.py— отслеживает новые сообщения в реальном времени;collect_old_posts.py— собирает старые посты за определённый период.
-
Установите зависимости:
pip install -r requirements.txt
-
Переименуйте файл
config_default.pyвconfig.py. -
Задайте следующие переменные окружения:
TELEGRAM_API_IDTELEGRAM_API_HASHTELEGRAM_ACCOUNT_NAME
-
В
config.pyнастройте:CHANNELS— список каналов для мониторинга;IGNORE_TAGS— теги, по которым сообщения будут игнорироваться;FORWARD_TO_CHAT— ID чата для пересылки сообщений;FORWARD_TO_CHAT_TOPIC— ID топика внутри чата (если используется).
Для получения
api_idиapi_hashнеобходимо зарегистрировать приложение на my.telegram.org.
При первом запуске любого из скриптов Telethon запросит ввод номера телефона и кода подтверждения из Telegram. Если на аккаунте настроен облачный пароль — его также потребуется ввести.
В случае, если после авторизации Telegram автоматически завершает все сессии аккаунта, можно задать нестандартное значение параметра
system_version, например:system_version="4.16.30-vxChannel"
Собирает сообщения за последние N дней из указанных каналов. Период задаётся в config.py, параметр MONTH.
Запуск:
python collect_old_posts.pyРезультат работы — CSV-файл с постами, отправляемый в указанный чат. При необходимости, логику можно адаптировать под собственные задачи.
Отслеживает и обрабатывает новые сообщения в реальном времени из заданных чатов и каналов.
Запуск:
python get_updates.pyСкрипт отправит посты/сообщения в указанный чат. При необходимости, логику можно адаптировать под собственные задачи.
Если команда python отсутствует:
sudo apt install python-is-python3 -yРекомендуется использовать виртуальное окружение:
python -m venv .venv
source .venv/bin/activateЛибо использовать более мощные инструменты, такие как conda, для управления зависимостями и изоляцией окружения.