Files
tytdcompanion/Pages/Music/Albums/AlbumInfo.cs
T
2026-03-15 22:15:34 -05:00

30 lines
1.3 KiB
C#

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<AlbumSongLink> 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());
}
}
}