First commit

This commit is contained in:
2026-03-15 22:15:34 -05:00
commit 0858a8a751
79 changed files with 6010 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
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());
}
}
}
+27
View File
@@ -0,0 +1,27 @@
using Tesses.WebServer;
using Scriban;
using System.Web;
namespace Tesses.YouTubeDownloader2025Companion
{
public class AlbumLink(string name, string id, string thumbnail) {
public string Albumname => HttpUtility.HtmlEncode(name);
public string Albumurl => HttpUtility.HtmlAttributeEncode($"/music/album?id={HttpUtility.UrlEncode(id)}");
public string Imgurl => HttpUtility.HtmlAttributeEncode(thumbnail);
}
public static partial class Pages {
private static ReloadingScript album_listing = new ReloadingScript("wwwroot/pages/music/albums/albums.sbnhtml");
public static string AlbumListing(string query, List<AlbumLink> links,int page)
{
return Components.Shell($"Album search {query}", album_listing.Render(new {
Albums = links,
Q = HttpUtility.HtmlAttributeEncode(query),
Prev = HttpUtility.HtmlAttributeEncode($"/music/albums?q={HttpUtility.UrlEncode(query)}&page={(page == 1 ? 1 : page - 1)}"),
Current = page,
Next = HttpUtility.HtmlAttributeEncode($"/music/albums?q={HttpUtility.UrlEncode(query)}&page={page + 1}")
}),Program.DefaultLinks());
}
}
}