using Tesses.WebServer; using Scriban; using System.Web; //using YouTubeMusicAPI.Models.Info; //using Acornima.Ast; //using YouTubeMusicAPI.Models; //using YouTubeMusicAPI.Models.Search; using Newtonsoft.Json; namespace Tesses.YouTubeDownloader2025Companion { public class AlbumSongLink(int? songNumber,string name,string albumId, string songId, TimeSpan dur) { public string Songnumber => songNumber.HasValue ? songNumber.Value.ToString() : "-"; public string Duration => dur.ToString("m\\:ss"); public string Songname => HttpUtility.HtmlEncode(name); public string Songurl => HttpUtility.HtmlAttributeEncode($"/music/song?albumId={HttpUtility.UrlEncode(albumId)}&songId={HttpUtility.UrlEncode(songId)}"); } public static partial class Pages { private static ReloadingScript album_info = new ReloadingScript("wwwroot/pages/music/albums/album-info.sbnhtml"); public static string AlbumInfo(string name, string id, List songLinks) { return Components.Shell($"Album info", album_info.Render(new { Name = HttpUtility.HtmlEncode(name), Songs = songLinks, Addvals = HttpUtility.HtmlAttributeEncode(JsonConvert.SerializeObject(new{id})) }),Program.DefaultLinks()); } } }