mirror of
https://github.com/Tyrrrz/DiscordChatExporter.git
synced 2025-06-02 15:49:49 -04:00
Make the GUI x-platform and adapt the CI/CD pipeline to accommodate that (#1222)
This commit is contained in:
parent
b9c1c47474
commit
8525917a4c
20 changed files with 115 additions and 229 deletions
|
@ -10,7 +10,7 @@ Docker distribution of DiscordChatExporter provides a way to run the app in a vi
|
||||||
This will download the [Docker image from the registry](https://hub.docker.com/r/tyrrrz/discordchatexporter) to your computer. You can run this command again to update when a new version is released.
|
This will download the [Docker image from the registry](https://hub.docker.com/r/tyrrrz/discordchatexporter) to your computer. You can run this command again to update when a new version is released.
|
||||||
|
|
||||||
```console
|
```console
|
||||||
docker pull tyrrrz/discordchatexporter:stable
|
$ docker pull tyrrrz/discordchatexporter:stable
|
||||||
```
|
```
|
||||||
|
|
||||||
Note the `:stable` tag. DiscordChatExporter images are tagged according to the following patterns:
|
Note the `:stable` tag. DiscordChatExporter images are tagged according to the following patterns:
|
||||||
|
@ -26,19 +26,19 @@ You can see all available tags [here](https://hub.docker.com/r/tyrrrz/discordcha
|
||||||
To run the CLI in Docker and render help text:
|
To run the CLI in Docker and render help text:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
docker run --rm tyrrrz/discordchatexporter:stable
|
$ docker run --rm tyrrrz/discordchatexporter:stable
|
||||||
```
|
```
|
||||||
|
|
||||||
To export a channel:
|
To export a channel:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
docker run --rm -v /path/on/machine:/out tyrrrz/discordchatexporter:stable export -t TOKEN -c CHANNELID
|
$ docker run --rm -v /path/on/machine:/out tyrrrz/discordchatexporter:stable export -t TOKEN -c CHANNELID
|
||||||
```
|
```
|
||||||
|
|
||||||
If you want colored output and real-time progress reporting, pass the `-it` (interactive + pseudo-terminal) option:
|
If you want colored output and real-time progress reporting, pass the `-it` (interactive + pseudo-terminal) option:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
docker run --rm -it -v /path/on/machine:/out tyrrrz/discordchatexporter:stable export -t TOKEN -c CHANNELID
|
$ docker run --rm -it -v /path/on/machine:/out tyrrrz/discordchatexporter:stable export -t TOKEN -c CHANNELID
|
||||||
```
|
```
|
||||||
|
|
||||||
The `-v /path/on/machine:/out` option instructs Docker to bind the `/out` directory inside the container to a path on your host machine. Replace `/path/on/machine` with the directory you want the files to be saved at.
|
The `-v /path/on/machine:/out` option instructs Docker to bind the `/out` directory inside the container to a path on your host machine. Replace `/path/on/machine` with the directory you want the files to be saved at.
|
||||||
|
@ -47,7 +47,7 @@ The `-v /path/on/machine:/out` option instructs Docker to bind the `/out` direct
|
||||||
> If you are running SELinux, you will need to add the `:z` option after `/out`, e.g.:
|
> If you are running SELinux, you will need to add the `:z` option after `/out`, e.g.:
|
||||||
>
|
>
|
||||||
> ```console
|
> ```console
|
||||||
> docker run --rm -v /path/on/machine:/out:z tyrrrz/discordchatexporter:stable export -t TOKEN -c CHANNELID
|
> $ docker run --rm -v /path/on/machine:/out:z tyrrrz/discordchatexporter:stable export -t TOKEN -c CHANNELID
|
||||||
> ```
|
> ```
|
||||||
>
|
>
|
||||||
> For more information, refer to the [Docker docs SELinux labels for bind mounts page](https://docs.docker.com/storage/bind-mounts/#configure-the-selinux-label).
|
> For more information, refer to the [Docker docs SELinux labels for bind mounts page](https://docs.docker.com/storage/bind-mounts/#configure-the-selinux-label).
|
||||||
|
@ -68,8 +68,8 @@ This image was designed with a user running as uid:gid of 1000:1000.
|
||||||
If your current user has different IDs, and you want to generate files directly editable for your user, you might want to run the container like this:
|
If your current user has different IDs, and you want to generate files directly editable for your user, you might want to run the container like this:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
mkdir data # or chown -R $(id -u):$(id -g) data
|
$ mkdir data # or chown -R $(id -u):$(id -g) data
|
||||||
docker run -it --rm -v $PWD/data:/out --user $(id -u):$(id -g) tyrrrz/discordchatexporter:stable export -t TOKEN -g CHANNELID
|
$ docker run -it --rm -v $PWD/data:/out --user $(id -u):$(id -g) tyrrrz/discordchatexporter:stable export -t TOKEN -g CHANNELID
|
||||||
```
|
```
|
||||||
|
|
||||||
## Environment variables
|
## Environment variables
|
||||||
|
|
|
@ -43,12 +43,8 @@ For other distros, please check the _'Install on Linux'_ menu on the left of [th
|
||||||
You can check which version of **.NET Runtime** is installed by running the following command in a terminal:
|
You can check which version of **.NET Runtime** is installed by running the following command in a terminal:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
dotnet --info
|
$ dotnet --info
|
||||||
```
|
|
||||||
|
|
||||||
If the **.NET Runtime** is correctly installed, the command will output something similar to the following:
|
|
||||||
|
|
||||||
```console
|
|
||||||
.NET runtimes installed:
|
.NET runtimes installed:
|
||||||
Microsoft.NETCore.App 7.0.x [C:\path\to\dotnet\shared\Microsoft.NETCore.App]
|
Microsoft.NETCore.App 7.0.x [C:\path\to\dotnet\shared\Microsoft.NETCore.App]
|
||||||
Microsoft.WindowsDesktop.App 7.0.x [C:\path\to\dotnet\shared\Microsoft.WindowsDesktop.App]
|
Microsoft.WindowsDesktop.App 7.0.x [C:\path\to\dotnet\shared\Microsoft.WindowsDesktop.App]
|
||||||
|
|
|
@ -15,12 +15,9 @@ The information presented on this page is valid for **all** platforms.
|
||||||
**DCE** has two different versions:
|
**DCE** has two different versions:
|
||||||
|
|
||||||
- **Graphical User Interface** (**GUI**) - it's the preferred version for newcomers as it is easy to use.
|
- **Graphical User Interface** (**GUI**) - it's the preferred version for newcomers as it is easy to use.
|
||||||
You can get it by [downloading](https://github.com/Tyrrrz/DiscordChatExporter/releases/latest) the `DiscordChatExporter.zip` file.
|
You can get it by [downloading](https://github.com/Tyrrrz/DiscordChatExporter/releases/latest) the `DiscordChatExporter.*.zip` file.
|
||||||
- **Command-line Interface** (**CLI**) - offers greater flexibility and more features for advanced users, such as export scheduling, ID lists, and more specific date ranges.
|
- **Command-line Interface** (**CLI**) - offers greater flexibility and more features for advanced users, such as export scheduling, ID lists, and more specific date ranges.
|
||||||
You can get it by [downloading](https://github.com/Tyrrrz/DiscordChatExporter/releases/latest) the `DiscordChatExporter.CLI.zip` file.
|
You can get it by [downloading](https://github.com/Tyrrrz/DiscordChatExporter/releases/latest) the `DiscordChatExporter.Cli.*.zip` file.
|
||||||
|
|
||||||
If you're not comfortable with **Windows'** Command-line (cmd), please choose the GUI.
|
|
||||||
[**macOS**](MacOS.md), [**Linux**](Linux.md) and [**Docker**](Docker.md) users can only use the CLI version.
|
|
||||||
|
|
||||||
There are dedicated guides for each version:
|
There are dedicated guides for each version:
|
||||||
|
|
||||||
|
|
|
@ -1,32 +0,0 @@
|
||||||
# Linux usage instructions
|
|
||||||
|
|
||||||
## Installing .NET Runtime
|
|
||||||
|
|
||||||
Please follow the [instructions provided here](Dotnet.md).
|
|
||||||
|
|
||||||
## Downloading and using DiscordChatExporter.Cli
|
|
||||||
|
|
||||||
1. Download [DiscordChatExporter.CLI.zip](https://github.com/Tyrrrz/DiscordChatExporter/releases/latest) and extract it to a folder.
|
|
||||||
2. Open Terminal.
|
|
||||||
3. Change the working directory into the extracted folder. You can do this in Terminal by typing `cd`, then press the SPACE key, drag and drop the extracted folder into the Terminal window, and press the ENTER key.
|
|
||||||
4. Replace `TOKEN` and `CHANNEL`, then execute this command to export:
|
|
||||||
|
|
||||||
```console
|
|
||||||
./DiscordChatExporter.Cli.sh export -t TOKEN -c CHANNEL
|
|
||||||
```
|
|
||||||
|
|
||||||
If the above command throws a "Permission denied" error, use `chmod` to fix the permissions:
|
|
||||||
|
|
||||||
```console
|
|
||||||
chmod +x DiscordChatExporter.Cli.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
Alternatively, if the script doesn't work, you can run the following command to run the application directly:
|
|
||||||
|
|
||||||
```console
|
|
||||||
dotnet DiscordChatExporter.Cli.dll export -t TOKEN -c CHANNEL
|
|
||||||
```
|
|
||||||
|
|
||||||
> [How to get Token and Channel IDs](Token-and-IDs.md).
|
|
||||||
|
|
||||||
There's much more you can do with DCE.CLI! Read the [CLI explained](Using-the-CLI.md) page to get started.
|
|
|
@ -1,34 +0,0 @@
|
||||||
# macOS usage instructions
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Installing .NET Runtime
|
|
||||||
|
|
||||||
Please follow the [instructions provided here](Dotnet.md).
|
|
||||||
|
|
||||||
## Downloading and using DiscordChatExporter.Cli
|
|
||||||
|
|
||||||
1. Download [DiscordChatExporter.CLI.zip](https://github.com/Tyrrrz/DiscordChatExporter/releases/latest) and extract it to a folder.
|
|
||||||
2. Search for `Terminal.app` in Spotlight (⌘+SPACE), then open it.
|
|
||||||
3. In the Terminal window, type `cd` , press the SPACE key, then drag and drop the extracted folder into the window, then press the RETURN key.
|
|
||||||
4. Execute the following command to export, replacing `TOKEN` and `CHANNEL` with your own values:
|
|
||||||
|
|
||||||
```console
|
|
||||||
./DiscordChatExporter.Cli.sh export -t TOKEN -c CHANNEL
|
|
||||||
```
|
|
||||||
|
|
||||||
If the above command throws a "Permission denied" error, use `chmod` to fix the permissions:
|
|
||||||
|
|
||||||
```console
|
|
||||||
chmod +x DiscordChatExporter.Cli.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
Alternatively, if the script doesn't work, you can run the following command to run the application directly:
|
|
||||||
|
|
||||||
```console
|
|
||||||
dotnet DiscordChatExporter.Cli.dll export -t TOKEN -c CHANNEL
|
|
||||||
```
|
|
||||||
|
|
||||||
> [How to get Token and Channel IDs](Token-and-IDs.md).
|
|
||||||
|
|
||||||
There's much more you can do with DCE.CLI! Read the [CLI explained](Using-the-CLI.md) page to get started.
|
|
|
@ -89,17 +89,17 @@ from:96\-LB
|
||||||
In most cases, you will need to enclose your filter in quotes (`"`) to escape characters that may have special meaning in your shell:
|
In most cases, you will need to enclose your filter in quotes (`"`) to escape characters that may have special meaning in your shell:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
DiscordChatExporter.Cli export [...] --filter "from:Tyrrrz has:image"
|
$ ./DiscordChatExporter.Cli export [...] --filter "from:Tyrrrz has:image"
|
||||||
```
|
```
|
||||||
|
|
||||||
If you need to include quotes inside the filter itself as well, use single quotes (`'`) for those instead:
|
If you need to include quotes inside the filter itself as well, use single quotes (`'`) for those instead:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
DiscordChatExporter.Cli export [...] --filter "from:Tyrrrz 'hello world'"
|
$ ./DiscordChatExporter.Cli export [...] --filter "from:Tyrrrz 'hello world'"
|
||||||
```
|
```
|
||||||
|
|
||||||
Additionally, negated filters (those that start with `-`) may cause parsing issues even when enclosed in quotes. To avoid this, use the tilde (`~`) character instead of the dash (`-`):
|
Additionally, negated filters (those that start with `-`) may cause parsing issues even when enclosed in quotes. To avoid this, use the tilde (`~`) character instead of the dash (`-`):
|
||||||
|
|
||||||
```console
|
```console
|
||||||
DiscordChatExporter.Cli export [...] --filter ~from:Tyrrrz
|
$ ./DiscordChatExporter.Cli export [...] --filter ~from:Tyrrrz
|
||||||
```
|
```
|
||||||
|
|
|
@ -2,8 +2,7 @@
|
||||||
|
|
||||||
## Installation & Usage
|
## Installation & Usage
|
||||||
|
|
||||||
- [Get .NET Core Runtime](Dotnet.md) (Required for CLI; Installed automatically for GUI; Not required in Docker)
|
- [Get .NET Runtime](Dotnet.md)
|
||||||
- [Windows](Getting-started.md#gui-or-cli) | [macOS](MacOS.md) | [Linux](Linux.md) | [Docker](Docker.md)
|
|
||||||
- Getting started:
|
- Getting started:
|
||||||
- [Using the GUI](Using-the-GUI.md)
|
- [Using the GUI](Using-the-GUI.md)
|
||||||
- [Using the CLI](Using-the-CLI.md)
|
- [Using the CLI](Using-the-CLI.md)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Scheduling exports with Cron
|
# Scheduling exports with Cron
|
||||||
|
|
||||||
Make sure you already have **DiscordChatExporter.CLI** and **.NET Core** properly installed ([instructions here](Linux.md)).
|
Make sure you already have **DiscordChatExporter.CLI** downloaded and **.NET Runtime** installed.
|
||||||
|
|
||||||
## Creating the script
|
## Creating the script
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ fi
|
||||||
cd $DLLFOLDER || exit 1
|
cd $DLLFOLDER || exit 1
|
||||||
|
|
||||||
# This will export your chat
|
# This will export your chat
|
||||||
dotnet DiscordChatExporter.Cli.dll export -t $TOKEN -c $CHANNELID -f $EXPORTFORMAT -o $FILENAME.tmp
|
./DiscordChatExporter.Cli export -t $TOKEN -c $CHANNELID -f $EXPORTFORMAT -o $FILENAME.tmp
|
||||||
|
|
||||||
# This sets the current time to a variable
|
# This sets the current time to a variable
|
||||||
CURRENTTIME=$(date +"%Y-%m-%d-%H-%M-%S")
|
CURRENTTIME=$(date +"%Y-%m-%d-%H-%M-%S")
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
# Scheduling exports on macOS
|
# Scheduling exports on macOS
|
||||||
|
|
||||||
Scheduling on macOS is a bit tricky, but it should work if you follow the instructions accordingly.
|
Make sure you already have **DiscordChatExporter.CLI** downloaded and **.NET Runtime** installed.
|
||||||
|
|
||||||
Make sure you already have **DiscordChatExporter.CLI** and **.NET Core** properly installed ([instructions here](MacOS.md)).
|
|
||||||
|
|
||||||
## Creating the script
|
## Creating the script
|
||||||
|
|
||||||
|
@ -51,7 +49,7 @@ fi
|
||||||
cd $DLLFOLDER || exit 1
|
cd $DLLFOLDER || exit 1
|
||||||
|
|
||||||
# This will export your chat
|
# This will export your chat
|
||||||
dotnet DiscordChatExporter.Cli.dll export -t $TOKEN -c $CHANNELID -f $EXPORTFORMAT -o $FILENAME.tmp
|
./DiscordChatExporter.Cli export -t $TOKEN -c $CHANNELID -f $EXPORTFORMAT -o $FILENAME.tmp
|
||||||
|
|
||||||
# This sets the current time to a variable
|
# This sets the current time to a variable
|
||||||
CURRENTTIME=$(date +"%Y-%m-%d-%H-%M-%S")
|
CURRENTTIME=$(date +"%Y-%m-%d-%H-%M-%S")
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
# Scheduling exports on Windows
|
# Scheduling exports on Windows
|
||||||
|
|
||||||
We'll be using [DiscordChatExporter CLI](https://github.com/Tyrrrz/DiscordChatExporter/releases/latest), PowerShell, and Task Scheduler.
|
We'll be using [DiscordChatExporter CLI](https://github.com/Tyrrrz/DiscordChatExporter/releases/latest), PowerShell, and Task Scheduler.
|
||||||
|
Make sure you already have **DiscordChatExporter.CLI** downloaded and **.NET Runtime** installed.
|
||||||
|
|
||||||
## Creating the script
|
## Creating the script
|
||||||
|
|
||||||
|
@ -19,7 +20,7 @@ $EXPORTFORMAT = "formathere"
|
||||||
|
|
||||||
cd $EXEPATH
|
cd $EXEPATH
|
||||||
|
|
||||||
.\DiscordChatExporter.Cli.exe export -t $TOKEN -c $CHANNEL -f $EXPORTFORMAT -o "$FILENAME.tmp"
|
./DiscordChatExporter.Cli export -t $TOKEN -c $CHANNEL -f $EXPORTFORMAT -o "$FILENAME.tmp"
|
||||||
|
|
||||||
$Date = Get-Date -Format "yyyy-MM-dd-HH-mm"
|
$Date = Get-Date -Format "yyyy-MM-dd-HH-mm"
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ Prerequisite step: Navigate to [discord.com](https://discord.com) and login.
|
||||||
|
|
||||||
3. Type
|
3. Type
|
||||||
|
|
||||||
```console
|
```js
|
||||||
(webpackChunkdiscord_app.push([[''],{},e=>{m=[];for(let c in e.c)m.push(e.c[c])}]),m).find(m=>m?.exports?.default?.getToken!==void 0).exports.default.getToken()
|
(webpackChunkdiscord_app.push([[''],{},e=>{m=[];for(let c in e.c)m.push(e.c[c])}]),m).find(m=>m?.exports?.default?.getToken!==void 0).exports.default.getToken()
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -118,7 +118,7 @@ Prerequisite step: Navigate to [discord.com](https://discord.com) and login.
|
||||||
|
|
||||||
1. Type
|
1. Type
|
||||||
|
|
||||||
```console
|
```js
|
||||||
(webpackChunkdiscord_app.push([[''],{},e=>{m=[];for(let c in e.c)m.push(e.c[c])}]),m).find(m=>m?.exports?.default?.getToken!==void 0).exports.default.getToken()
|
(webpackChunkdiscord_app.push([[''],{},e=>{m=[];for(let c in e.c)m.push(e.c[c])}]),m).find(m=>m?.exports?.default?.getToken!==void 0).exports.default.getToken()
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -70,14 +70,7 @@ Check the following page: [Obtaining token](Token-and-IDs.md)
|
||||||
|
|
||||||
### When I open DCE a black window pops up quickly or nothing shows up
|
### When I open DCE a black window pops up quickly or nothing shows up
|
||||||
|
|
||||||
If you have [.NET Core Runtime correctly installed](Dotnet.md), you might have downloaded the CLi flavor, try [downloading the GUI](Getting-started.md#gui-or-cli) instead.
|
If you have [.NET Runtime correctly installed](Dotnet.md), you might have downloaded the CLI flavor, try [downloading the GUI](Getting-started.md#gui-or-cli) instead.
|
||||||
|
|
||||||
### How do I run DCE on macOS or Linux?
|
|
||||||
|
|
||||||
Check the following pages:
|
|
||||||
|
|
||||||
- [macOS usage instructions](MacOS.md)
|
|
||||||
- [Linux usage instructions](Linux.md)
|
|
||||||
|
|
||||||
### How can I set DCE to export automatically at certain times?
|
### How can I set DCE to export automatically at certain times?
|
||||||
|
|
||||||
|
@ -133,34 +126,26 @@ Make sure you're [copying the DM Channel ID](Token-and-IDs.md#how-to-get-a-direc
|
||||||
|
|
||||||
## Errors
|
## Errors
|
||||||
|
|
||||||
```console
|
```yml
|
||||||
DiscordChatExporter.Domain.Exceptions.DiscordChatExporterException: Authentication token is invalid.
|
DiscordChatExporter.Domain.Exceptions.DiscordChatExporterException: Authentication token is invalid.
|
||||||
...
|
|
||||||
```
|
```
|
||||||
|
|
||||||
↳ Make sure the provided token is correct.
|
↳ Make sure the provided token is correct.
|
||||||
|
|
||||||
```console
|
```yml
|
||||||
DiscordChatExporter.Domain.Exceptions.DiscordChatExporterException: Requested resource does not exist.
|
DiscordChatExporter.Domain.Exceptions.DiscordChatExporterException: Requested resource does not exist.
|
||||||
```
|
```
|
||||||
|
|
||||||
↳ Check your channel ID, it might be invalid. [Read this if you need help](Token-and-IDs.md).
|
↳ Check your channel ID, it might be invalid. [Read this if you need help](Token-and-IDs.md).
|
||||||
|
|
||||||
```console
|
```yml
|
||||||
DiscordChatExporter.Domain.Exceptions.DiscordChatExporterException: Access is forbidden.
|
DiscordChatExporter.Domain.Exceptions.DiscordChatExporterException: Access is forbidden.
|
||||||
```
|
```
|
||||||
|
|
||||||
↳ This means you don't have access to the channel.
|
↳ This means you don't have access to the channel.
|
||||||
|
|
||||||
```console
|
```yml
|
||||||
The application to execute does not exist:
|
|
||||||
```
|
|
||||||
|
|
||||||
↳ The `DiscordChatExporter.Cli.dll` file is missing. Keep the `.exe` and all the `.dll` files together. If you didn't move the files, try unzipping again.
|
|
||||||
|
|
||||||
```console
|
|
||||||
System.Net.WebException: Error: TrustFailure ... Invalid certificate received from server.
|
System.Net.WebException: Error: TrustFailure ... Invalid certificate received from server.
|
||||||
...
|
|
||||||
```
|
```
|
||||||
|
|
||||||
↳ Try running cert-sync.
|
↳ Try running cert-sync.
|
||||||
|
|
|
@ -28,22 +28,10 @@ You can also drag and drop the folder on **every platform**.
|
||||||
Now we're ready to run the commands. The examples on this page follow the Windows file path format, change the file
|
Now we're ready to run the commands. The examples on this page follow the Windows file path format, change the file
|
||||||
paths according to your system.
|
paths according to your system.
|
||||||
|
|
||||||
On **Windows**, type the following command in your terminal of choice, then press ENTER to run it. This will list all available subcommands and options.
|
Type the following command in your terminal of choice, then press ENTER to run it. This will list all available subcommands and options.
|
||||||
|
|
||||||
```console
|
```console
|
||||||
DiscordChatExporter.Cli.exe
|
$ ./DiscordChatExporter.Cli
|
||||||
```
|
|
||||||
|
|
||||||
On **macOS** and **Linux**, run the following instead:
|
|
||||||
|
|
||||||
```console
|
|
||||||
./DiscordChatExporter.Cli.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
If either of the above approaches don't work for you, you can also run **DiscordChatExporter** directly like this, regardless of the platform:
|
|
||||||
|
|
||||||
```console
|
|
||||||
dotnet DiscordChatExporter.Cli.dll
|
|
||||||
```
|
```
|
||||||
|
|
||||||
> **Docker** users, please refer to the [Docker usage instructions](Docker.md).
|
> **Docker** users, please refer to the [Docker usage instructions](Docker.md).
|
||||||
|
@ -61,18 +49,18 @@ dotnet DiscordChatExporter.Cli.dll
|
||||||
| guilds | Outputs the list of accessible servers |
|
| guilds | Outputs the list of accessible servers |
|
||||||
| guide | Explains how to obtain token, server, and channel ID |
|
| guide | Explains how to obtain token, server, and channel ID |
|
||||||
|
|
||||||
To use the commands, you'll need a token. For the instructions on how to get a token, please refer to [this page](Token-and-IDs.md), or run `dotnet DiscordChatExporter.Cli.dll guide`.
|
To use the commands, you'll need a token. For the instructions on how to get a token, please refer to [this page](Token-and-IDs.md), or run `./DiscordChatExporter.Cli guide`.
|
||||||
|
|
||||||
To get help with a specific command, run:
|
To get help with a specific command, run:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
dotnet DiscordChatExporter.Cli.dll command --help
|
$ ./DiscordChatExporter.Cli command --help
|
||||||
```
|
```
|
||||||
|
|
||||||
For example, to figure out how to use the `export` command, run:
|
For example, to figure out how to use the `export` command, run:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
dotnet DiscordChatExporter.Cli.dll export --help
|
$ ./DiscordChatExporter.Cli export --help
|
||||||
```
|
```
|
||||||
|
|
||||||
## Export a specific channel
|
## Export a specific channel
|
||||||
|
@ -80,7 +68,7 @@ dotnet DiscordChatExporter.Cli.dll export --help
|
||||||
You can quickly export with DCE's default settings by using just `-t token` and `-c channelid`.
|
You can quickly export with DCE's default settings by using just `-t token` and `-c channelid`.
|
||||||
|
|
||||||
```console
|
```console
|
||||||
dotnet DiscordChatExporter.Cli.dll export -t "mfa.Ifrn" -c 53555
|
$ ./DiscordChatExporter.Cli export -t "mfa.Ifrn" -c 53555
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Changing the format
|
#### Changing the format
|
||||||
|
@ -89,7 +77,7 @@ You can change the export format to `HtmlDark`, `HtmlLight`, `PlainText` `Json`
|
||||||
format is `HtmlDark`.
|
format is `HtmlDark`.
|
||||||
|
|
||||||
```console
|
```console
|
||||||
dotnet DiscordChatExporter.Cli.dll export -t "mfa.Ifrn" -c 53555 -f Json
|
$ ./DiscordChatExporter.Cli export -t "mfa.Ifrn" -c 53555 -f Json
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Changing the output filename
|
#### Changing the output filename
|
||||||
|
@ -97,7 +85,7 @@ dotnet DiscordChatExporter.Cli.dll export -t "mfa.Ifrn" -c 53555 -f Json
|
||||||
You can change the filename by using `-o name.ext`. e.g. for the `HTML` format:
|
You can change the filename by using `-o name.ext`. e.g. for the `HTML` format:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
dotnet DiscordChatExporter.Cli.dll export -t "mfa.Ifrn" -c 53555 -o myserver.html
|
$ ./DiscordChatExporter.Cli export -t "mfa.Ifrn" -c 53555 -o myserver.html
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Changing the output directory
|
#### Changing the output directory
|
||||||
|
@ -107,7 +95,7 @@ extension.
|
||||||
If any of the folders in the path have a space in its name, escape them with quotes (").
|
If any of the folders in the path have a space in its name, escape them with quotes (").
|
||||||
|
|
||||||
```console
|
```console
|
||||||
dotnet DiscordChatExporter.Cli.dll export -t "mfa.Ifrn" -c 53555 -o "C:\Discord Exports"
|
$ ./DiscordChatExporter.Cli export -t "mfa.Ifrn" -c 53555 -o "C:\Discord Exports"
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Changing the filename and output directory
|
#### Changing the filename and output directory
|
||||||
|
@ -117,7 +105,7 @@ Note that the filename must have an extension, otherwise it will be considered a
|
||||||
If any of the folders in the path have a space in its name, escape them with quotes (").
|
If any of the folders in the path have a space in its name, escape them with quotes (").
|
||||||
|
|
||||||
```console
|
```console
|
||||||
dotnet DiscordChatExporter.Cli.dll export -t "mfa.Ifrn" -c 53555 -o "C:\Discord Exports\myserver.html"
|
$ ./DiscordChatExporter.Cli export -t "mfa.Ifrn" -c 53555 -o "C:\Discord Exports\myserver.html"
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Generating the filename and output directory dynamically
|
#### Generating the filename and output directory dynamically
|
||||||
|
@ -125,7 +113,7 @@ dotnet DiscordChatExporter.Cli.dll export -t "mfa.Ifrn" -c 53555 -o "C:\Discord
|
||||||
You can use template tokens to generate the output file path based on the server and channel metadata.
|
You can use template tokens to generate the output file path based on the server and channel metadata.
|
||||||
|
|
||||||
```console
|
```console
|
||||||
dotnet DiscordChatExporter.Cli.dll export -t "mfa.Ifrn" -c 53555 -o "C:\Discord Exports\%G\%T\%C.html"
|
$ ./DiscordChatExporter.Cli export -t "mfa.Ifrn" -c 53555 -o "C:\Discord Exports\%G\%T\%C.html"
|
||||||
```
|
```
|
||||||
|
|
||||||
Assuming you are exporting a channel named `"my-channel"` in the `"Text channels"` category from a server
|
Assuming you are exporting a channel named `"my-channel"` in the `"Text channels"` category from a server
|
||||||
|
@ -152,13 +140,13 @@ You can use partitioning to split files after a given number of messages or file
|
||||||
For example, a channel with 36 messages set to be partitioned every 10 messages will output 4 files.
|
For example, a channel with 36 messages set to be partitioned every 10 messages will output 4 files.
|
||||||
|
|
||||||
```console
|
```console
|
||||||
dotnet DiscordChatExporter.Cli.dll export -t "mfa.Ifrn" -c 53555 -p 10
|
$ ./DiscordChatExporter.Cli export -t "mfa.Ifrn" -c 53555 -p 10
|
||||||
```
|
```
|
||||||
|
|
||||||
A 45 MB channel set to be partitioned every 20 MB will output 3 files.
|
A 45 MB channel set to be partitioned every 20 MB will output 3 files.
|
||||||
|
|
||||||
```console
|
```console
|
||||||
dotnet DiscordChatExporter.Cli.dll export -t "mfa.Ifrn" -c 53555 -p 20mb
|
$ ./DiscordChatExporter.Cli export -t "mfa.Ifrn" -c 53555 -p 20mb
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Downloading assets
|
#### Downloading assets
|
||||||
|
@ -169,7 +157,7 @@ downloaded when using the plain text (TXT) export format.
|
||||||
A folder containing the assets will be created along with the exported chat. They must be kept together.
|
A folder containing the assets will be created along with the exported chat. They must be kept together.
|
||||||
|
|
||||||
```console
|
```console
|
||||||
dotnet DiscordChatExporter.Cli.dll export -t "mfa.Ifrn" -c 53555 --media
|
$ ./DiscordChatExporter.Cli export -t "mfa.Ifrn" -c 53555 --media
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Reusing assets
|
#### Reusing assets
|
||||||
|
@ -178,7 +166,7 @@ Previously downloaded assets can be reused to skip redundant downloads as long a
|
||||||
same folder. Using this option can speed up future exports. This option requires the `--media` option.
|
same folder. Using this option can speed up future exports. This option requires the `--media` option.
|
||||||
|
|
||||||
```console
|
```console
|
||||||
dotnet DiscordChatExporter.Cli.dll export -t "mfa.Ifrn" -c 53555 --media --reuse-media
|
$ ./DiscordChatExporter.Cli export -t "mfa.Ifrn" -c 53555 --media --reuse-media
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Changing the media directory
|
#### Changing the media directory
|
||||||
|
@ -187,7 +175,7 @@ By default, the media directory is created alongside the exported chat. You can
|
||||||
providing a path that ends with a slash. All of the exported media will be stored in this directory.
|
providing a path that ends with a slash. All of the exported media will be stored in this directory.
|
||||||
|
|
||||||
```console
|
```console
|
||||||
dotnet DiscordChatExporter.Cli.dll export -t "mfa.Ifrn" -c 53555 --media --media-dir "C:\Discord Media"
|
$ ./DiscordChatExporter.Cli export -t "mfa.Ifrn" -c 53555 --media --media-dir "C:\Discord Media"
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Changing the date format
|
#### Changing the date format
|
||||||
|
@ -196,7 +184,7 @@ You can customize how dates are formatted in the exported files by using `--loca
|
||||||
locales. The default locale is `en-US`.
|
locales. The default locale is `en-US`.
|
||||||
|
|
||||||
```console
|
```console
|
||||||
dotnet DiscordChatExporter.Cli.dll export -t "mfa.Ifrn" -c 53555 --locale "de-DE"
|
$ ./DiscordChatExporter.Cli export -t "mfa.Ifrn" -c 53555 --locale "de-DE"
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Date ranges
|
#### Date ranges
|
||||||
|
@ -205,14 +193,14 @@ dotnet DiscordChatExporter.Cli.dll export -t "mfa.Ifrn" -c 53555 --locale "de-DE
|
||||||
Use `--before` to export messages sent before the provided date. E.g. messages sent before September 18th, 2019:
|
Use `--before` to export messages sent before the provided date. E.g. messages sent before September 18th, 2019:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
dotnet DiscordChatExporter.Cli.dll export -t "mfa.Ifrn" -c 53555 --before 2019-09-18
|
$ ./DiscordChatExporter.Cli export -t "mfa.Ifrn" -c 53555 --before 2019-09-18
|
||||||
```
|
```
|
||||||
|
|
||||||
**Messages sent after a date**
|
**Messages sent after a date**
|
||||||
Use `--after` to export messages sent after the provided date. E.g. messages sent after September 17th, 2019 11:34 PM:
|
Use `--after` to export messages sent after the provided date. E.g. messages sent after September 17th, 2019 11:34 PM:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
dotnet DiscordChatExporter.Cli.dll export -t "mfa.Ifrn" -c 53555 --after "2019-09-17 23:34"
|
$ ./DiscordChatExporter.Cli export -t "mfa.Ifrn" -c 53555 --after "2019-09-17 23:34"
|
||||||
```
|
```
|
||||||
|
|
||||||
**Messages sent in a date range**
|
**Messages sent in a date range**
|
||||||
|
@ -220,7 +208,7 @@ Use `--before` and `--after` to export messages sent during the provided date ra
|
||||||
September 17th, 2019 11:34 PM and September 18th:
|
September 17th, 2019 11:34 PM and September 18th:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
dotnet DiscordChatExporter.Cli.dll export -t "mfa.Ifrn" -c 53555 --after "2019-09-17 23:34" --before "2019-09-18"
|
$ ./DiscordChatExporter.Cli export -t "mfa.Ifrn" -c 53555 --after "2019-09-17 23:34" --before "2019-09-18"
|
||||||
```
|
```
|
||||||
|
|
||||||
You can try different formats like `17-SEP-2019 11:34 PM` or even refine your ranges down to
|
You can try different formats like `17-SEP-2019 11:34 PM` or even refine your ranges down to
|
||||||
|
@ -234,7 +222,7 @@ formats [here](https://docs.microsoft.com/en-us/dotnet/standard/base-types/custo
|
||||||
To export all channels in a specific server, use the `exportguild` command and provide the server ID through the `-g|--guild` option:
|
To export all channels in a specific server, use the `exportguild` command and provide the server ID through the `-g|--guild` option:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
dotnet DiscordChatExporter.Cli.dll exportguild -t "mfa.Ifrn" -g 21814
|
$ ./DiscordChatExporter.Cli exportguild -t "mfa.Ifrn" -g 21814
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Including threads
|
#### Including threads
|
||||||
|
@ -244,7 +232,7 @@ specifying which threads should be included. It has possible values of `none`, `
|
||||||
threads should be included. To include both active and archived threads, use `--include-threads all`.
|
threads should be included. To include both active and archived threads, use `--include-threads all`.
|
||||||
|
|
||||||
```console
|
```console
|
||||||
dotnet DiscordChatExporter.Cli.dll exportguild -t "mfa.Ifrn" -g 21814 --include-threads all
|
$ ./DiscordChatExporter.Cli exportguild -t "mfa.Ifrn" -g 21814 --include-threads all
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Including voice channels
|
#### Including voice channels
|
||||||
|
@ -254,7 +242,7 @@ specifying whether to include voice channels in the export. It has possible valu
|
||||||
voice channels, use `--include-vc false`.
|
voice channels, use `--include-vc false`.
|
||||||
|
|
||||||
```console
|
```console
|
||||||
dotnet DiscordChatExporter.Cli.dll exportguild -t "mfa.Ifrn" -g 21814 --include-vc false
|
$ ./DiscordChatExporter.Cli exportguild -t "mfa.Ifrn" -g 21814 --include-vc false
|
||||||
```
|
```
|
||||||
|
|
||||||
### Export all channels
|
### Export all channels
|
||||||
|
@ -262,7 +250,7 @@ dotnet DiscordChatExporter.Cli.dll exportguild -t "mfa.Ifrn" -g 21814 --include-
|
||||||
To export all accessible channels, use the `exportall` command:
|
To export all accessible channels, use the `exportall` command:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
dotnet DiscordChatExporter.Cli.dll exportall -t "mfa.Ifrn"
|
$ ./DiscordChatExporter.Cli exportall -t "mfa.Ifrn"
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Excluding DMs
|
#### Excluding DMs
|
||||||
|
@ -270,7 +258,7 @@ dotnet DiscordChatExporter.Cli.dll exportall -t "mfa.Ifrn"
|
||||||
To exclude DMs, add the `--include-dm false` option.
|
To exclude DMs, add the `--include-dm false` option.
|
||||||
|
|
||||||
```console
|
```console
|
||||||
dotnet DiscordChatExporter.Cli.dll exportall -t "mfa.Ifrn" --include-dm false
|
$ ./DiscordChatExporter.Cli exportall -t "mfa.Ifrn" --include-dm false
|
||||||
```
|
```
|
||||||
|
|
||||||
### List channels in a server
|
### List channels in a server
|
||||||
|
@ -278,7 +266,7 @@ dotnet DiscordChatExporter.Cli.dll exportall -t "mfa.Ifrn" --include-dm false
|
||||||
To list the channels available in a specific server, use the `channels` command and provide the server ID through the `-g|--guild` option:
|
To list the channels available in a specific server, use the `channels` command and provide the server ID through the `-g|--guild` option:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
dotnet DiscordChatExporter.Cli.dll channels -t "mfa.Ifrn" -g 21814
|
$ ./DiscordChatExporter.Cli channels -t "mfa.Ifrn" -g 21814
|
||||||
```
|
```
|
||||||
|
|
||||||
### List direct message channels
|
### List direct message channels
|
||||||
|
@ -286,7 +274,7 @@ dotnet DiscordChatExporter.Cli.dll channels -t "mfa.Ifrn" -g 21814
|
||||||
To list all DM channels accessible to the current account, use the `dm` command:
|
To list all DM channels accessible to the current account, use the `dm` command:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
dotnet DiscordChatExporter.Cli.dll dm -t "mfa.Ifrn"
|
$ ./DiscordChatExporter.Cli dm -t "mfa.Ifrn"
|
||||||
```
|
```
|
||||||
|
|
||||||
### List servers
|
### List servers
|
||||||
|
@ -294,5 +282,5 @@ dotnet DiscordChatExporter.Cli.dll dm -t "mfa.Ifrn"
|
||||||
To list all servers accessible by the current account, use the `guilds` command:
|
To list all servers accessible by the current account, use the `guilds` command:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
dotnet DiscordChatExporter.Cli.dll guilds -t "mfa.Ifrn" > C:\path\to\output.txt
|
$ ./DiscordChatExporter.Cli guilds -t "mfa.Ifrn" > C:\path\to\output.txt
|
||||||
```
|
```
|
3
.github/workflows/docker.yml
vendored
3
.github/workflows/docker.yml
vendored
|
@ -12,8 +12,7 @@ on:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
# Outputs from this job aren't really used, but it's here to verify that
|
# Outputs from this job aren't really used, but it's here to verify that the Dockerfile builds correctly
|
||||||
# the Dockerfile builds correctly on pull requests.
|
|
||||||
pack:
|
pack:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
timeout-minutes: 10
|
timeout-minutes: 10
|
||||||
|
|
49
.github/workflows/main.yml
vendored
49
.github/workflows/main.yml
vendored
|
@ -18,7 +18,7 @@ env:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
format:
|
format:
|
||||||
runs-on: windows-latest
|
runs-on: ubuntu-latest
|
||||||
timeout-minutes: 10
|
timeout-minutes: 10
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
|
@ -43,7 +43,7 @@ jobs:
|
||||||
# Tests need access to secrets, so we can't run them against PRs because of limited trust
|
# Tests need access to secrets, so we can't run them against PRs because of limited trust
|
||||||
if: ${{ github.event_name != 'pull_request' }}
|
if: ${{ github.event_name != 'pull_request' }}
|
||||||
|
|
||||||
runs-on: windows-latest
|
runs-on: ubuntu-latest
|
||||||
timeout-minutes: 10
|
timeout-minutes: 10
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
|
@ -82,7 +82,24 @@ jobs:
|
||||||
app:
|
app:
|
||||||
- DiscordChatExporter.Cli
|
- DiscordChatExporter.Cli
|
||||||
- DiscordChatExporter.Gui
|
- DiscordChatExporter.Gui
|
||||||
|
rid:
|
||||||
|
- win-arm64
|
||||||
|
- win-x86
|
||||||
|
- win-x64
|
||||||
|
- linux-arm
|
||||||
|
- linux-arm64
|
||||||
|
- linux-musl-x64
|
||||||
|
- linux-x64
|
||||||
|
- osx-arm64
|
||||||
|
- osx-x64
|
||||||
|
include:
|
||||||
|
- app: DiscordChatExporter.Cli
|
||||||
|
asset: DiscordChatExporter.Cli
|
||||||
|
- app: DiscordChatExporter.Gui
|
||||||
|
# GUI assets aren't suffixed, unlike the CLI assets
|
||||||
|
asset: DiscordChatExporter
|
||||||
|
|
||||||
|
# Need to run on Windows because of DotnetRuntimeBootstrapper's dependency on Ressy
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
timeout-minutes: 10
|
timeout-minutes: 10
|
||||||
|
|
||||||
|
@ -106,12 +123,13 @@ jobs:
|
||||||
-p:CSharpier_Bypass=true
|
-p:CSharpier_Bypass=true
|
||||||
--output ${{ matrix.app }}/bin/publish/
|
--output ${{ matrix.app }}/bin/publish/
|
||||||
--configuration Release
|
--configuration Release
|
||||||
--use-current-runtime
|
--runtime ${{ matrix.rid }}
|
||||||
|
--no-self-contained
|
||||||
|
|
||||||
- name: Upload artifacts
|
- name: Upload artifacts
|
||||||
uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0
|
uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0
|
||||||
with:
|
with:
|
||||||
name: ${{ matrix.app }}
|
name: ${{ matrix.asset }}.${{ matrix.rid }}
|
||||||
path: ${{ matrix.app }}/bin/publish/
|
path: ${{ matrix.app }}/bin/publish/
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
|
|
||||||
|
@ -148,11 +166,21 @@ jobs:
|
||||||
app:
|
app:
|
||||||
- DiscordChatExporter.Cli
|
- DiscordChatExporter.Cli
|
||||||
- DiscordChatExporter.Gui
|
- DiscordChatExporter.Gui
|
||||||
|
rid:
|
||||||
|
- win-arm64
|
||||||
|
- win-x86
|
||||||
|
- win-x64
|
||||||
|
- linux-arm
|
||||||
|
- linux-arm64
|
||||||
|
- linux-musl-x64
|
||||||
|
- linux-x64
|
||||||
|
- osx-arm64
|
||||||
|
- osx-x64
|
||||||
include:
|
include:
|
||||||
- app: DiscordChatExporter.Cli
|
- app: DiscordChatExporter.Cli
|
||||||
asset: DiscordChatExporter.Cli
|
asset: DiscordChatExporter.Cli
|
||||||
- app: DiscordChatExporter.Gui
|
- app: DiscordChatExporter.Gui
|
||||||
# GUI asset isn't suffixed, unlike the CLI asset
|
# GUI assets aren't suffixed, unlike the CLI assets
|
||||||
asset: DiscordChatExporter
|
asset: DiscordChatExporter
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
@ -166,25 +194,20 @@ jobs:
|
||||||
- name: Download artifacts
|
- name: Download artifacts
|
||||||
uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
|
uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
|
||||||
with:
|
with:
|
||||||
name: ${{ matrix.app }}
|
name: ${{ matrix.asset }}.${{ matrix.rid }}
|
||||||
path: ${{ matrix.app }}/
|
path: ${{ matrix.app }}/
|
||||||
|
|
||||||
- name: Configure permissions
|
|
||||||
# Remove this when the GUI also becomes cross-platform
|
|
||||||
if: ${{ matrix.app == 'DiscordChatExporter.Cli' }}
|
|
||||||
run: chmod +x ${{ matrix.app }}/${{ matrix.app }}.sh
|
|
||||||
|
|
||||||
- name: Create package
|
- name: Create package
|
||||||
# Change into the artifacts directory to avoid including the directory itself in the zip archive
|
# Change into the artifacts directory to avoid including the directory itself in the zip archive
|
||||||
working-directory: ${{ matrix.app }}/
|
working-directory: ${{ matrix.app }}/
|
||||||
run: zip -rX ../${{ matrix.asset }}.zip .
|
run: zip -r ../${{ matrix.asset }}.${{ matrix.rid }}.zip .
|
||||||
|
|
||||||
- name: Upload release asset
|
- name: Upload release asset
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
run: >
|
run: >
|
||||||
gh release upload ${{ github.ref_name }}
|
gh release upload ${{ github.ref_name }}
|
||||||
${{ matrix.asset }}.zip
|
${{ matrix.asset }}.${{ matrix.rid }}.zip
|
||||||
--repo ${{ github.event.repository.full_name }}
|
--repo ${{ github.event.repository.full_name }}
|
||||||
|
|
||||||
notify:
|
notify:
|
||||||
|
|
|
@ -4,16 +4,12 @@
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<ApplicationIcon>..\favicon.ico</ApplicationIcon>
|
<ApplicationIcon>..\favicon.ico</ApplicationIcon>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="DiscordChatExporter.Cli.sh" CopyToOutputDirectory="PreserveNewest" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="CliFx" Version="2.3.5" />
|
<PackageReference Include="CliFx" Version="2.3.5" />
|
||||||
<PackageReference Include="CSharpier.MsBuild" Version="0.28.0" PrivateAssets="all" />
|
<PackageReference Include="CSharpier.MsBuild" Version="0.28.0" PrivateAssets="all" />
|
||||||
<PackageReference Include="Deorcify" Version="1.0.2" PrivateAssets="all" />
|
<PackageReference Include="Deorcify" Version="1.0.2" PrivateAssets="all" />
|
||||||
<PackageReference Include="DotnetRuntimeBootstrapper" Version="2.5.3" PrivateAssets="all" />
|
<PackageReference Include="DotnetRuntimeBootstrapper" Version="2.5.4" PrivateAssets="all" />
|
||||||
<PackageReference Include="Gress" Version="2.1.1" />
|
<PackageReference Include="Gress" Version="2.1.1" />
|
||||||
<PackageReference Include="Spectre.Console" Version="0.48.0" />
|
<PackageReference Include="Spectre.Console" Version="0.48.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
dotnet "$(dirname "$0")/DiscordChatExporter.Cli.dll" "$@"
|
|
|
@ -20,7 +20,7 @@
|
||||||
<PackageReference Include="CSharpier.MsBuild" Version="0.28.0" PrivateAssets="all" />
|
<PackageReference Include="CSharpier.MsBuild" Version="0.28.0" PrivateAssets="all" />
|
||||||
<PackageReference Include="Deorcify" Version="1.0.2" PrivateAssets="all" />
|
<PackageReference Include="Deorcify" Version="1.0.2" PrivateAssets="all" />
|
||||||
<PackageReference Include="DialogHost.Avalonia" Version="0.7.7" />
|
<PackageReference Include="DialogHost.Avalonia" Version="0.7.7" />
|
||||||
<PackageReference Include="DotnetRuntimeBootstrapper" Version="2.5.3" PrivateAssets="all" Condition="$([MSBuild]::IsOsPlatform('Windows'))" />
|
<PackageReference Include="DotnetRuntimeBootstrapper" Version="2.5.4" PrivateAssets="all" />
|
||||||
<PackageReference Include="Gress" Version="2.1.1" />
|
<PackageReference Include="Gress" Version="2.1.1" />
|
||||||
<PackageReference Include="Material.Avalonia" Version="3.5.0" />
|
<PackageReference Include="Material.Avalonia" Version="3.5.0" />
|
||||||
<PackageReference Include="Material.Icons.Avalonia" Version="2.1.0" />
|
<PackageReference Include="Material.Icons.Avalonia" Version="2.1.0" />
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
using System;
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Onova;
|
using Onova;
|
||||||
using Onova.Exceptions;
|
using Onova.Exceptions;
|
||||||
|
@ -9,7 +10,15 @@ namespace DiscordChatExporter.Gui.Services;
|
||||||
public class UpdateService(SettingsService settingsService) : IDisposable
|
public class UpdateService(SettingsService settingsService) : IDisposable
|
||||||
{
|
{
|
||||||
private readonly IUpdateManager _updateManager = new UpdateManager(
|
private readonly IUpdateManager _updateManager = new UpdateManager(
|
||||||
new GithubPackageResolver("Tyrrrz", "DiscordChatExporter", "DiscordChatExporter.zip"),
|
new GithubPackageResolver(
|
||||||
|
"Tyrrrz",
|
||||||
|
"DiscordChatExporter",
|
||||||
|
// Examples:
|
||||||
|
// DiscordChatExporter.win-arm64.zip
|
||||||
|
// DiscordChatExporter.win-x64.zip
|
||||||
|
// DiscordChatExporter.linux-x64.zip
|
||||||
|
$"DiscordChatExporter.{RuntimeInformation.RuntimeIdentifier}.zip"
|
||||||
|
),
|
||||||
new ZipPackageExtractor()
|
new ZipPackageExtractor()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
60
Readme.md
60
Readme.md
|
@ -41,53 +41,15 @@ To learn more about the war and how you can help, [click here](https://tyrrrz.me
|
||||||
|
|
||||||
## Download
|
## Download
|
||||||
|
|
||||||
This application comes in two flavors: graphical user interface (**GUI**) and command-line interface (**CLI**).
|
- **Graphical user interface** (desktop app):
|
||||||
The following table lists all available download options:
|
- 🟢 **[Stable release](https://github.com/Tyrrrz/DiscordChatExporter/releases/latest)**: look for `DiscordChatExporter.*.zip`
|
||||||
|
- 🟠 [CI build](https://github.com/Tyrrrz/DiscordChatExporter/actions/workflows/main.yml): look for `DiscordChatExporter.*.zip`
|
||||||
<table>
|
- **Command-line interface** (terminal app):
|
||||||
<thead>
|
- 🟢 **[Stable release](https://github.com/Tyrrrz/DiscordChatExporter/releases/latest)**: look for `DiscordChatExporter.Cli.*.zip`
|
||||||
<tr>
|
- 🟠 [CI build](https://github.com/Tyrrrz/DiscordChatExporter/actions/workflows/main.yml): look for `DiscordChatExporter.Cli.*.zip`
|
||||||
<th></th>
|
- 🐋 [Docker](https://hub.docker.com/r/tyrrrz/discordchatexporter): `docker pull tyrrrz/discordchatexporter`
|
||||||
<th>Downloads</th>
|
- 📦 [AUR](https://aur.archlinux.org/packages/discord-chat-exporter-cli): `discord-chat-exporter-cli`
|
||||||
<th>Supported OS</th>
|
- 📦 [Nix](https://search.nixos.org/packages?query=discordchatexporter-cli): `discordchatexporter-cli`
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td><b>GUI</b></td>
|
|
||||||
<td>
|
|
||||||
<ul>
|
|
||||||
<li>🟢 <b><a href="https://github.com/Tyrrrz/DiscordChatExporter/releases/latest">Stable release</a></b> (<code>DiscordChatExporter.zip</code>)</li>
|
|
||||||
<li>🟠 <a href="https://github.com/Tyrrrz/DiscordChatExporter/actions/workflows/main.yml">CI build</a> (<code>DiscordChatExporter.Gui.zip</code>)</li>
|
|
||||||
</ul>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<ul>
|
|
||||||
<li>Windows <b>7</b> or higher</li>
|
|
||||||
</ul>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><b>CLI</b></td>
|
|
||||||
<td>
|
|
||||||
<ul>
|
|
||||||
<li>🟢 <b><a href="https://github.com/Tyrrrz/DiscordChatExporter/releases/latest">Stable release</a></b> (<code>DiscordChatExporter.Cli.zip</code></li>
|
|
||||||
<li>🟠 <a href="https://github.com/Tyrrrz/DiscordChatExporter/actions/workflows/main.yml">CI build</a> (<code>DiscordChatExporter.Cli.zip</code>)</li>
|
|
||||||
<li>🐋 <a href="https://hub.docker.com/r/tyrrrz/discordchatexporter">Docker</a> (<code>tyrrrz/discordchatexporter</code>)</li>
|
|
||||||
<li>📦 <a href="https://aur.archlinux.org/packages/discord-chat-exporter-cli">AUR</a> (<code>discord-chat-exporter-cli</code>)</li>
|
|
||||||
<li>📦 <a href="https://search.nixos.org/packages?query=discordchatexporter-cli">Nix</a> (<code>discordchatexporter-cli</code>)</li>
|
|
||||||
</ul>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<ul>
|
|
||||||
<li>Windows <b>7</b> or higher</li>
|
|
||||||
<li>macOS <b>10.13 (High Sierra)</b> or higher</li>
|
|
||||||
<li>Linux (multiple distros)</li>
|
|
||||||
</ul>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
> **Important**:
|
> **Important**:
|
||||||
> To run **DiscordChatExporter**, you need to make sure that the **.NET 8.0 Runtime** is installed.
|
> To run **DiscordChatExporter**, you need to make sure that the **.NET 8.0 Runtime** is installed.
|
||||||
|
@ -107,8 +69,8 @@ The following table lists all available download options:
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- Graphical user interface (Windows)
|
- Graphical and command-line interfaces
|
||||||
- Command-line interface (Windows, Linux, macOS)
|
- Fully cross-platform
|
||||||
- Authentication via either a user or a bot token
|
- Authentication via either a user or a bot token
|
||||||
- Multiple output formats: HTML (dark/light), TXT, CSV, JSON
|
- Multiple output formats: HTML (dark/light), TXT, CSV, JSON
|
||||||
- Support for markdown, attachments, embeds, emoji, and other rich media features
|
- Support for markdown, attachments, embeds, emoji, and other rich media features
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue