using Tesses.WebServer; using Scriban; using System.Web; namespace Tesses.YouTubeDownloader2025Companion { public class AlbumLink(string name, string id) { public string Albumname => HttpUtility.HtmlEncode(name); public string Albumurl => HttpUtility.HtmlAttributeEncode($"/music/album?id={HttpUtility.UrlEncode(id)}"); public string Imgurl => HttpUtility.HtmlAttributeEncode($"/api/v1/album-thumbnail?id={HttpUtility.UrlEncode(id)}"); } public static partial class Pages { private static ReloadingScript album_listing = new ReloadingScript("wwwroot/pages/music/albums/albums.sbnhtml"); public static string AlbumListing(string query, List links,int page) { return Components.Shell($"Album search {query}", album_listing.Render(new { Albums = links, Q = HttpUtility.HtmlAttributeEncode(query), Prev = HttpUtility.HtmlAttributeEncode($"/music/albums?q={HttpUtility.UrlEncode(query)}&page={(page == 1 ? 1 : page - 1)}"), Current = page, Next = HttpUtility.HtmlAttributeEncode($"/music/albums?q={HttpUtility.UrlEncode(query)}&page={page + 1}") }),Program.DefaultLinks(2)); } } }