Telegram-скрипт на Python для сбора и мониторинга сообщений с использованием библиотеки Telethon.
- ✅ Подключение к Telegram через Telethon
- ✅ Получение списка доступных диалогов (чатов)
- ✅ Сбор последних N сообщений из выбранного чата
- ✅ Автоматическая обработка ошибок и переподключений
- ✅ Логирование всех действий
- ✅ Сохранение сообщений в локальную базу SQLite
- ✅ Обработка дублей сообщений
- ✅ Асинхронный обработчик новых сообщений в реальном времени
- ✅ Вывод логов в консоль
-
Убедитесь, что у вас установлен Python 3.7+
-
Активируйте виртуальное окружение:
# Windows PowerShell .\venv\Scripts\Activate.ps1 # Windows CMD .\venv\Scripts\activate.bat # Linux/Mac source venv/bin/activate
-
Установите зависимости:
pip install -r requirements.txt
-
Получите API credentials на https://my.telegram.org/apps:
- Зайдите на сайт
- Войдите с вашим номером телефона
- Создайте новое приложение
- Скопируйте
api_idиapi_hash
-
Откройте
bot/config.pyи замените значения:API_ID = 12345678 # Ваш api_id API_HASH = 'your_api_hash_here' # Ваш api_hash SESSION_NAME = 'telegram_session' # Имя файла сессии (можно оставить)
Запустите скрипт:
python main.pyПри первом запуске:
- Введите номер телефона (в международном формате, например: +79991234567)
- Введите код подтверждения, который придет в Telegram
- Если у вас включена двухфакторная аутентификация, введите пароль 2FA
После авторизации скрипт:
- Получит список ваших чатов
- Соберет последние 100 сообщений из первого чата
- Запустит live-слушатель новых сообщений
.
├── main.py # Точка входа для запуска Telegram бота
├── gigachat_cli.py # CLI-инструмент для GigaChat (альтернативный запуск)
├── bot/ # GigaChat CLI и Telegram-бот на telebot
│ ├── __init__.py
│ ├── main.py # CLI-приложение для GigaChat
│ ├── main_telebot.py # Telegram-бот, отвечающий через GigaChat
│ ├── gigachat.py # Модуль для работы с GigaChat API
│ └── utils.py # Вспомогательные функции
├── requirements.txt # Зависимости проекта
├── README.md # Документация Telegram бота
├── GIGACHAT_README.md # Документация GigaChat CLI
├── telegram_session.session # Файл сессии (создается автоматически)
├── telegram_messages.db # База данных SQLite (создается автоматически)
└── telegram_bot.log # Файл логов (создается автоматически)
В проекте также доступен CLI-инструмент для генерации выжимок текста через GigaChat API.
Быстрый старт:
python gigachat_cli.py summary --text "Ваш текст"
python gigachat_cli.py summary --file messages.txtПодробная документация: GIGACHAT_README.md
База данных SQLite (telegram_messages.db) содержит таблицу messages:
id- ID сообщения в Telegramchat_id- ID чатаsender- Имя отправителяtext- Текст сообщенияdate- Дата и время сообщения
Дубли сообщений автоматически пропускаются благодаря уникальному ограничению (id, chat_id).
Все действия логируются в:
- Консоль (stdout)
- Файл
telegram_bot.log
Уровни логирования:
- INFO - основная информация
- DEBUG - детальная отладочная информация
- ERROR - ошибки
Для остановки скрипта нажмите Ctrl+C.
- Файл сессии (
telegram_session.session) сохраняется локально, повторная авторизация не требуется - База данных создается автоматически при первом запуске
- Скрипт обрабатывает rate limits Telegram API автоматически
- Поддерживается двухфакторная аутентификация (2FA)