Truncate long file names in MediaDownloader

Fixes #344
pull/352/head
Alexey Golub 4 years ago
parent 47a1518cd9
commit 1fe4ecb3af

@ -46,7 +46,7 @@ namespace DiscordChatExporter.Domain.Exporting
var originalFileName = Regex.Match(url, @".+/([^?]*)").Groups[1].Value; var originalFileName = Regex.Match(url, @".+/([^?]*)").Groups[1].Value;
var fileName = !string.IsNullOrWhiteSpace(originalFileName) var fileName = !string.IsNullOrWhiteSpace(originalFileName)
? originalFileName ? $"{Path.GetFileNameWithoutExtension(originalFileName).Truncate(50)}{Path.GetExtension(originalFileName)}"
: GetRandomFileName(); : GetRandomFileName();
return PathEx.EscapePath(fileName); return PathEx.EscapePath(fileName);

@ -4,6 +4,11 @@ namespace DiscordChatExporter.Domain.Internal.Extensions
{ {
internal static class StringExtensions 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) => public static StringBuilder AppendIfNotEmpty(this StringBuilder builder, char value) =>
builder.Length > 0 builder.Length > 0
? builder.Append(value) ? builder.Append(value)

Loading…
Cancel
Save