Есть у меня друг-наркоман. Принимает дозу соц. сетей внутриглазно каждую секунду, пока не спит или работает.
😷 Кого лечим
Симптомы поциэнта:
- "Это по работе"
- "Да не сижу я в соц. сетях так часто"
- "Нет времени" в ответ на "Давай чет делать"
- "Я стал сидеть реже, чем раньше" (заменив одну сеть на другую)
- "И вообще вы все врети, статистика не верна"
Конечно, вылечить такого пациента указанием ему на проблему невозможно, но моя жопа горела вместо его, когда я видел как уходит его жизнь и все же решил показать наглядно, как это выглядит.
🍴 Инструментарий
- Python 3 + telegram-tracker на GitHub для сбора данных
- Желательно Linux, хотя Windows тоже подойдет. на винде команды вводить в cmd.exe, а лучше в PowerShell
- СмекалОчка или знание какого-то языка программирования, чтобы превратить полученные данные в .csv формат. Если вы хотите сделать график, конечно. График не нужен? Тогда ладно
- Google Data Studio (инфо) для визуализации (бэзплатно!1)
🪣 Сбор данных
Установка "скрипта-шпиона"
# Копируем репозиторий для отслеживания и входим в скачанную папку
git clone https://github.com/gentoo-root/telegram-tracker.git && cd telegram-tracker
# Установка зависимости telethon
pip3 install --user telethon
Запуск
В папке settings создаем файл keys.py и вставляем в него
API_ID = 123456
API_HASH = '1234567890abcdef1234567890abcdef'
Замените значения на данные отсюда (нужно создать приложение. Настройки вроде не имеют значения)
В скачанной папке выполняем
python3 -m track '+380991234567'
Вас попросит ввести еще свой номер, код подтверждения из Telegram и пароль двухфакторной аутенфикации (если включена). Я параноик, поэтому делал все с фейкового аккаунта.
No module named track
значит вы выполняете python3 -m track не в папке с модулем. Перейдите к ней через cd путь_к_папке
Если появилась ошибка No module named 'telethon'
, значит вместо pip3 попробуйте написать pip (без 3) в разделе установки
Ошибка The api\_id/api\_hash combination is invalid (caused by SendCodeRequest)
говорит о том, что данные в settings.py указаны неправильно
Ошибка ValueError: Cannot find any entity corresponding to "номер телефона"
говорит, что по номеру телефона не получилось найти отслеживаемый контакт. Тогда вместо телефона вводите TELEGRAM ЛОГИН.
Теперь ждем денек-второй, пока данные наберутся. Выглядеть будут как-то так:
~2020-12-21 @ 06:50:07: User went online.
=2020-12-21 @ 06:50:21: User went offline.
=2020-12-21 @ 06:51:48: User went offline after being online for short time.
🪄 Превращение в csv
Короче, тут нужен кодераст, чтобы написать конвертер этих логов с человеческого языка в формат бездушной машины. Если эта статья кому-то нужна, пните меня по контактным данным и я напишу для вас код или скиньте свой, я добавлю сюда
Я гавнокодер и написал свой конвертер на модифицированном Lua прямо внутри одной игры, так что он будет тебе мало чем полезен, но держи:
чем воняет?
Выглядеть сформированный лог будет вот так:
📊 Визуализация
Заходим на сайт GDS, создаем новый отчет, выбираем источник данных "Загрузка файла", заливаем наш csv файл
Дальше добавляем диаграммы
Настраиваем