Небольшой сборщик сообщений для MTProto (Telethon), который раз в час:
- проверяет валидность сессии (healthcheck),
- читает список каналов из
channels.txt, - для новых каналов делает полный импорт (только текст),
- для известных — инкремент (догружает только новые),
- складывает записи в таблицу
messages(MySQL или локально SQLite).
Сохраняем строго текст сообщения — медиа не скачиваем.
Логи пишутся вlog.txtи вjournalctl(если запущено через systemd).
- Надёжные проходы (батчи, идемпотентные
INSERT-ы). - Фильтр «пустых» и коротких сообщений (
< 10символов) — не сохраняем мусор/удалёнки. - Полезные утилиты: healthcheck, QR-логин, статистика по тексту/видео.
PRIMARY KEY (channel_id, message_id)— быстрые вставки и инкременты.channel_id— BIGINT,message_id— INT,added/edited— UTCDATETIME,data— TEXT (только текст).- Ежечасный однопроходный сервис (
src/run_once.py), планирование — через systemd timer.
- Python 3.10+
- MySQL 8+ / SQLite (локально)
- Telegram API:
TG_API_ID,TG_API_HASH, StringSession
git clone https://github.com/<ваш-юзер>/tg-harvester.git
cd tg-harvester
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt