Commit graph

65 commits

Author SHA1 Message Date
Kornelius Rohrschneider da3bcefbb9
Added UI options to enable the existing export search
The setting on whether the existing export search is enabled or not has been made configurable in both the CLI and the GUI (instead of being hardcoded):
- A search-existing-exports option has been added to all CLI export commands, which enables the existing export search for the respective command.
- A Search for existing exports option has been added to the GUI settings, which enables the existing export search for exports.

Additionally, there have been several minor improvements:
- The ConsoleProgressLogger has been fixed to interpolate given messages (previously, the square brackets in the default export file names could cause an exception).
- The names of existing channel exports in log messages have been enclosed by quotation marks.
- The setting on how to handle existing export files has been renamed from prev-export / Previous Export to export-exists / Export Exists.
2025-10-30 01:40:59 +01:00
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
Kornelius Rohrschneider 5251ae0e95
Added explicit handling of existing export files
Previously, existing export files had just been overwritten by a new export.
This has been changed; instead, there are now several possible options on how to explicitly handle existing export files:
- Abort aborts the export if the channel had previously been exported.
- Overwrite removes the existing export before exporting the channel again.
- Append appends the existing export, which means that only messages after the last export will be exported.
The option that's used if a previous export is detected is currently hardcoded.

A safeguard has been added to prevent the exporter from accidentally overwriting any existing files.

Additionally, the creation of a Snowflake from a timestamp has been improved: If a Snowflake will be used to determine the messages starting at the given timestamp, it now won't precisely represent that timestamp anymore, but instead be the latest possible Snowflake just before that timestamp.
This is necessary to prevent the first Discord message in that specific millisecond from being excluded (which may have previously happened).
2025-10-25 19:17:00 +02:00
Tyrrrz 27a434a663 Format 2025-09-02 19:55:09 +03: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 09e0b3f133 Format stuff 2024-10-26 21:41:16 +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 9e7ad4d85c Fix naming inconsistency 2024-05-13 22:12:43 +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 619fe9ccf7 Refactor using c# 12 features 2023-12-10 22:38:34 +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 f1c094ac14 Implicitly enable threads if archived threads are enabled in GUI 2023-08-28 21:09:42 +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 03c5c1bc5e Clean up 2023-05-19 14:49:31 +03: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 6d3adf9fde Trigger output path prompt when clicking the export button, if the path hasn't been set yet 2023-02-14 19:34:20 +02:00
Tyrrrz a7f4fe0643 Don't reset output path if dialog is canceled 2023-02-14 17:08:52 +02:00
Tyrrrz c8d83beb8d Enhance output path selection in the GUI
Enables the use of template tokens when exporting multiple channels
Closes #676
2023-02-13 19:48:57 +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 ffe5544f9c Dowload fonts in HTML export when using download media 2022-04-07 20:26:12 +03:00
Oleksii Holub aea96d5eba Cleanup 2022-04-06 19:00:19 +03:00
Oleksii Holub 1daff4178d Cleanup GUI 2022-04-01 00:10:17 +03:00
Tyrrrz 4389b4e0bc Improve GUI 2021-12-14 01:26:59 +02:00
Tyrrrz 880f400e2c C#10ify 2021-12-08 23:50:21 +02:00
Tyrrrz 1db2bb4170 Remove Tyrrrz.Extensions package 2021-11-15 18:50:46 +02:00
Tyrrrz 2ab6773c17 [GUI] Show error in a dialog when pull or export fails, instead of crashing the whole app 2021-07-18 00:02:28 +03:00
Tyrrrz 650c55bbd1 Refactor 2021-07-17 23:53:13 +03:00
Lucas LaBuff d39fc212b6
Filter which messages are exported (#622) 2021-07-07 12:14:40 -07:00
Tyrrrz f8d55f406c [GUI] Cleanup ExportSetupViewModel & RootViewModel 2021-04-16 23:39:36 +03: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 3d9ee3b339 Embrace Snowflake as first class citizen 2020-12-27 19:42:21 +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 45926b0990 Refactor last commit 2020-08-07 21:41:10 +03:00
Alexey Golub ac64d9943a
Self-contained export (#321) 2020-07-18 15:45:09 +03:00
Alexey Golub d03be8b1dd More refactoring 2020-04-26 23:55:31 +03:00
Alexey Golub 88a4fa792b Refactor more 2020-04-22 21:59:10 +03:00