37 lines
1.6 KiB
C#
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));
|
|
}
|
|
}
|
|
} |