/Discord-History-Tracker

Desktop app & browser script that saves Discord chat history into a file, and an offline viewer that displays the file.

Primary LanguageC#MIT LicenseMIT

Welcome

For instructions on how to use Discord History Tracker, visit the official website.

To report an issue or suggestion, first please see the issues page and make sure someone else hasn't already created a similar issue report. If you do find an existing issue, comment on it or add a reaction. Otherwise, either click New Issue, or contact me via email contact@chylex.com or Twitter @chylexmc.

If you are interested in building from source code, continue reading the build instructions below.

This branch is dedicated to the Discord History Tracker desktop app. If you are looking for the older browser-only version, visit the master-browser-only branch.

Build Instructions

Setup

Fork the repository and clone it to your computer (if you've never used git, you can download the GitHub Desktop client to get started quickly).

Folder organization:

  • app/ contains a Visual Studio solution for the desktop app
  • lib/ contains utilities required to build the project
  • web/ contains source code of the official website, which can be used as a template when making your own website

To start editing source code for the desktop app, install the .NET 5 SDK, and then open app/DiscordHistoryTracker.sln in Visual Studio or Rider.

Building

To build a Debug version of the desktop app, there are no additional requirements.

To build a Release version of the desktop app, follow the instructions for your operating system.

Release – Windows (64-bit)

  1. Install Python 3, and ensure the python executable is in your PATH
  2. Install Powershell 5 or newer (on Windows 10, the included version of Powershell should be enough)

The lib/ folder contains an installation of Node and uglify-js, which are used to minify the tracking script. This installation will only work on 64-bit Windows; building on 32-bit Windows is not supported, but you can try.

Run the app/build.bat script, and read the Distribution section below.

Release – Other Operating Systems

  1. Install Python 3, and ensure the python executable exists and launches Python 3
    • On Debian and derivatives, you can install python-is-python3
    • On other distributions, you can create a link manually, for ex. ln -s /usr/bin/python3 /usr/bin/python
    • If you don't want python to mean Python 3, then edit Desktop.csproj and change python to python3
  2. Install Node + npm
  3. Install uglify-js globally (npm install -g uglify-js)
  4. Install the zip package from your repository

Run the app/build.sh script, and read the Distribution section below.

Distribution

The mentioned build scripts will prepare Release builds ready for distribution. Once the script finishes, the app/bin folder will contain self-contained executables for each major operating system, and a portable version that works on all other systems but requires .NET 5 to be installed.

Note that when building on Windows, the generated .zip files for Linux and Mac will not have correct file permissions, so it will not be possible to run them by double-clicking DiscordHistoryTracker. I tried using Python to re-create the archives with correct file permissions, but found that Linux zip tools could not see them. The only working solution is building the Windows + portable version on Windows, and Linux + Mac version on Linux.