57 Commits

Author SHA1 Message Date
Copilot
b9a3001c11 Add DISCORDCHATEXPORTER_SETTINGS_PATH env var override for settings file path (#1500)
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-03-02 20:06:20 +02:00
Tyrrrz
d490fd0a38 Improve, clean up encryption 2026-02-27 14:57:15 +02:00
Tyrrrz
7ff2347df1 Clean up 2026-02-27 14:32:27 +02:00
Tyrrrz
f0e9d3be1b Reorganize files 2026-02-27 14:14:43 +02:00
Copilot
eef0fc742d Encrypt Discord token at rest in settings file (machine-bound) (#1491)
* Initial plan

* Add token encryption when saving/loading settings

Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>

* Apply suggestion from @Tyrrrz

* Apply suggestion from @Tyrrrz

* Bind token encryption key to machine identity

Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>

* Switch to AES-GCM, hex encoding, and GetBytes/Fill improvements

Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>

* Address all review feedback: salt injection, code style, localization formatting

Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>

* Address latest review: ThisAssembly.Project, EnvironmentExtensions, inline Lazy, renames, localization wording

Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>

* Address latest review: layout comment, cipherSource, else block, MachineName fallback, csproj ordering

Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>

* Apply suggestion from @Tyrrrz

* Rename GetMachineId→TryGetMachineId, refactor Write to use single array with FillBytes

Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>

* Rename cipherSource→cipher in Read(), tokenBytes→tokenData in Write(), update layout comments

Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>

* Add cipherSource variable in Write(), update layout comment with size annotation

Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>

* Fix CSharpier formatting: inline multiline string assignments and reformat exception filter

Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>

* Quote EncryptionSalt argument to handle single quotes in secret value

Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>

* Revert double-quote fix on EncryptionSalt argument

Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>

* Apply suggestion from @Tyrrrz

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-27 14:01:25 +02:00
Copilot
c4bfb3424e Add option to reverse message order in exports (#1487)
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-02-26 21:14:57 +02:00
Copilot
12d98e9ab0 Add localization (#1482)
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-02-24 20:49:32 +02:00
Oleksii Holub
612ae2e894 Add a setting to control whether to respect advisory rate limits (#1342) 2025-05-12 19:52:47 +03:00
Tyrrrz
deca3fc1bf Use partial properties 2025-03-18 20:06:44 +02:00
Tyrrrz
aa377f3131 Don't use AppDomain 2024-08-18 19:03:22 +03:00
Tyrrrz
3b3423dd9b Clean up platform checks in update service 2024-05-24 01:28:35 +03:00
Tyrrrz
0e3969ca2d Use compile-time serialization for settings 2024-05-22 21:41:22 +03:00
Oleksii Holub
7a69c87b56 Use a 3-way theme switcher instead of a 2-way switcher (#1233) 2024-05-13 23:56:21 +03:00
Tyrrrz
9b3421e8a5 Remove changelog notification 2024-04-28 03:06:02 +03:00
Oleksii Holub
8525917a4c Make the GUI x-platform and adapt the CI/CD pipeline to accommodate that (#1222) 2024-04-28 02:24:23 +03:00
Oleksii Holub
b9c1c47474 Migrate to Avalonia (#1220) 2024-04-27 04:17:46 +03:00
Oleksii Holub
057beaacd6 Use null as the default locale, which resolves to the current system default locale (#1185) 2024-01-15 23:58:28 +02:00
Tyrrrz
4e3deb409c Update NuGet packages 2023-12-29 00:08:16 +02:00
Tyrrrz
619fe9ccf7 Refactor using c# 12 features 2023-12-10 22:38:34 +02:00
Tyrrrz
4896d748aa Update NuGet packages 2023-11-09 13:06:00 +02:00
Oleksii Holub
59344cedbe Replace the date format option with a locale option (#1130) 2023-09-07 14:34:08 +03:00
Tyrrrz
c422ac2351 Clean up 2023-08-30 18:43:12 +03:00
Tyrrrz
3740d64601 Optimize thread inclusion UX across GUI and CLI
Related to #1119
2023-08-28 22:08:51 +03:00
Tyrrrz
20f58963a6 Use CSharpier 2023-08-22 21:17:19 +03:00
Tyrrrz
c410e745b1 Add rudimentary thread support in GUI
Related to #1119
2023-08-22 21:14:34 +03:00
Tyrrrz
90d71c5b9e Clean up 2023-07-10 20:40:32 +03:00
Tyrrrz
31c7ae9312 Refactor 2023-05-20 07:09:19 +03:00
Tyrrrz
404542d973 Replace Tyrrrz.Settings with Cogwheel 2023-02-20 02:56:39 +02:00
Tyrrrz
d1647e8286 Add support for selectable assets directory in GUI 2023-02-17 21:30:10 +02:00
Tyrrrz
6620c6299c Move "reuse assets" option in GUI from settings to export dialog 2023-02-15 22:59:08 +02:00
Tyrrrz
20a952aec5 Add option to disable markdown formatting
Closes #741
2023-02-15 22:55:17 +02:00
Tyrrrz
f73d07a7c9 Normalize the default date format to the format Discord uses for the US client 2023-02-12 16:13:09 +02:00
Tyrrrz
1e7b8ec83f Show notification on first run after an update with a link to the changelog
Closes #487
2023-02-09 17:17:25 +02:00
Tyrrrz
6e56f29404 Update Ukraine support message 2023-01-10 22:25:35 +02:00
Tyrrrz
560a069c35 Refactor, rename the concept of "download media" to "download assets", including related mentions 2022-10-29 17:39:53 +03:00
Oleksii Holub
94ef4b6981 Support listing and exporting voice channels
Closes #874
2022-06-28 18:27:01 +03:00
Oleksii Holub
afb4bc67ae Auto-detect dark mode preference in GUI 2022-02-20 22:29:23 +02:00
Alexey Golub
2156c6cd0c Automatically detect token kind (#764) 2022-01-03 14:52:16 -08:00
Tyrrrz
880f400e2c C#10ify 2021-12-08 23:50:21 +02:00
Tyrrrz
7c88a21543 Convert several types to records 2021-11-09 23:15:56 +02:00
Lucas LaBuff
d39fc212b6 Filter which messages are exported (#622) 2021-07-07 12:14:40 -07:00
Tyrrrz
511af1e35c Refactor 2021-04-16 23:09:08 +03:00
Andrew Kolos
eb89ea5b40 Add partition by file size (#497) 2021-04-12 13:50:32 +03:00
Tyrrrz
3aef7faa1e Use is null/is not null 2021-03-09 21:57:26 +02:00
Tyrrrz
ebe4d58a42 Cleanup 2021-02-22 03:15:22 +02:00
Tyrrrz
1da80956dd Refactor 2020-10-24 21:15:58 +03:00
Andrew Kolos
520e023aff Stop redundantly downloading media when re-exporting (#395) 2020-10-23 16:38:15 +03:00
Alexey Golub
a6bf546e79 [GUI] Clean up the UI 2020-10-05 17:41:09 +03:00
Andrew Kolos
19f678ca01 [GUI] Add dark theme (#388) 2020-10-05 16:31:37 +03:00
Alexey Golub
ba66b52fa4 Use ValueTask instead of Task where possible 2020-07-18 15:57:51 +03:00