From 1fe4ecb3aff0db68bb8382b0d1498348d1bf4b0f Mon Sep 17 00:00:00 2001 From: Alexey Golub Date: Wed, 29 Jul 2020 20:58:38 +0300 Subject: [PATCH] Truncate long file names in MediaDownloader Fixes #344 --- DiscordChatExporter.Domain/Exporting/MediaDownloader.cs | 2 +- .../Internal/Extensions/StringExtensions.cs | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/DiscordChatExporter.Domain/Exporting/MediaDownloader.cs b/DiscordChatExporter.Domain/Exporting/MediaDownloader.cs index 570284b6..7cdb2332 100644 --- a/DiscordChatExporter.Domain/Exporting/MediaDownloader.cs +++ b/DiscordChatExporter.Domain/Exporting/MediaDownloader.cs @@ -46,7 +46,7 @@ namespace DiscordChatExporter.Domain.Exporting var originalFileName = Regex.Match(url, @".+/([^?]*)").Groups[1].Value; var fileName = !string.IsNullOrWhiteSpace(originalFileName) - ? originalFileName + ? $"{Path.GetFileNameWithoutExtension(originalFileName).Truncate(50)}{Path.GetExtension(originalFileName)}" : GetRandomFileName(); return PathEx.EscapePath(fileName); diff --git a/DiscordChatExporter.Domain/Internal/Extensions/StringExtensions.cs b/DiscordChatExporter.Domain/Internal/Extensions/StringExtensions.cs index 91344910..be6d74b3 100644 --- a/DiscordChatExporter.Domain/Internal/Extensions/StringExtensions.cs +++ b/DiscordChatExporter.Domain/Internal/Extensions/StringExtensions.cs @@ -4,6 +4,11 @@ namespace DiscordChatExporter.Domain.Internal.Extensions { internal static class StringExtensions { + public static string Truncate(this string str, int charCount) => + str.Length > charCount + ? str.Substring(0, charCount) + : str; + public static StringBuilder AppendIfNotEmpty(this StringBuilder builder, char value) => builder.Length > 0 ? builder.Append(value)