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.
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.
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.