Автоматически помечает чаты в указанной папке Telegram как прочитанные.
Запускается локально или деплоится в Yandex Cloud Functions.
- Авторизуется в Telegram через StringSession (без интерактивного входа).
- Находит папку с заданным именем (
TELEGRAM_READ_FOLDER_NAME). - Проходит по всем чатам в папке и помечает их прочитанными — включая чаты с ручной меткой непрочитанного.
python3.12 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtcp .env.template .envОтредактируйте .env:
| Переменная | Описание |
|---|---|
TELEGRAM_API_ID |
Получить на my.telegram.org → API development tools |
TELEGRAM_API_HASH |
Там же |
TELEGRAM_STRING_SESSION |
Строковая сессия Telethon (см. ниже) |
TELEGRAM_READ_FOLDER_NAME |
Имя папки Telegram, чаты в которой нужно читать |
PYTHONPATH=. python telegram/auth.pyЗапустите один раз — скрипт попросит номер телефона и код из SMS, затем выведет строку сессии. Сохраните её в .env.
make read-dialogsmake package-yandexСоздаётся файл telegram_read_dialogs.zip.
- Откройте функцию в консоли Yandex Cloud → Редактировать
- Метод: Zip-архив → загрузите
telegram_read_dialogs.zip - Точка входа:
handler_read_dialog.handler - Runtime:
python312 - Задайте переменные окружения:
TELEGRAM_API_ID,TELEGRAM_API_HASH,TELEGRAM_STRING_SESSION,TELEGRAM_READ_FOLDER_NAME
Совет: настройте триггер по расписанию (Cron), чтобы функция запускалась автоматически.
telegram/
auth.py — генерирует StringSession (запускается один раз)
read_dialogs.py — основная логика
settings.py — конфигурация из переменных окружения
lamda/yandex/
handler_read_dialog.py — обёртка для Yandex Cloud Functions
- Telethon — неофициальный Python-клиент Telegram MTProto API
- python-dotenv — загрузка
.env