Skip to content

Reads Telegram conversations and creates a CSV report on total duration of voice messages per user per day

Notifications You must be signed in to change notification settings

chris-kobrzak/telegram-voice-message-duration-reporter

Repository files navigation

telegram-voice-message-duration-reporter

Reads Telegram conversations exported to JSON and builds a CSV file with a report on total duration of voice messages on a per user per day basis.

Why?

This is a real-world project. The requirement is to be able to produce visual graph reports of students' engagement measured by the length of voice messages they exchange with their tutors over the Telegram app.

Prerequisites

  • Python 3
  • Telegram Desktop

Usage

As standalone script

  1. Export conversations in the JSON format with Telegram Desktop

  2. Put the exported result.json file and the reporter.py script in the same directory

  3. On Windows simply double click reporter.py. On Unix systems open a terminal and run

    ./reporter.py
  4. This will generate a CSV file in the same directory with the following name pattern: report.<timestamp>.csv.

Sample report

Sample report screengrab

As local server

One time setup:

python3 -m venv virtual_env
. virtual_env/bin/activate
pip install -r requirements.txt

Run the server:

python app/main.py

Open http://localhost:5000 and upload result.json.

As Docker cointainer

docker build -t telegram-voice-message-duration-reporter:latest .
docker run -d -p 5000:5000 telegram-voice-message-duration-reporter:latest

Open http://localhost:5000 and upload result.json.

About

Reads Telegram conversations and creates a CSV report on total duration of voice messages per user per day

Topics

Resources

Stars

Watchers

Forks