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
dependabot[bot]
a383722469
Bump the nuget group with 13 updates ( #1431 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-02 16:08:07 +03:00
dependabot[bot]
a966bee140
Bump the nuget group with 12 updates ( #1429 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-02 19:50:14 +03:00
dependabot[bot]
8fcf5e5377
Bump the nuget group with 7 updates ( #1417 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-01 16:59:39 +03:00
Tyrrrz
187befcf11
Remove the now unnecessary extension method
2025-07-01 19:02:48 +03:00
dependabot[bot]
9e685a0375
Bump the nuget group with 15 updates ( #1408 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-01 19:00:52 +03:00
Tyrrrz
cc92b2cbe6
More cleanup
2025-06-08 22:53:10 +03:00
Tyrrrz
08718425f1
Clean up
2025-06-08 22:37:24 +03:00
Tyrrrz
22134108a4
Apply new formatting
2025-06-08 21:17:10 +03:00
dependabot[bot]
82499af25a
Bump CliFx and 9 others ( #1389 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-08 21:13:22 +03:00
Rimi Kanokawa
4a74ff8a02
Make the names assigned to unnamed group DMs predictable ( #1386 )
2025-06-02 02:01:15 +03:00
Mark Cilia Vincenti
7dfcf5ac19
Change InvalidFileNameChars to use FrozenSet instead of HashSet ( #1384 )
2025-06-02 01:48:25 +03:00
audinowho
d4fa8f0954
Support --include-threads in the export command ( #1343 )
2025-05-27 23:37:54 +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
f9fa35b6ad
Downgrade CSharpier
2025-05-03 23:40:59 +03:00
dependabot[bot]
7d2ebb04de
Bump the nuget group across 1 directory with 11 updates ( #1374 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-03 23:40:26 +03:00
Tyrrrz
1fadc0755b
Refactor after last changes
2025-04-21 00:45:26 +03:00
masmc05
7ddd55951c
Don't ignore next pages of archived threads
2025-04-20 00:25:35 +03:00
Tyrrrz
6fb197cf0b
Refactor
2025-04-02 00:34:52 +03:00
Leonardo Mosquera
7add81a472
Don't consider it an error if there is nothing to export ( #1349 )
2025-04-02 00:14:35 +03:00
dependabot[bot]
cf7580014c
Bump the nuget group across 1 directory with 12 updates ( #1361 )
...
Bumps the nuget group with 12 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [FluentAssertions](https://github.com/fluentassertions/fluentassertions ) | `8.1.1` | `8.2.0` |
| [Microsoft.Extensions.Configuration](https://github.com/dotnet/runtime ) | `9.0.2` | `9.0.3` |
| [Microsoft.Extensions.Configuration](https://github.com/dotnet/runtime ) | `9.0.2` | `9.0.3` |
| [Microsoft.Extensions.Configuration.EnvironmentVariables](https://github.com/dotnet/runtime ) | `9.0.2` | `9.0.3` |
| [Microsoft.Extensions.Configuration](https://github.com/dotnet/runtime ) | `9.0.2` | `9.0.3` |
| [Microsoft.Extensions.Configuration.UserSecrets](https://github.com/dotnet/runtime ) | `9.0.2` | `9.0.3` |
| [RazorBlade](https://github.com/ltrzesniewski/RazorBlade ) | `0.8.0` | `0.9.0` |
| [AngleSharp](https://github.com/AngleSharp/AngleSharp ) | `1.2.0` | `1.2.0` |
| [YoutubeExplode](https://github.com/Tyrrrz/YoutubeExplode ) | `6.5.3` | `6.5.4` |
| [Avalonia](https://github.com/AvaloniaUI/Avalonia ) | `11.2.5` | `11.2.6` |
| [Avalonia](https://github.com/AvaloniaUI/Avalonia ) | `11.2.5` | `11.2.6` |
| [Avalonia.Desktop](https://github.com/AvaloniaUI/Avalonia ) | `11.2.5` | `11.2.6` |
| [Avalonia](https://github.com/AvaloniaUI/Avalonia ) | `11.2.5` | `11.2.6` |
| [Avalonia.Diagnostics](https://github.com/AvaloniaUI/Avalonia ) | `11.2.5` | `11.2.6` |
| [Microsoft.Extensions.DependencyInjection](https://github.com/dotnet/runtime ) | `9.0.2` | `9.0.3` |
| [Onova](https://github.com/Tyrrrz/Onova ) | `2.6.12` | `2.6.13` |
Updates `FluentAssertions` from 8.1.1 to 8.2.0
- [Release notes](https://github.com/fluentassertions/fluentassertions/releases )
- [Changelog](https://github.com/fluentassertions/fluentassertions/blob/main/AcceptApiChanges.ps1 )
- [Commits](https://github.com/fluentassertions/fluentassertions/compare/8.1.1...8.2.0 )
Updates `Microsoft.Extensions.Configuration` from 9.0.2 to 9.0.3
- [Release notes](https://github.com/dotnet/runtime/releases )
- [Commits](https://github.com/dotnet/runtime/compare/v9.0.2...v9.0.3 )
Updates `Microsoft.Extensions.Configuration` from 9.0.2 to 9.0.3
- [Release notes](https://github.com/dotnet/runtime/releases )
- [Commits](https://github.com/dotnet/runtime/compare/v9.0.2...v9.0.3 )
Updates `Microsoft.Extensions.Configuration.EnvironmentVariables` from 9.0.2 to 9.0.3
- [Release notes](https://github.com/dotnet/runtime/releases )
- [Commits](https://github.com/dotnet/runtime/compare/v9.0.2...v9.0.3 )
Updates `Microsoft.Extensions.Configuration` from 9.0.2 to 9.0.3
- [Release notes](https://github.com/dotnet/runtime/releases )
- [Commits](https://github.com/dotnet/runtime/compare/v9.0.2...v9.0.3 )
Updates `Microsoft.Extensions.Configuration.UserSecrets` from 9.0.2 to 9.0.3
- [Release notes](https://github.com/dotnet/runtime/releases )
- [Commits](https://github.com/dotnet/runtime/compare/v9.0.2...v9.0.3 )
Updates `RazorBlade` from 0.8.0 to 0.9.0
- [Release notes](https://github.com/ltrzesniewski/RazorBlade/releases )
- [Commits](https://github.com/ltrzesniewski/RazorBlade/compare/v0.8.0...v0.9.0 )
Updates `AngleSharp` from 1.2.0 to 1.2.0
- [Release notes](https://github.com/AngleSharp/AngleSharp/releases )
- [Changelog](https://github.com/AngleSharp/AngleSharp/blob/devel/CHANGELOG.md )
- [Commits](https://github.com/AngleSharp/AngleSharp/compare/1.2.0...1.2.0 )
Updates `YoutubeExplode` from 6.5.3 to 6.5.4
- [Release notes](https://github.com/Tyrrrz/YoutubeExplode/releases )
- [Commits](https://github.com/Tyrrrz/YoutubeExplode/compare/6.5.3...6.5.4 )
Updates `Avalonia` from 11.2.5 to 11.2.6
- [Release notes](https://github.com/AvaloniaUI/Avalonia/releases )
- [Commits](https://github.com/AvaloniaUI/Avalonia/compare/11.2.5...11.2.6 )
Updates `Avalonia` from 11.2.5 to 11.2.6
- [Release notes](https://github.com/AvaloniaUI/Avalonia/releases )
- [Commits](https://github.com/AvaloniaUI/Avalonia/compare/11.2.5...11.2.6 )
Updates `Avalonia.Desktop` from 11.2.5 to 11.2.6
- [Release notes](https://github.com/AvaloniaUI/Avalonia/releases )
- [Commits](https://github.com/AvaloniaUI/Avalonia/compare/11.2.5...11.2.6 )
Updates `Avalonia` from 11.2.5 to 11.2.6
- [Release notes](https://github.com/AvaloniaUI/Avalonia/releases )
- [Commits](https://github.com/AvaloniaUI/Avalonia/compare/11.2.5...11.2.6 )
Updates `Avalonia.Diagnostics` from 11.2.5 to 11.2.6
- [Release notes](https://github.com/AvaloniaUI/Avalonia/releases )
- [Commits](https://github.com/AvaloniaUI/Avalonia/compare/11.2.5...11.2.6 )
Updates `Microsoft.Extensions.DependencyInjection` from 9.0.2 to 9.0.3
- [Release notes](https://github.com/dotnet/runtime/releases )
- [Commits](https://github.com/dotnet/runtime/compare/v9.0.2...v9.0.3 )
Updates `Onova` from 2.6.12 to 2.6.13
- [Release notes](https://github.com/Tyrrrz/Onova/releases )
- [Commits](https://github.com/Tyrrrz/Onova/compare/2.6.12...2.6.13 )
---
updated-dependencies:
- dependency-name: FluentAssertions
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget
- dependency-name: Microsoft.Extensions.Configuration
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget
- dependency-name: Microsoft.Extensions.Configuration
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget
- dependency-name: Microsoft.Extensions.Configuration.EnvironmentVariables
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget
- dependency-name: Microsoft.Extensions.Configuration
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget
- dependency-name: Microsoft.Extensions.Configuration.UserSecrets
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget
- dependency-name: RazorBlade
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget
- dependency-name: AngleSharp
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget
- dependency-name: YoutubeExplode
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget
- dependency-name: Avalonia
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget
- dependency-name: Avalonia
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget
- dependency-name: Avalonia.Desktop
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget
- dependency-name: Avalonia
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget
- dependency-name: Avalonia.Diagnostics
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget
- dependency-name: Microsoft.Extensions.DependencyInjection
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget
- dependency-name: Onova
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-01 18:58:39 +03:00
Tyrrrz
5bbb706b3c
Fix nullref warning
2025-03-18 20:08:18 +02:00
Tyrrrz
fca6729ef0
Use Uri.EscapeDataString in a few others places
2025-03-18 19:35:24 +02:00
Lucas LaBuff
6f877cf543
Revert to Uri.EscapeDataString when encoding asset URIs ( #1355 )
2025-03-18 19:10:21 +02:00
Oleksii Holub
62babc0de5
Don't attempt to infer asset timestamp from message timestamp ( #1352 )
...
This is inaccurate and somewhat works only for attachments anyway. Not worth the overhead.
2025-03-13 21:43:19 +02:00
Tyrrrz
9e115562dc
Use WebUtility.UrlEncode instead of Uri.EscapeDataString
2025-03-11 21:48:02 +02:00
Oleksii Holub
db50a2bb96
Fix file path encoding edge cases in HTML export ( #1351 )
2025-03-10 19:11:17 +02:00
dependabot[bot]
b39d015133
Bump the nuget group with 15 updates ( #1347 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-03 21:42:10 +02:00
dependabot[bot]
7663f8ed31
Bump the nuget group with 14 updates ( #1340 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-02 21:50:25 +02:00
Tyrrrz
a9eca1ceb2
Formatting
2025-01-01 16:22:08 +02:00
dependabot[bot]
45ff1daff3
Bump the nuget group with 12 updates ( #1329 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-01 13:13:45 +02:00
Ritiek Malhotra
a9acf17375
Prefer message timestamp over the last-modified header for asset file dates ( #1321 )
2024-12-12 19:55:44 +02:00
dependabot[bot]
bf417db80c
Bump the nuget group with 15 updates ( #1318 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-01 18:51:14 +02:00
Tyrrrz
0fa5e93f0d
Use .NET 9
2024-11-12 22:19:58 +02:00
Tyrrrz
e664eab5fb
Fix recursive initialization issue
2024-11-06 20:16:53 +02:00
Tyrrrz
1fb6156187
Refactor
2024-11-06 19:36:34 +02:00
Oleksii Holub
789e5af8ba
Include inline emoji in JSON export ( #1311 )
2024-11-06 19:23:40 +02:00
dependabot[bot]
56fa6ee150
Bump the nuget group with 7 updates ( #1313 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-02 00:47:21 +02:00
Tyrrrz
09e0b3f133
Format stuff
2024-10-26 21:41:16 +03:00
dependabot[bot]
f5cdd5c8be
Bump the nuget group with 8 updates ( #1302 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-01 21:10:21 +03:00
dependabot[bot]
8519ec0fff
Bump the nuget group with 9 updates ( #1283 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-01 19:05:04 +03:00
Mark Cilia Vincenti
bb14e3431d
Bump AsyncKeyedLock to 7.0.1 ( #1276 )
2024-08-26 17:23:29 +03:00
Oleksii Holub
522789e01d
Limit recursion depth in markdown parser to prevent stack overflow ( #1273 )
2024-08-14 23:52:03 +03:00
Tyrrrz
10adba3a4d
Format schformat
2024-08-11 00:10:23 +03:00
Tyrrrz
73e2e0624b
Use a few new APIs
2024-08-10 22:28:07 +03:00
dependabot[bot]
4e98c79313
Bump the nuget group with 8 updates ( #1268 )
...
Bumps the nuget group with 9 updates:
| Package | From | To |
| --- | --- | --- |
| [xunit](https://github.com/xunit/xunit ) | `2.8.1` | `2.9.0` |
| [xunit.runner.visualstudio](https://github.com/xunit/visualstudio.xunit ) | `2.8.1` | `2.8.2` |
| [AsyncKeyedLock](https://github.com/MarkCiliaVincenti/AsyncKeyedLock ) | `6.4.2` | `7.0.0` |
| [YoutubeExplode](https://github.com/Tyrrrz/YoutubeExplode ) | `6.3.16` | `6.4.0` |
| [Avalonia](https://github.com/AvaloniaUI/Avalonia ) | `11.0.11` | `11.1.1` |
| [Avalonia.Desktop](https://github.com/AvaloniaUI/Avalonia ) | `11.0.11` | `11.1.1` |
| [Avalonia.Diagnostics](https://github.com/AvaloniaUI/Avalonia ) | `11.0.11` | `11.1.1` |
| [Material.Avalonia](https://github.com/AvaloniaCommunity/Material.Avalonia ) | `3.6.0` | `3.7.2` |
| [Avalonia](https://github.com/AvaloniaUI/Avalonia ) | `11.0.11` | `11.1.0` |
Updates `xunit` from 2.8.1 to 2.9.0
- [Commits](https://github.com/xunit/xunit/compare/2.8.1...2.9.0 )
Updates `xunit.runner.visualstudio` from 2.8.1 to 2.8.2
- [Release notes](https://github.com/xunit/visualstudio.xunit/releases )
- [Commits](https://github.com/xunit/visualstudio.xunit/compare/2.8.1...2.8.2 )
Updates `AsyncKeyedLock` from 6.4.2 to 7.0.0
- [Release notes](https://github.com/MarkCiliaVincenti/AsyncKeyedLock/releases )
- [Commits](https://github.com/MarkCiliaVincenti/AsyncKeyedLock/compare/6.4.2...7.0.0 )
Updates `YoutubeExplode` from 6.3.16 to 6.4.0
- [Release notes](https://github.com/Tyrrrz/YoutubeExplode/releases )
- [Commits](https://github.com/Tyrrrz/YoutubeExplode/compare/6.3.16...6.4 )
Updates `Avalonia` from 11.0.11 to 11.1.1
- [Release notes](https://github.com/AvaloniaUI/Avalonia/releases )
- [Commits](https://github.com/AvaloniaUI/Avalonia/compare/11.0.11...11.1.1 )
Updates `Avalonia.Desktop` from 11.0.11 to 11.1.1
- [Release notes](https://github.com/AvaloniaUI/Avalonia/releases )
- [Commits](https://github.com/AvaloniaUI/Avalonia/compare/11.0.11...11.1.1 )
Updates `Avalonia` from 11.0.11 to 11.1.1
- [Release notes](https://github.com/AvaloniaUI/Avalonia/releases )
- [Commits](https://github.com/AvaloniaUI/Avalonia/compare/11.0.11...11.1.1 )
Updates `Avalonia.Diagnostics` from 11.0.11 to 11.1.1
- [Release notes](https://github.com/AvaloniaUI/Avalonia/releases )
- [Commits](https://github.com/AvaloniaUI/Avalonia/compare/11.0.11...11.1.1 )
Updates `Avalonia` from 11.0.11 to 11.1.1
- [Release notes](https://github.com/AvaloniaUI/Avalonia/releases )
- [Commits](https://github.com/AvaloniaUI/Avalonia/compare/11.0.11...11.1.1 )
Updates `Material.Avalonia` from 3.6.0 to 3.7.2
- [Release notes](https://github.com/AvaloniaCommunity/Material.Avalonia/releases )
- [Commits](https://github.com/AvaloniaCommunity/Material.Avalonia/compare/v3.6.0...v3.7.2 )
Updates `Avalonia` from 11.0.11 to 11.1.0
- [Release notes](https://github.com/AvaloniaUI/Avalonia/releases )
- [Commits](https://github.com/AvaloniaUI/Avalonia/compare/11.0.11...11.1.1 )
---
updated-dependencies:
- dependency-name: xunit
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget
- dependency-name: xunit.runner.visualstudio
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget
- dependency-name: AsyncKeyedLock
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: nuget
- dependency-name: YoutubeExplode
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget
- dependency-name: Avalonia
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget
- dependency-name: Avalonia.Desktop
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget
- dependency-name: Avalonia
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget
- dependency-name: Avalonia.Diagnostics
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget
- dependency-name: Avalonia
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget
- dependency-name: Material.Avalonia
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget
- dependency-name: Avalonia
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-01 22:55:58 +03:00
dependabot[bot]
c63313e328
Bump the nuget group with 7 updates ( #1255 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-01 18:26:47 +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