// Telegram Automation Suite

Збираємо.
Запрошуємо.
Продаємо.

Повністю асинхронна система на Telethon для збору аудиторії, масового інвайтингу, розсилки по чатах та управління продажами — все через єдиний Telegram-бот.

tg_harvester — parser.py
7
режимів парсингу
11
Python-модулів
акаунтів паралельно
SQLite
+ JSON персистентність
// Architecture

Що всередині

Проект побудовано на шарах: ядро Telethon → бізнес-логіка → Telegram-бот як інтерфейс. Кожен модуль незалежний і може використовуватись окремо.

🕷️
parser.py
Ядро парсера
7 режимів збору: учасники, активні, коментатори, реакції, discussion, з фільтрами та дедуплікацією
📡
telegram_core.py
Telethon Core
Управління сесіями акаунтів, авторизація, підключення з підтримкою SOCKS5 проксі
🤖
bot.py
Telegram Bot
Aiogram-інтерфейс для всіх операцій: парсинг, інвайтинг, розсилка, менеджери
📨
inviter.py
Інвайтер
Round-robin розподіл між акаунтами, retry з backoff, PeerFlood перерозподіл
💬
chat_blaster.py
Chat Blaster
Масова розсилка по групах з авто-вступом, ротацією акаунтів та перевіркою модерації
🗄️
db.py
SQLite DB
6 таблиць: users, chats, blast_sessions, blast_messages, promo_codes, sales
// Core Modules

Модулі системи

Кожен модуль виконує одну задачу і має зовнішній callback-інтерфейс для live-логів у Telegram.

Парсинг
Parser
parser.py / class Parser
7 режимів збору аудиторії
  • Режим 1 — GetParticipants: прямий список учасників групи (до 200 за запит)
  • Режим 2 — Активні по повідомленнях: сканує GetHistory, вибирає хто писав за N днів
  • Режим 4 — Коментатори під постами: обходить дискусії під кожним постом
  • Режим 6 — Реакції: витягує хто поставив реакцію на пости
  • Режим 7 — Discussion-чати: учасники linked-каналів обговорення
  • Комбінація режимів через кому: "1,4,6"
  • Фільтри: без ботів, без deleted, тільки з username/phone, тільки premium
  • Дедуплікація по user_id між каналами та режимами
  • Збереження в JSON / CSV / TXT одночасно
  • Phone enrichment: AddContact → читати номер → DeleteContact
Інвайтинг
Inviter
inviter.py / class Inviter
Масове запрошення з ротацією акаунтів
  • Round-robin розподіл юзерів між кількома акаунтами рівномірно
  • Підтримка Channel і Chat (InviteToChannelRequest / AddChatUserRequest)
  • Опціональне додавання в контакти перед інвайтом (для обходу обмежень)
  • PeerFlood detection: авто-перерозподіл хвоста на інші акаунти
  • Retry з exponential backoff (MAX_RETRIES=2, BASE_BACKOFF=5с)
  • Обробка 10+ типів Telegram-помилок: privacy, kicked, too_many_channels...
  • Live-логи через callback прямо в Telegram-бот
  • Статистика: ok / failed / skipped на виході
Розсилка
ChatBlaster
chat_blaster.py / class ChatBlaster
Розсилка по публічних і приватних чатах
  • Авто-вступ перед відправкою (JoinChannelRequest / ImportChatInviteRequest)
  • Підтримка приватних посилань t.me/+hash
  • Надсилання тексту або медіа з підписом
  • Кнопка (текст + URL) вставляється прямо в повідомлення для юзерботів
  • Шаблонізація {name} — підставляє ім'я з окремого списку
  • Ротація акаунтів між чатами
  • Перевірка видалення: check_messages перевіряє чи модератори видалили повідомлення
  • Всі результати зберігаються в БД (blast_sessions + blast_messages)
Продажі
PromotionManager
promotions.py / class PromotionManager
Промокоди, менеджери, трекінг продажів
  • Генерація унікальних промокодів (6 символів, A-Z + 0-9)
  • Кожен менеджер отримує персональний промокод
  • Валідація: перевірка терміну дії + активності менеджера
  • Запис продажів: сума, клієнт, дата, прив'язка до менеджера
  • Звіти: по менеджерам, за датами, загальна виручка
  • Скидання статистики продажів без видалення менеджера
Звіти
Reports
reports.py
Генерація TXT-звітів для відправки в бот
  • Звіт по розсилці: статус кожного чату, sent / deleted / error
  • Детальна таблиця видалених: час відправки, перевірки, скільки протрималось
  • Звіт по продажах: по конкретному менеджеру або по всім
  • Файли зберігаються в data/reports/ і надсилаються як документ
// Workflow

Типовий сценарій

Від нуля до відправленого повідомлення цільовій аудиторії — 5 кроків через бот.

01
Додати акаунти
Авторизувати Telegram-юзерботи через telegram_core
02
Парсинг
Вибрати канали, режим, фільтри → отримати CSV/JSON
03
Інвайтинг
Завантажити список → розподілити по акаунтах → запросити в групу
04
Розсилка
Скласти повідомлення → розіслати по чатах → перевірити модерацію
05
Аналітика
Звіти по розсилці, продажах менеджерів, промокодах
// Tech Stack

Технології

Мінімум залежностей, максимум контролю. Вся асинхронність через asyncio, без зайвих абстракцій.

🐍
Python 3.11+
Основна мова, type hints, dataclasses
Telethon
MTProto клієнт, повний API Telegram
🤖
Aiogram
Bot API фреймворк, FSM, хендлери
🗄️
SQLite + WAL
Персистентність, 6 таблиць, row_factory
🔄
asyncio
Паралельне підключення акаунтів
🌐
PySocks
SOCKS5 проксі для акаунтів
📁
JSON / CSV
Експорт результатів парсингу
🛡️
FloodWait Handler
Авто-пауза при rate limit від Telegram