From 9ba6686c442d4732671b3221aa19d4d8bdb73be0 Mon Sep 17 00:00:00 2001 From: Jason Dove Date: Sun, 28 Mar 2021 06:32:13 -0500 Subject: [PATCH] iptv route consistency [no ci] (#107) * use localhost in concat playlist * expose all playlist artwork under /iptv --- ErsatzTV.Core/FFmpeg/ConcatPlaylist.cs | 4 ++-- ErsatzTV.Core/Iptv/ChannelGuide.cs | 6 +++--- ErsatzTV.Core/Iptv/ChannelPlaylist.cs | 2 +- ErsatzTV/Controllers/ArtworkController.cs | 4 +++- ErsatzTV/wwwroot/iptv/images/ersatztv-500.png | Bin 0 -> 4721 bytes 5 files changed, 9 insertions(+), 7 deletions(-) create mode 100644 ErsatzTV/wwwroot/iptv/images/ersatztv-500.png diff --git a/ErsatzTV.Core/FFmpeg/ConcatPlaylist.cs b/ErsatzTV.Core/FFmpeg/ConcatPlaylist.cs index 1817fdd2b..71651c734 100644 --- a/ErsatzTV.Core/FFmpeg/ConcatPlaylist.cs +++ b/ErsatzTV.Core/FFmpeg/ConcatPlaylist.cs @@ -4,7 +4,7 @@ { public override string ToString() => $@"ffconcat version 1.0 -file {Scheme}://{Host}/ffmpeg/stream/{ChannelNumber} -file {Scheme}://{Host}/ffmpeg/stream/{ChannelNumber}"; +file http://localhost:8409/ffmpeg/stream/{ChannelNumber} +file http://localhost:8409/ffmpeg/stream/{ChannelNumber}"; } } diff --git a/ErsatzTV.Core/Iptv/ChannelGuide.cs b/ErsatzTV.Core/Iptv/ChannelGuide.cs index 2a9c3da72..b66fd9f3f 100644 --- a/ErsatzTV.Core/Iptv/ChannelGuide.cs +++ b/ErsatzTV.Core/Iptv/ChannelGuide.cs @@ -48,7 +48,7 @@ namespace ErsatzTV.Core.Iptv .HeadOrNone() .Match( artwork => $"{_scheme}://{_host}/iptv/logos/{artwork.Path}", - () => $"{_scheme}://{_host}/images/ersatztv-500.png"); + () => $"{_scheme}://{_host}/iptv/images/ersatztv-500.png"); xml.WriteAttributeString("src", logo); xml.WriteEndElement(); // icon @@ -122,7 +122,7 @@ namespace ErsatzTV.Core.Iptv .Filter(a => a.ArtworkKind == ArtworkKind.Poster) .HeadOrNone() .Match( - artwork => $"{_scheme}://{_host}/artwork/posters/{artwork.Path}", + artwork => $"{_scheme}://{_host}/iptv/artwork/posters/{artwork.Path}", () => string.Empty); if (!string.IsNullOrWhiteSpace(poster)) @@ -161,7 +161,7 @@ namespace ErsatzTV.Core.Iptv .Filter(a => a.ArtworkKind == ArtworkKind.Poster) .HeadOrNone() .Match( - artwork => $"{_scheme}://{_host}/artwork/posters/{artwork.Path}", + artwork => $"{_scheme}://{_host}/iptv/artwork/posters/{artwork.Path}", () => string.Empty); if (!string.IsNullOrWhiteSpace(poster)) diff --git a/ErsatzTV.Core/Iptv/ChannelPlaylist.cs b/ErsatzTV.Core/Iptv/ChannelPlaylist.cs index 752de754f..827132b92 100644 --- a/ErsatzTV.Core/Iptv/ChannelPlaylist.cs +++ b/ErsatzTV.Core/Iptv/ChannelPlaylist.cs @@ -33,7 +33,7 @@ namespace ErsatzTV.Core.Iptv .HeadOrNone() .Match( artwork => $"{_scheme}://{_host}/iptv/logos/{artwork.Path}", - () => $"{_scheme}://{_host}/images/ersatztv-500.png"); + () => $"{_scheme}://{_host}/iptv/images/ersatztv-500.png"); string shortUniqueId = Convert.ToBase64String(channel.UniqueId.ToByteArray()) .TrimEnd('=') diff --git a/ErsatzTV/Controllers/ArtworkController.cs b/ErsatzTV/Controllers/ArtworkController.cs index ba4e116a6..d47a77792 100644 --- a/ErsatzTV/Controllers/ArtworkController.cs +++ b/ErsatzTV/Controllers/ArtworkController.cs @@ -27,7 +27,8 @@ namespace ErsatzTV.Controllers _mediator = mediator; _httpClientFactory = httpClientFactory; } - + + [HttpGet("/iptv/artwork/posters/{fileName}")] [HttpGet("/artwork/posters/{fileName}")] public async Task GetPoster(string fileName) { @@ -48,6 +49,7 @@ namespace ErsatzTV.Controllers Right: r => new FileContentResult(r.Contents, r.MimeType)); } + [HttpGet("/iptv/artwork/posters/plex/{plexMediaSourceId}/{*path}")] [HttpGet("/artwork/posters/plex/{plexMediaSourceId}/{*path}")] public Task GetPlexPoster(int plexMediaSourceId, string path) => GetPlexArtwork( diff --git a/ErsatzTV/wwwroot/iptv/images/ersatztv-500.png b/ErsatzTV/wwwroot/iptv/images/ersatztv-500.png new file mode 100644 index 0000000000000000000000000000000000000000..9e0a8b4e2c7dc521c3b60a4ddd2e94706dfe55ad GIT binary patch literal 4721 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 xV$LGhUABMZbK_MvgsGKDv607ve*sCV*l7R& literal 0 HcmV?d00001