Files
tytdcompanion/Pages/Music/MyAlbums/MyAlbumInfo.cs
T
2026-04-28 03:21:01 -05:00

37 lines
1.6 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 MyAlbumSongLink(int? songNumber,string name, string albumId, string songId, TimeSpan dur, string btn) {
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/mysong?albumId={HttpUtility.UrlEncode(albumId)}&songId={HttpUtility.UrlEncode(songId)}");
public string Btn => btn;
}
public static partial class Pages {
private static ReloadingScript myalbum_info = new ReloadingScript("wwwroot/pages/music/myalbums/album-info.sbnhtml");
public static string MyAlbumInfo(string name, string id, List<MyAlbumSongLink> songLinks, bool hasAny, string artists)
{
return Components.Shell($"Album info", myalbum_info.Render(new {
Name = HttpUtility.HtmlEncode(name),
Songs = songLinks,
Addvals = HttpUtility.HtmlAttributeEncode(JsonConvert.SerializeObject(new{id})),
Hasanysongs = hasAny,
Zipurl = HttpUtility.HtmlAttributeEncode($"/api/v1/album.zip?albumId={HttpUtility.UrlEncode(id)}"),
Artists = artists
}),Program.DefaultLinks(2));
}
}
}