e484bd6704c9ed886d69bc58ed5c948b0cb6857f
- Check plot() return values before accessing first element - Handle cases where matplotlib returns None or empty results - Fix total errors calculation in amounts graph - Update both amounts and ratios graphs consistently - Prevent 'cannot unpack none-iteralLine2D Object' error
slskd Transfer Statistics
A GUI tool to analyze upload and download statistics from your slskd transfers database.
Features
- Analyzes uploads and downloads stored in the transfers.db database(s)
- Automatically finds and combines data from multiple database files
- Backwards compatible with both old and new database formats
- Calculates total transfers, data transferred, and unique users
- Shows average transfer speed and duration
- Lists top users by data transferred
- Shows statistics by file type
- Filter statistics by time period (All time, Last month, Last year)
- User-friendly graphical interface with summary and detailed tables
Requirements
- Python 3.6+
- SQLite3
- PyQt5
- matplotlib
- mplcursors
Installation
- Clone or download this repository to your local machine
- Install dependencies:
pip3 install PyQt5 matplotlib mplcursors - Place your
transfers.dbfile in the same directory as the script, or use the file browser to select database files
Usage
# Launch the GUI application
python3 slskd_stats_gui.py
With the GUI, you can:
- Select one or more database files using the file browser
- Choose time period from dropdown (All time, Last month, Last year)
- Set the number of top entries to display
- View upload and download statistics side-by-side
- See summary statistics and detailed tables for users and file types
- NEW: Visual time series graphs showing transfer trends over time
Example Output
The GUI displays:
- Summary sections showing total transfers, data transferred, unique users, average speeds, and error rates
- Top Users tables showing users ranked by data transferred
- Top File Types tables showing file extensions ranked by data transferred
- Visual Stats tab with interactive time series graphs:
- Transfer amounts over time (uploads, downloads, errors, new users)
- Transfer ratios over time (speeds, error rates) with dynamic y-axes
- Interactive hover tooltips showing exact values and dates
Database Compatibility
This tool automatically detects and works with both:
- Old format: Text-based
Statecolumn - New format: Integer
State+StateDescriptioncolumns
About
This tool is designed to work with the transfers.db SQLite database created by slskd, a Soulseek client daemon. It helps you understand your sharing patterns and track transfer statistics.
License
MIT
Description
This tool is designed to work with the
transfers.db SQLite database created by slskd, a Soulseek client daemon.
Languages
Python
100%