add episode thumbnail to xmltv template (#2550)
This commit is contained in:
@@ -23,6 +23,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|||||||
- Add playback speed to playback troubleshooting output
|
- Add playback speed to playback troubleshooting output
|
||||||
- Speed is relative to realtime (1.0x is realtime)
|
- Speed is relative to realtime (1.0x is realtime)
|
||||||
- Speeds < 0.9x will be colored red, between 0.9x and 1.1x colored yellow, and > 1.1x colored green
|
- Speeds < 0.9x will be colored red, between 0.9x and 1.1x colored yellow, and > 1.1x colored green
|
||||||
|
- Add episode thumbnail artwork URL to XMLTV template
|
||||||
|
- By default, poster will be added as image with type "poster" and thumbnail will be added as image with type "still"
|
||||||
|
- Poster will continue to be added as icon by default
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Fix NVIDIA startup errors on arm64
|
- Fix NVIDIA startup errors on arm64
|
||||||
|
|||||||
@@ -126,6 +126,10 @@ public class RefreshChannelDataHandler : IRequestHandler<RefreshChannelData>
|
|||||||
.ThenInclude(em => em.Guids)
|
.ThenInclude(em => em.Guids)
|
||||||
.Include(p => p.Items)
|
.Include(p => p.Items)
|
||||||
.ThenInclude(i => i.MediaItem)
|
.ThenInclude(i => i.MediaItem)
|
||||||
|
.ThenInclude(i => (i as Episode).EpisodeMetadata)
|
||||||
|
.ThenInclude(em => em.Artwork)
|
||||||
|
.Include(p => p.Items)
|
||||||
|
.ThenInclude(i => i.MediaItem)
|
||||||
.ThenInclude(i => (i as Episode).Season)
|
.ThenInclude(i => (i as Episode).Season)
|
||||||
.ThenInclude(s => s.Show)
|
.ThenInclude(s => s.Show)
|
||||||
.ThenInclude(s => s.ShowMetadata)
|
.ThenInclude(s => s.ShowMetadata)
|
||||||
@@ -667,6 +671,7 @@ public class RefreshChannelDataHandler : IRequestHandler<RefreshChannelData>
|
|||||||
showMetadata.Guids ??= [];
|
showMetadata.Guids ??= [];
|
||||||
|
|
||||||
string artworkPath = GetPrioritizedArtworkPath(showMetadata);
|
string artworkPath = GetPrioritizedArtworkPath(showMetadata);
|
||||||
|
string thumbnailPath = GetPrioritizedArtworkPath(metadata);
|
||||||
|
|
||||||
var data = new
|
var data = new
|
||||||
{
|
{
|
||||||
@@ -687,6 +692,8 @@ public class RefreshChannelDataHandler : IRequestHandler<RefreshChannelData>
|
|||||||
ShowGenres = showMetadata.Genres.Map(g => g.Name).OrderBy(n => n),
|
ShowGenres = showMetadata.Genres.Map(g => g.Name).OrderBy(n => n),
|
||||||
EpisodeHasArtwork = !string.IsNullOrWhiteSpace(artworkPath),
|
EpisodeHasArtwork = !string.IsNullOrWhiteSpace(artworkPath),
|
||||||
EpisodeArtworkUrl = artworkPath,
|
EpisodeArtworkUrl = artworkPath,
|
||||||
|
EpisodeHasThumbnail = !string.IsNullOrWhiteSpace(thumbnailPath),
|
||||||
|
EpisodeThumbnailUrl = thumbnailPath,
|
||||||
SeasonNumber = templateEpisode.Season?.SeasonNumber ?? 0,
|
SeasonNumber = templateEpisode.Season?.SeasonNumber ?? 0,
|
||||||
metadata.EpisodeNumber,
|
metadata.EpisodeNumber,
|
||||||
ShowHasContentRating = !string.IsNullOrWhiteSpace(showMetadata.ContentRating),
|
ShowHasContentRating = !string.IsNullOrWhiteSpace(showMetadata.ContentRating),
|
||||||
|
|||||||
@@ -147,6 +147,8 @@ public class ArtworkController : ControllerBase
|
|||||||
GetPlexArtwork(plexMediaSourceId, $"/{path}", cancellationToken);
|
GetPlexArtwork(plexMediaSourceId, $"/{path}", cancellationToken);
|
||||||
|
|
||||||
[HttpGet("/artwork/thumbnails/plex/{plexMediaSourceId}/{*path}")]
|
[HttpGet("/artwork/thumbnails/plex/{plexMediaSourceId}/{*path}")]
|
||||||
|
[HttpHead("/iptv/artwork/thumbnails/plex/{plexMediaSourceId}/{*path}")]
|
||||||
|
[HttpGet("/iptv/artwork/thumbnails/plex/{plexMediaSourceId}/{*path}")]
|
||||||
public Task<IActionResult> GetPlexThumbnail(
|
public Task<IActionResult> GetPlexThumbnail(
|
||||||
int plexMediaSourceId,
|
int plexMediaSourceId,
|
||||||
string path,
|
string path,
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ Available values:
|
|||||||
- show_genres
|
- show_genres
|
||||||
- episode_has_artwork
|
- episode_has_artwork
|
||||||
- episode_artwork_url
|
- episode_artwork_url
|
||||||
|
- episode_has_thumbnail
|
||||||
|
- episode_thumbnail_url
|
||||||
- season_number
|
- season_number
|
||||||
- episode_number
|
- episode_number
|
||||||
- show_has_content_rating
|
- show_has_content_rating
|
||||||
@@ -46,6 +48,10 @@ The resulting XML will be minified by ErsatzTV - so feel free to keep things nic
|
|||||||
{{ end }}
|
{{ end }}
|
||||||
{{ if episode_has_artwork }}
|
{{ if episode_has_artwork }}
|
||||||
<icon src="{{ episode_artwork_url }}" />
|
<icon src="{{ episode_artwork_url }}" />
|
||||||
|
<image type="poster" size="3">{{ episode_artwork_url }}"</image>
|
||||||
|
{{ end }}
|
||||||
|
{{ if episode_has_thumbnail }}
|
||||||
|
<image type="still" orient="L" size="3">{{ episode_thumbnail_url }}</image>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
<episode-num system="onscreen">S{{ season_number | math.format '00' }}E{{ episode_number | math.format '00' }}</episode-num>
|
<episode-num system="onscreen">S{{ season_number | math.format '00' }}E{{ episode_number | math.format '00' }}</episode-num>
|
||||||
|
|||||||
Reference in New Issue
Block a user