diff --git a/DiscordChatExporter.Cli/DiscordChatExporter.Cli.csproj b/DiscordChatExporter.Cli/DiscordChatExporter.Cli.csproj index 7cceb1b0..e12c0443 100644 --- a/DiscordChatExporter.Cli/DiscordChatExporter.Cli.csproj +++ b/DiscordChatExporter.Cli/DiscordChatExporter.Cli.csproj @@ -9,7 +9,6 @@ - diff --git a/DiscordChatExporter.Core/Discord/Data/Channel.cs b/DiscordChatExporter.Core/Discord/Data/Channel.cs index aee392e3..bc525a16 100644 --- a/DiscordChatExporter.Core/Discord/Data/Channel.cs +++ b/DiscordChatExporter.Core/Discord/Data/Channel.cs @@ -3,7 +3,6 @@ using System.Text.Json; using DiscordChatExporter.Core.Discord.Data.Common; using DiscordChatExporter.Core.Utils.Extensions; using JsonExtensions.Reading; -using Tyrrrz.Extensions; namespace DiscordChatExporter.Core.Discord.Data { @@ -55,7 +54,7 @@ namespace DiscordChatExporter.Core.Discord.Data json.GetPropertyOrNull("name")?.GetStringOrNull() ?? // DM channel json.GetPropertyOrNull("recipients")?.EnumerateArray().Select(User.Parse).Select(u => u.Name) - .JoinToString(", ") ?? + .Pipe(s => string.Join(", ", s)) ?? // Fallback id.ToString(); diff --git a/DiscordChatExporter.Core/Discord/Data/Emoji.cs b/DiscordChatExporter.Core/Discord/Data/Emoji.cs index ca1253a8..adf8bcd5 100644 --- a/DiscordChatExporter.Core/Discord/Data/Emoji.cs +++ b/DiscordChatExporter.Core/Discord/Data/Emoji.cs @@ -3,7 +3,6 @@ using System.Text.Json; using DiscordChatExporter.Core.Utils; using DiscordChatExporter.Core.Utils.Extensions; using JsonExtensions.Reading; -using Tyrrrz.Extensions; namespace DiscordChatExporter.Core.Discord.Data { @@ -24,12 +23,13 @@ namespace DiscordChatExporter.Core.Discord.Data public partial record Emoji { - private static string GetTwemojiName(string name) => name - .GetRunes() - // Variant selector rune is skipped in Twemoji names - .Where(r => r.Value != 0xfe0f) - .Select(r => r.Value.ToString("x")) - .JoinToString("-"); + private static string GetTwemojiName(string name) => string.Join("-", + name + .GetRunes() + // Variant selector rune is skipped in Twemoji names + .Where(r => r.Value != 0xfe0f) + .Select(r => r.Value.ToString("x")) + ); public static string GetImageUrl(string? id, string name, bool isAnimated) { diff --git a/DiscordChatExporter.Core/DiscordChatExporter.Core.csproj b/DiscordChatExporter.Core/DiscordChatExporter.Core.csproj index c5083e04..c3cde656 100644 --- a/DiscordChatExporter.Core/DiscordChatExporter.Core.csproj +++ b/DiscordChatExporter.Core/DiscordChatExporter.Core.csproj @@ -9,7 +9,6 @@ - diff --git a/DiscordChatExporter.Core/Exporting/Writers/PlainTextMessageWriter.cs b/DiscordChatExporter.Core/Exporting/Writers/PlainTextMessageWriter.cs index b72c583b..b80fedb8 100644 --- a/DiscordChatExporter.Core/Exporting/Writers/PlainTextMessageWriter.cs +++ b/DiscordChatExporter.Core/Exporting/Writers/PlainTextMessageWriter.cs @@ -6,7 +6,6 @@ using System.Threading.Tasks; using DiscordChatExporter.Core.Discord.Data; using DiscordChatExporter.Core.Discord.Data.Embeds; using DiscordChatExporter.Core.Exporting.Writers.MarkdownVisitors; -using Tyrrrz.Extensions; namespace DiscordChatExporter.Core.Exporting.Writers { @@ -125,7 +124,7 @@ namespace DiscordChatExporter.Core.Exporting.Writers public override async ValueTask WritePreambleAsync(CancellationToken cancellationToken = default) { - await _writer.WriteLineAsync('='.Repeat(62)); + await _writer.WriteLineAsync(new string('=', 62)); await _writer.WriteLineAsync($"Guild: {Context.Request.Guild.Name}"); await _writer.WriteLineAsync($"Channel: {Context.Request.Channel.Category.Name} / {Context.Request.Channel.Name}"); @@ -138,7 +137,7 @@ namespace DiscordChatExporter.Core.Exporting.Writers if (Context.Request.Before is not null) await _writer.WriteLineAsync($"Before: {Context.FormatDate(Context.Request.Before.Value.ToDate())}"); - await _writer.WriteLineAsync('='.Repeat(62)); + await _writer.WriteLineAsync(new string('=', 62)); await _writer.WriteLineAsync(); } @@ -167,9 +166,9 @@ namespace DiscordChatExporter.Core.Exporting.Writers public override async ValueTask WritePostambleAsync(CancellationToken cancellationToken = default) { - await _writer.WriteLineAsync('='.Repeat(62)); + await _writer.WriteLineAsync(new string('=', 62)); await _writer.WriteLineAsync($"Exported {MessagesWritten:N0} message(s)"); - await _writer.WriteLineAsync('='.Repeat(62)); + await _writer.WriteLineAsync(new string('=', 62)); } public override async ValueTask DisposeAsync() diff --git a/DiscordChatExporter.Gui/DiscordChatExporter.Gui.csproj b/DiscordChatExporter.Gui/DiscordChatExporter.Gui.csproj index 666c3c3d..20eedd5a 100644 --- a/DiscordChatExporter.Gui/DiscordChatExporter.Gui.csproj +++ b/DiscordChatExporter.Gui/DiscordChatExporter.Gui.csproj @@ -24,7 +24,6 @@ - diff --git a/DiscordChatExporter.Gui/ViewModels/Dialogs/SettingsViewModel.cs b/DiscordChatExporter.Gui/ViewModels/Dialogs/SettingsViewModel.cs index bf1ebf2b..d372b871 100644 --- a/DiscordChatExporter.Gui/ViewModels/Dialogs/SettingsViewModel.cs +++ b/DiscordChatExporter.Gui/ViewModels/Dialogs/SettingsViewModel.cs @@ -1,6 +1,6 @@ -using DiscordChatExporter.Gui.Services; +using System; +using DiscordChatExporter.Gui.Services; using DiscordChatExporter.Gui.ViewModels.Framework; -using Tyrrrz.Extensions; namespace DiscordChatExporter.Gui.ViewModels.Dialogs { @@ -35,18 +35,16 @@ namespace DiscordChatExporter.Gui.ViewModels.Dialogs public int ParallelLimit { get => _settingsService.ParallelLimit; - set => _settingsService.ParallelLimit = value.Clamp(1, 10); + set => _settingsService.ParallelLimit = Math.Clamp(value, 1, 10); } - + public bool ShouldReuseMedia { get => _settingsService.ShouldReuseMedia; set => _settingsService.ShouldReuseMedia = value; } - public SettingsViewModel(SettingsService settingsService) - { + public SettingsViewModel(SettingsService settingsService) => _settingsService = settingsService; - } } } \ No newline at end of file diff --git a/DiscordChatExporter.Gui/ViewModels/RootViewModel.cs b/DiscordChatExporter.Gui/ViewModels/RootViewModel.cs index 48007822..1fa35dbe 100644 --- a/DiscordChatExporter.Gui/ViewModels/RootViewModel.cs +++ b/DiscordChatExporter.Gui/ViewModels/RootViewModel.cs @@ -15,7 +15,6 @@ using DiscordChatExporter.Gui.ViewModels.Framework; using Gress; using MaterialDesignThemes.Wpf; using Stylet; -using Tyrrrz.Extensions; namespace DiscordChatExporter.Gui.ViewModels { @@ -69,11 +68,11 @@ namespace DiscordChatExporter.Gui.ViewModels ); ProgressManager.Bind(o => o.IsActive, (_, _) => - IsProgressIndeterminate = ProgressManager.IsActive && ProgressManager.Progress.IsEither(0, 1) + IsProgressIndeterminate = ProgressManager.IsActive && ProgressManager.Progress is <= 0 or >= 1 ); ProgressManager.Bind(o => o.Progress, (_, _) => - IsProgressIndeterminate = ProgressManager.IsActive && ProgressManager.Progress.IsEither(0, 1) + IsProgressIndeterminate = ProgressManager.IsActive && ProgressManager.Progress is <= 0 or >= 1 ); } @@ -243,7 +242,7 @@ namespace DiscordChatExporter.Gui.ViewModels { operation.Dispose(); } - }, _settingsService.ParallelLimit.ClampMin(1)); + }, Math.Max(1, _settingsService.ParallelLimit)); // Notify of overall completion if (successfulExportCount > 0)