using Tesses.WebServer; using Scriban; using System.Web; namespace Tesses.YouTubeDownloader2025Companion { public class MySongLink(string name, string id, string btn) { public string Name => HttpUtility.HtmlEncode(name); public string Songname => HttpUtility.HtmlEncode(name); public string Songurl => HttpUtility.HtmlAttributeEncode($"/music/mysong?songId={HttpUtility.UrlEncode(id)}"); public string Btn => btn; } public static partial class Pages { private static ReloadingScript mysongs_listing = new ReloadingScript("wwwroot/pages/music/mysongs/songs.sbnhtml"); public static string MySongListing(string query, List links, int page) { return Components.Shell($"Artist search {query}", mysongs_listing.Render(new { Songs = links, Q = HttpUtility.HtmlAttributeEncode(query), Prev = HttpUtility.HtmlAttributeEncode($"/music/mysongs?q={HttpUtility.UrlEncode(query)}&page={(page == 1 ? 1 : page - 1)}"), Current = page, Next = HttpUtility.HtmlAttributeEncode($"/music/mysongs?q={HttpUtility.UrlEncode(query)}&page={page + 1}") }),Program.DefaultLinks()); } } }