Compare commits
2 Commits
bc8c0396a6
...
d989fdf2f2
| Author | SHA1 | Date | |
|---|---|---|---|
| d989fdf2f2 | |||
| 885261b384 |
@@ -1,6 +1,7 @@
|
|||||||
using LiquidCode.Domain.Enums;
|
using LiquidCode.Domain.Enums;
|
||||||
using LiquidCode.Domain.Interfaces.Services;
|
using LiquidCode.Domain.Interfaces.Services;
|
||||||
using LiquidCode.Infrastructure.External.S3;
|
using LiquidCode.Infrastructure.External.S3;
|
||||||
|
using LiquidCode.Shared.Constants;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
namespace LiquidCode.Domain.Services;
|
namespace LiquidCode.Domain.Services;
|
||||||
@@ -69,14 +70,15 @@ public class MediaService : IMediaService
|
|||||||
|
|
||||||
public MediaType GetMediaType(string fileName)
|
public MediaType GetMediaType(string fileName)
|
||||||
{
|
{
|
||||||
var extension = Path.GetExtension(fileName).ToLowerInvariant();
|
var extension = Path.GetExtension(fileName);
|
||||||
|
|
||||||
return extension switch
|
return extension switch
|
||||||
{
|
{
|
||||||
".jpg" or ".jpeg" or ".png" or ".gif" or ".bmp" or ".tiff" or ".webp" => MediaType.Images,
|
_ when MediaTypeExtensions.ImageExtensions.Contains(extension) => MediaType.Images,
|
||||||
".mp4" or ".avi" or ".mkv" or ".mov" or ".wmv" or ".flv" or ".webm" => MediaType.Videos,
|
_ when MediaTypeExtensions.VideoExtensions.Contains(extension) => MediaType.Videos,
|
||||||
".mp3" or ".wav" or ".flac" or ".aac" or ".ogg" or ".wma" => MediaType.Audio,
|
_ when MediaTypeExtensions.AudioExtensions.Contains(extension) => MediaType.Audio,
|
||||||
".zip" or ".rar" or ".7z" or ".tar" or ".gz" or ".bz2" => MediaType.Archives,
|
_ when MediaTypeExtensions.ArchiveExtensions.Contains(extension) => MediaType.Archives,
|
||||||
".txt" or ".md" or ".markdown" or ".tex" or ".latex" => MediaType.Documents,
|
_ when MediaTypeExtensions.DocumentExtensions.Contains(extension) => MediaType.Documents,
|
||||||
_ => MediaType.Other
|
_ => MediaType.Other
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
74
LiquidCode/Shared/Constants/MediaTypeExtensions.cs
Normal file
74
LiquidCode/Shared/Constants/MediaTypeExtensions.cs
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
namespace LiquidCode.Shared.Constants;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Константы для определения типов медиа файлов
|
||||||
|
/// </summary>
|
||||||
|
public static class MediaTypeExtensions
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Расширения для изображений
|
||||||
|
/// </summary>
|
||||||
|
public static readonly HashSet<string> ImageExtensions = new(StringComparer.OrdinalIgnoreCase)
|
||||||
|
{
|
||||||
|
".jpg",
|
||||||
|
".jpeg",
|
||||||
|
".png",
|
||||||
|
".gif",
|
||||||
|
".bmp",
|
||||||
|
".tiff",
|
||||||
|
".webp"
|
||||||
|
};
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Расширения для видео
|
||||||
|
/// </summary>
|
||||||
|
public static readonly HashSet<string> VideoExtensions = new(StringComparer.OrdinalIgnoreCase)
|
||||||
|
{
|
||||||
|
".mp4",
|
||||||
|
".avi",
|
||||||
|
".mkv",
|
||||||
|
".mov",
|
||||||
|
".wmv",
|
||||||
|
".flv",
|
||||||
|
".webm"
|
||||||
|
};
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Расширения для аудио
|
||||||
|
/// </summary>
|
||||||
|
public static readonly HashSet<string> AudioExtensions = new(StringComparer.OrdinalIgnoreCase)
|
||||||
|
{
|
||||||
|
".mp3",
|
||||||
|
".wav",
|
||||||
|
".flac",
|
||||||
|
".aac",
|
||||||
|
".ogg",
|
||||||
|
".wma"
|
||||||
|
};
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Расширения для архивов
|
||||||
|
/// </summary>
|
||||||
|
public static readonly HashSet<string> ArchiveExtensions = new(StringComparer.OrdinalIgnoreCase)
|
||||||
|
{
|
||||||
|
".zip",
|
||||||
|
".rar",
|
||||||
|
".7z",
|
||||||
|
".tar",
|
||||||
|
".gz",
|
||||||
|
".bz2"
|
||||||
|
};
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Расширения для текстовых документов (включая JSON)
|
||||||
|
/// </summary>
|
||||||
|
public static readonly HashSet<string> DocumentExtensions = new(StringComparer.OrdinalIgnoreCase)
|
||||||
|
{
|
||||||
|
".txt",
|
||||||
|
".md",
|
||||||
|
".markdown",
|
||||||
|
".tex",
|
||||||
|
".latex",
|
||||||
|
".json"
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user