craziks-creator / telegram-voice-message-duration-reporter

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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


Languages

Language:Python 62.0%Language:HTML 34.0%Language:Dockerfile 4.0%