Commit graph

43 commits

Author SHA1 Message Date
Kornelius Rohrschneider 90ed829375
Added existing export search
Previously, an existing export could only be detected if it existed at the current file target path.
However, if the name of the channel, the channel parent or the guild has changed or if the default file name formatting has changed, the existing export's file name would be different, and it could therefore not be detected.
Therefore, the option to explicitly search for the existing export in the target directory has been added.
If it's activated (and there's no existing export at the current file target path), all file names in the target directory will be compared to a regex that matches any file name the channel export (with the same date range) might have had in the past.
If several existing exports have been detected, an error is logged and the channel export is aborted. Otherwise, it continues as before (only additionally moving the existing export files to the to the new file paths if they should be appended).
Whether this new option is activated is currently hardcoded.
The enum FileExistsHandling has been renamed to ExportExistsHandling to clarify that the setting applies to existing exports in general.

If file names of a directory are needed, they are collected lazily and stored for future use in other channel exports to avoid unnecessary I/O operations.
2025-10-30 00:04:37 +01:00
Kornelius Rohrschneider ad33600e70
Added UI options to set the file exists handling
The setting the exporter uses to handle existing export files has been made configurable in both the CLI and the GUI (instead of being hardcoded):
- A prev-export option has been added to all CLI export commands, which sets the file exists handling for the respective command.
- A Previous Export option has been added to the GUI settings, which sets the file exists handling that's used for exports.
2025-10-26 01:28:24 +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 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 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 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 ac64d9943a
Self-contained export (#321) 2020-07-18 15:45:09 +03:00
Alexey Golub 8685a3d7e3 Rework architecture 2020-04-22 19:23:31 +03:00
Renamed from DiscordChatExporter.Core.Services/SettingsService.cs (Browse further)