Initial commit - Media.RCL

This commit is contained in:
2026-08-05 21:16:09 +03:00
commit 685015a3a4
166 changed files with 7590 additions and 0 deletions
+47
View File
@@ -0,0 +1,47 @@
using Microsoft.AspNetCore.Components.Forms;
using System;
namespace Generic.Media.Components
{
public class MediaItemModel
{
public string Id { get; set; } = Guid.NewGuid().ToString();
public string? Url { get; set; }
public IBrowserFile? File { get; set; }
public MediaType Type { get; set; }
public string? AltText { get; set; }
public int Order { get; set; }
public bool IsLocal { get; set; }
public string? PreviewUrl { get; set; } // Blob URL for local files
}
public enum MediaType
{
Image,
Video,
YouTube,
Vimeo,
Unknown
}
public static class MediaHelper
{
public static MediaType GetType(string url)
{
if (string.IsNullOrWhiteSpace(url)) return MediaType.Image;
url = url.ToLower();
if (url.Contains("youtube.com") || url.Contains("youtu.be")) return MediaType.YouTube;
if (url.Contains("vimeo.com")) return MediaType.Vimeo;
if (url.EndsWith(".mp4") || url.EndsWith(".webm") || url.EndsWith(".ogg")) return MediaType.Video;
return MediaType.Image;
}
public static string GetYouTubeId(string url)
{
if (url.Contains("youtu.be/")) return url.Split("youtu.be/")[1].Split("?")[0];
if (url.Contains("v=")) return url.Split("v=")[1].Split("&")[0];
return "";
}
}
}