30 lines
1.3 KiB
C#
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(2));
|
|
}
|
|
}
|
|
} |