feat(starlight): add episode image support to episode items

- Extend episode item tuple to include image field
- Update BuildEpisodeHtml to render episode images when available
- Maintain backward compatibility for episodes without images
This commit is contained in:
baliasnyifeliks 2026-01-14 09:47:29 +02:00
parent f32b2b2cc2
commit b7cd641da6

View File

@ -84,7 +84,7 @@ namespace StarLight.Controllers
if (episodes == null || episodes.Count == 0) if (episodes == null || episodes.Count == 0)
return OnError("starlight", proxyManager); return OnError("starlight", proxyManager);
var episodeItems = new List<(string name, object json)>(); var episodeItems = new List<(string name, object json, string image)>();
int index = 1; int index = 1;
foreach (var ep in episodes) foreach (var ep in episodes)
{ {
@ -107,7 +107,7 @@ namespace StarLight.Controllers
img = image img = image
}; };
episodeItems.Add((episodeName, jsonItem)); episodeItems.Add((episodeName, jsonItem, image));
index++; index++;
} }
@ -172,7 +172,7 @@ namespace StarLight.Controllers
return JsonSerializer.Serialize(payload, EpisodeJsonOptions); return JsonSerializer.Serialize(payload, EpisodeJsonOptions);
} }
private static string BuildEpisodeHtml(List<(string name, object json)> items) private static string BuildEpisodeHtml(List<(string name, object json, string image)> items)
{ {
var html = new StringBuilder(); var html = new StringBuilder();
bool firstjson = true; bool firstjson = true;
@ -192,7 +192,18 @@ namespace StarLight.Controllers
html.Append(JsonSerializer.Serialize(item.json, EpisodeJsonOptions)); html.Append(JsonSerializer.Serialize(item.json, EpisodeJsonOptions));
html.Append("'>"); html.Append("'>");
html.Append("<div class=\"videos__item-imgbox videos__movie-imgbox\"></div><div class=\"videos__item-title\">"); if (!string.IsNullOrEmpty(item.image))
{
html.Append("<div class=\"videos__item-imgbox videos__movie-imgbox\" style=\"background-image:url('");
HtmlEncode(item.image, html);
html.Append("')\"></div>");
}
else
{
html.Append("<div class=\"videos__item-imgbox videos__movie-imgbox\"></div>");
}
html.Append("<div class=\"videos__item-title\">");
HtmlEncode(item.name, html); HtmlEncode(item.name, html);
html.Append("</div></div>"); html.Append("</div></div>");