В данном репозитории содержится код телеграм бота Tg-analytics Bot, который по ссылке по заданному телеграм каналу выдает занимательную статистику. Бот написан с использованием Telegram Bot API(библиотека pyTelegramBotApi) и Telegram Client API(библиотека Telethon).
Чтобы использовать написанный здесь код локально, установите все необходимые пакеты
pip install -r requirements.txt
Используйте свои api_id
и api_hash
(их можно получить по ссылке), а также token
(уникальный токен вашего бота, получить можно здесь) в json
файле secret_data.json
. А затем запускайте код с помощью команды
python main.py
Умеет выдавать 3 вида статистики по заданному каналу:
- Статистика по постам -- выдает графики динамики постов за все время, по дням и по часам.
- Статистика по просмотрам -- выдает графики динамики просмотров за все время, по дням и по часам, а также выдает самый популярный пост в этом канале (по просмотрам) и сообщает о среднем количестве просмотров приходящих на один пост
- Статистика по тексту -- выдает облако слов, диаграмму наиболее встречаемых слов, биграм (сочетание 2-х слов) и триграм (сочетание 3-х слов).
А также Бот умеет работать на 2-х языках: русский и английский.
Код был устроен следующим образом:
- Каждому пользователю в соответствие ставился объект класса
Analyzer
, который выполнял всю работу по обработке данных. Информация о пользоателях хранилась с помощьюshelve
(а вся работа сshelve
происходило с помощью классаShelver
). - В модуле
ChannelDataCollector
объект классаDataCollector
принимал нужныеapi_id
иapi_hash
, и по заданной ссылке собирал данные по всему каналу и сохранял в отдельномcsv
файле. - После того как данные собраны с помощью
DataCollector
,Analyzer
их считывает и уже может приступать к запросам пользователя.