mirror of
https://github.com/spacebarchat/server.git
synced 2026-04-01 07:05:40 +00:00
35 lines
1.3 KiB
C#
35 lines
1.3 KiB
C#
using System.ComponentModel;
|
|
using ImageMagick;
|
|
|
|
namespace Spacebar.AdminApi.TestClient.Services;
|
|
|
|
public static class Mimes {
|
|
private static string PrintLogged(string msg, string mime) {
|
|
Console.WriteLine($"{msg}: {mime}");
|
|
return mime;
|
|
}
|
|
|
|
public static MagickFormat GetFormatForExtension(string extension) {
|
|
extension = extension.ToLower();
|
|
// ban some values...
|
|
if (extension == "screenshot") throw new AccessViolationException("Disallowed extension: " + extension);
|
|
|
|
var matchingFormat = Enum.GetNames(typeof(MagickFormat)).FirstOrDefault(f => f.ToLower() == extension);
|
|
if (string.IsNullOrWhiteSpace(matchingFormat)) throw new InvalidEnumArgumentException("Unknown format: " + extension);
|
|
if (Enum.TryParse(matchingFormat, out MagickFormat fmt)) {
|
|
return fmt;
|
|
}
|
|
|
|
throw new InvalidEnumArgumentException("Unknown format: " + extension);
|
|
}
|
|
|
|
public static string GetMime(MagickFormat fmt) => fmt switch {
|
|
MagickFormat.Png => "image/png",
|
|
MagickFormat.Jpeg => "image/jpeg",
|
|
MagickFormat.Gif => "image/gif",
|
|
MagickFormat.Bmp => "image/bmp",
|
|
MagickFormat.Tiff => "image/tiff",
|
|
MagickFormat.WebP => "image/webp",
|
|
_ => PrintLogged("Unknown mime for format " + fmt.ToString() + "!", "application/octet-stream")
|
|
};
|
|
} |