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)