О проекте
Локальный скрипт для анализа Telegram-чатов. Работает с JSON-экспортом из Telegram Desktop — интернет не нужен, токены не требуются. Считает статистику, строит графики и генерит красивый тёмный HTML-отчёт.
Зачем я его сделал
Мне стало интересно, что происходит в чатах, где я сижу. Кто пишет больше всех, в какое время, какие слова использует. Написал скрипт — и получил кучу инсайтов.
Что умеет
- Общая статистика: всего сообщений, текста, медиа, средняя длина
- Медиа по категориям: фото, стикеры, голосовые, кружочки, гифки
- Топ-5 самых активных участников (флудеров)
- Почасовой график активности за сутки
- Раскладка по дням недели
- Топ-10 частых слов (со стоп-листом предлогов и союзов)
- Тёмный HTML-отчёт со всеми графиками
Как работает
Заходишь в Telegram Desktop → нужный чат → Экспорт истории → выбираешь JSON. Кидаешь result.json в папку со скриптом, запускаешь python chat_analytics.py. Скрипт парсит данные и создаёт chat_report.html.
Фрагмент кода
# Топ-5 самых активных участников
def get_top_users(messages, top_n=5):
counter = {}
for msg in messages:
if msg.get("from"):
name = msg["from"]
counter[name] = counter.get(name, 0) + 1
sorted_users = sorted(counter.items(), key=lambda x: x[1], reverse=True)
return sorted_users[:top_n]
Ссылки