Telegram message counter
- Python 100%
| main.py | ||
| README.md | ||
📊 Telegram Group Statistics Bot
Легковесный бот для отслеживания активности участников в Telegram-группе. Считает сообщения в реальном времени, хранит статистику в SQLite и формирует рейтинги самых активных пользователей за сутки, неделю и месяц.
✨ Возможности
- 📈 Живой подсчёт: автоматически фиксирует каждое новое сообщение в целевой группе.
- 🏆 Рейтинги: команда
/topвыводит топ-10 активных за 24 часа, 7 дней и 30 дней. - 🔄 Пересчёт истории: админская команда
/rescanочищает базу и сканирует последние 30 дней сообщений. - 🗑 Очистка:
/clearдля полного сброса статистики. - ⚡ Оптимизация: пакетная вставка в БД, защита от лимитов Telegram API (
FloodWait), асинхронная работа. - 🔒 Доступ: чувствительные команды защищены проверкой
ADMIN_IDS.
📋 Требования
- Python 3.8+
aiogram3.x- SQLite3 (входит в стандартную библиотеку Python)
- Бот должен иметь право чтения сообщений.
🛠 Установка и запуск
- Клонируйте репозиторий или скачайте файл
main.py:git clone <URL_РЕПОЗИТОРИЯ> cd <НАЗВАНИЕ_ПАПКИ> - Установите зависимости:
pip install aiogram - Отредактируйте настройки в начале файла
main.py(см. раздел ⚙️ Конфигурация). - Запустите бота:
python main.py
⚙️ Конфигурация
В начале файла main.py найдите блок !!! НАСТРОЙКИ !!! и укажите свои данные:
| Параметр | Описание | Пример |
|---|---|---|
BOT_TOKEN |
Токен вашего бота от @BotFather | "123456:ABC-DEF1234..." |
TARGET_GROUP_ID |
ID группы для мониторинга | -1002643154443 |
ADMIN_IDS |
Список ID администраторов (только они могут использовать /rescan и /clear) |
[5597863868] |
💡 Как получить ID группы? Отправьте сообщение группе, затем перешлите его боту @userinfobot или используйте @RawDataBot.
💬 Команды
| Команда | Описание | Доступ |
|---|---|---|
/start |
Приветствие и справка | Все |
/top |
Топ активных (24ч / 7д / 30д) | Все |
/clear |
Полная очистка базы данных | Только админы |
/rescan |
Сканирование истории за 30 дней и перезапись БД (не работает) | Только админы |
💾 База данных
- Бот автоматически создаёт файл
chat_stats.dbпри первом запуске. - Структура: таблица
messages(user_id,user_name,message_date). - Данные сохраняются пакетно по 500 записей для повышения производительности.