From c45b6aa53e8605fdf1d93c669890eeb09d30c268 Mon Sep 17 00:00:00 2001 From: Claus Vium Date: Sun, 17 Feb 2019 07:39:36 +0100 Subject: [PATCH 01/13] Use the movie name instead of folder name --- Emby.Naming/Video/VideoListResolver.cs | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/Emby.Naming/Video/VideoListResolver.cs b/Emby.Naming/Video/VideoListResolver.cs index ef97b87396..20fa100fa1 100644 --- a/Emby.Naming/Video/VideoListResolver.cs +++ b/Emby.Naming/Video/VideoListResolver.cs @@ -175,23 +175,16 @@ namespace Emby.Naming.Video return videos; } - var folderName = Path.GetFileName(Path.GetDirectoryName(videos[0].Files[0].Path)); - - if (!string.IsNullOrEmpty(folderName) && folderName.Length > 1) + return videos.GroupBy(v => new {v.Name, v.Year}).Select(group => new VideoInfo { - var ordered = videos.OrderBy(i => i.Name); - - return ordered.GroupBy(v => new {v.Name, v.Year}).Select(group => new VideoInfo - { - Name = folderName, - Year = group.First().Year, - Files = group.First().Files, - AlternateVersions = group.Skip(1).Select(i => i.Files[0]).ToList(), - Extras = group.First().Extras.Concat(group.Skip(1).SelectMany(i => i.Extras)).ToList() - }); - } - - return videos; + // Because of the grouping, we can grab the information from the first movie and make it primary + // The remaining movie matches are 'alternate versions' + Name = group.First().Name, + Year = group.First().Year, + Files = group.First().Files, + AlternateVersions = group.Skip(1).Select(i => i.Files[0]).ToList(), + Extras = group.First().Extras.Concat(group.Skip(1).SelectMany(i => i.Extras)).ToList() + }); } private List GetExtras(IEnumerable remainingFiles, List baseNames) From 4a700778e3e76d53a89c824ff53eb4e83f03a7c8 Mon Sep 17 00:00:00 2001 From: Claus Vium Date: Mon, 18 Feb 2019 21:56:08 +0100 Subject: [PATCH 02/13] Semi-revert to prefer old movie grouping behaviour --- Emby.Naming/Video/VideoListResolver.cs | 50 +++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/Emby.Naming/Video/VideoListResolver.cs b/Emby.Naming/Video/VideoListResolver.cs index 20fa100fa1..3e35458312 100644 --- a/Emby.Naming/Video/VideoListResolver.cs +++ b/Emby.Naming/Video/VideoListResolver.cs @@ -175,7 +175,55 @@ namespace Emby.Naming.Video return videos; } - return videos.GroupBy(v => new {v.Name, v.Year}).Select(group => new VideoInfo + var folderName = Path.GetFileName(Path.GetDirectoryName(videos.First().Files.First().Path)); + if (!string.IsNullOrEmpty(folderName)) + { + var videosMatchingFolder = new List(); + foreach (VideoInfo video in videos) + { + // Only interested in single files + if (video.Files.Count != 1) + { + continue; + } + + if (string.Equals(folderName, video.Name, StringComparison.OrdinalIgnoreCase)) + { + videosMatchingFolder.Add(video); + } + // Eg. My Movie == My Movie - Some Other Info, TODO doesn't seem like a robust test + else if (video.Name.StartsWith(folderName, StringComparison.OrdinalIgnoreCase) && + video.Name.Substring(folderName.Length).TrimStart().StartsWith("-")) + { + videosMatchingFolder.Add(video); + } + } + + // It is assumed that any non-matching files are random samples, trailers, extras etc. + // So if there's at least one video file matching the folder name, skip the rest. + if (videosMatchingFolder.Count > 0) + { + var primary = videosMatchingFolder.First(); + var remainingVideos = videosMatchingFolder.Skip(1); + var videoInfo = new VideoInfo + { + Name = folderName, + Year = videosMatchingFolder.First().Year, + Files = videosMatchingFolder.First().Files, + AlternateVersions = new List(), + Extras = primary.Extras + }; + foreach (VideoInfo video in remainingVideos) + { + videoInfo.AlternateVersions.Add(video.Files.First()); + videoInfo.Extras.AddRange(video.Extras); + } + + return new[] { videoInfo }; + } + } + + return videos.GroupBy(v => new { v.Name, v.Year }).Select(group => new VideoInfo { // Because of the grouping, we can grab the information from the first movie and make it primary // The remaining movie matches are 'alternate versions' From 29ff80d69cbc518e730bcb62da839ee31e19c977 Mon Sep 17 00:00:00 2001 From: Claus Vium Date: Mon, 18 Feb 2019 22:02:16 +0100 Subject: [PATCH 03/13] Minor style fixes --- Emby.Naming/Video/VideoListResolver.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Emby.Naming/Video/VideoListResolver.cs b/Emby.Naming/Video/VideoListResolver.cs index 3e35458312..3348ec2fb3 100644 --- a/Emby.Naming/Video/VideoListResolver.cs +++ b/Emby.Naming/Video/VideoListResolver.cs @@ -175,7 +175,7 @@ namespace Emby.Naming.Video return videos; } - var folderName = Path.GetFileName(Path.GetDirectoryName(videos.First().Files.First().Path)); + var folderName = Path.GetFileName(Path.GetDirectoryName(videos[0].Files[0].Path)); if (!string.IsNullOrEmpty(folderName)) { var videosMatchingFolder = new List(); @@ -203,13 +203,13 @@ namespace Emby.Naming.Video // So if there's at least one video file matching the folder name, skip the rest. if (videosMatchingFolder.Count > 0) { - var primary = videosMatchingFolder.First(); + var primary = videosMatchingFolder[0]; var remainingVideos = videosMatchingFolder.Skip(1); var videoInfo = new VideoInfo { Name = folderName, - Year = videosMatchingFolder.First().Year, - Files = videosMatchingFolder.First().Files, + Year = primary.Year, + Files = primary.Files, AlternateVersions = new List(), Extras = primary.Extras }; From c79324154f3b3a8e7f005c9492e0de311fa4a0f1 Mon Sep 17 00:00:00 2001 From: Claus Vium Date: Tue, 19 Feb 2019 17:10:11 +0100 Subject: [PATCH 04/13] Revert "Merge pull request #933 from cvium/fix_movie_matching_again" This reverts commit 77d4fec6eb75b9b26a24e0678c7a75d8decb2e29, reversing changes made to f274d024ceaacc23f0a30697aab8c0dfb05c402c. --- Emby.Naming/Video/VideoListResolver.cs | 50 +------------------------- 1 file changed, 1 insertion(+), 49 deletions(-) diff --git a/Emby.Naming/Video/VideoListResolver.cs b/Emby.Naming/Video/VideoListResolver.cs index 3348ec2fb3..20fa100fa1 100644 --- a/Emby.Naming/Video/VideoListResolver.cs +++ b/Emby.Naming/Video/VideoListResolver.cs @@ -175,55 +175,7 @@ namespace Emby.Naming.Video return videos; } - var folderName = Path.GetFileName(Path.GetDirectoryName(videos[0].Files[0].Path)); - if (!string.IsNullOrEmpty(folderName)) - { - var videosMatchingFolder = new List(); - foreach (VideoInfo video in videos) - { - // Only interested in single files - if (video.Files.Count != 1) - { - continue; - } - - if (string.Equals(folderName, video.Name, StringComparison.OrdinalIgnoreCase)) - { - videosMatchingFolder.Add(video); - } - // Eg. My Movie == My Movie - Some Other Info, TODO doesn't seem like a robust test - else if (video.Name.StartsWith(folderName, StringComparison.OrdinalIgnoreCase) && - video.Name.Substring(folderName.Length).TrimStart().StartsWith("-")) - { - videosMatchingFolder.Add(video); - } - } - - // It is assumed that any non-matching files are random samples, trailers, extras etc. - // So if there's at least one video file matching the folder name, skip the rest. - if (videosMatchingFolder.Count > 0) - { - var primary = videosMatchingFolder[0]; - var remainingVideos = videosMatchingFolder.Skip(1); - var videoInfo = new VideoInfo - { - Name = folderName, - Year = primary.Year, - Files = primary.Files, - AlternateVersions = new List(), - Extras = primary.Extras - }; - foreach (VideoInfo video in remainingVideos) - { - videoInfo.AlternateVersions.Add(video.Files.First()); - videoInfo.Extras.AddRange(video.Extras); - } - - return new[] { videoInfo }; - } - } - - return videos.GroupBy(v => new { v.Name, v.Year }).Select(group => new VideoInfo + return videos.GroupBy(v => new {v.Name, v.Year}).Select(group => new VideoInfo { // Because of the grouping, we can grab the information from the first movie and make it primary // The remaining movie matches are 'alternate versions' From 518142723493cb95db37e06f917876464081229e Mon Sep 17 00:00:00 2001 From: Claus Vium Date: Tue, 19 Feb 2019 17:34:43 +0100 Subject: [PATCH 05/13] Revert "Merge pull request #924 from cvium/fix_movie_matching" This reverts commit f274d024ceaacc23f0a30697aab8c0dfb05c402c, reversing changes made to 4b4399fba6df3368ab04e78acd2dd08873e4f07b. --- Emby.Naming/Video/VideoListResolver.cs | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/Emby.Naming/Video/VideoListResolver.cs b/Emby.Naming/Video/VideoListResolver.cs index 20fa100fa1..ef97b87396 100644 --- a/Emby.Naming/Video/VideoListResolver.cs +++ b/Emby.Naming/Video/VideoListResolver.cs @@ -175,16 +175,23 @@ namespace Emby.Naming.Video return videos; } - return videos.GroupBy(v => new {v.Name, v.Year}).Select(group => new VideoInfo + var folderName = Path.GetFileName(Path.GetDirectoryName(videos[0].Files[0].Path)); + + if (!string.IsNullOrEmpty(folderName) && folderName.Length > 1) { - // Because of the grouping, we can grab the information from the first movie and make it primary - // The remaining movie matches are 'alternate versions' - Name = group.First().Name, - Year = group.First().Year, - Files = group.First().Files, - AlternateVersions = group.Skip(1).Select(i => i.Files[0]).ToList(), - Extras = group.First().Extras.Concat(group.Skip(1).SelectMany(i => i.Extras)).ToList() - }); + var ordered = videos.OrderBy(i => i.Name); + + return ordered.GroupBy(v => new {v.Name, v.Year}).Select(group => new VideoInfo + { + Name = folderName, + Year = group.First().Year, + Files = group.First().Files, + AlternateVersions = group.Skip(1).Select(i => i.Files[0]).ToList(), + Extras = group.First().Extras.Concat(group.Skip(1).SelectMany(i => i.Extras)).ToList() + }); + } + + return videos; } private List GetExtras(IEnumerable remainingFiles, List baseNames) From de5c0bab7032f60053f528ca77c311c03899bd54 Mon Sep 17 00:00:00 2001 From: Claus Vium Date: Tue, 19 Feb 2019 17:39:10 +0100 Subject: [PATCH 06/13] Revert "Add Year to the new VideoInfo" This reverts commit 05ad2e9b3f5209d9e7ff9949d8c20cd8ef7062b6. --- Emby.Naming/Video/VideoListResolver.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/Emby.Naming/Video/VideoListResolver.cs b/Emby.Naming/Video/VideoListResolver.cs index ef97b87396..db8ebb56a9 100644 --- a/Emby.Naming/Video/VideoListResolver.cs +++ b/Emby.Naming/Video/VideoListResolver.cs @@ -184,7 +184,6 @@ namespace Emby.Naming.Video return ordered.GroupBy(v => new {v.Name, v.Year}).Select(group => new VideoInfo { Name = folderName, - Year = group.First().Year, Files = group.First().Files, AlternateVersions = group.Skip(1).Select(i => i.Files[0]).ToList(), Extras = group.First().Extras.Concat(group.Skip(1).SelectMany(i => i.Extras)).ToList() From 46acff4113a9463ff8294cf39b15e8a67ce799e6 Mon Sep 17 00:00:00 2001 From: Claus Vium Date: Tue, 19 Feb 2019 17:39:30 +0100 Subject: [PATCH 07/13] Revert "Remove unnecessary ToList" This reverts commit 42abb5a9931806a2ae1cedd433144ebf82768a0d. --- Emby.Naming/Video/VideoListResolver.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Emby.Naming/Video/VideoListResolver.cs b/Emby.Naming/Video/VideoListResolver.cs index db8ebb56a9..156739c0a7 100644 --- a/Emby.Naming/Video/VideoListResolver.cs +++ b/Emby.Naming/Video/VideoListResolver.cs @@ -179,7 +179,7 @@ namespace Emby.Naming.Video if (!string.IsNullOrEmpty(folderName) && folderName.Length > 1) { - var ordered = videos.OrderBy(i => i.Name); + var ordered = videos.OrderBy(i => i.Name).ToList(); return ordered.GroupBy(v => new {v.Name, v.Year}).Select(group => new VideoInfo { From aa0c20afd572a48a2597689a6020359498c87603 Mon Sep 17 00:00:00 2001 From: Claus Vium Date: Tue, 19 Feb 2019 17:39:47 +0100 Subject: [PATCH 08/13] Revert "Change multi version logic for movies" This reverts commit a4055779f6c824cc0289dfb4f77dc094f2de850a. --- Emby.Naming/Video/VideoListResolver.cs | 65 ++++++++++++++++++++++---- 1 file changed, 57 insertions(+), 8 deletions(-) diff --git a/Emby.Naming/Video/VideoListResolver.cs b/Emby.Naming/Video/VideoListResolver.cs index 156739c0a7..0506d0734c 100644 --- a/Emby.Naming/Video/VideoListResolver.cs +++ b/Emby.Naming/Video/VideoListResolver.cs @@ -175,22 +175,71 @@ namespace Emby.Naming.Video return videos; } + var list = new List(); + var folderName = Path.GetFileName(Path.GetDirectoryName(videos[0].Files[0].Path)); if (!string.IsNullOrEmpty(folderName) && folderName.Length > 1) { - var ordered = videos.OrderBy(i => i.Name).ToList(); - - return ordered.GroupBy(v => new {v.Name, v.Year}).Select(group => new VideoInfo + if (videos.All(i => i.Files.Count == 1 && IsEligibleForMultiVersion(folderName, i.Files[0].Path))) { - Name = folderName, - Files = group.First().Files, - AlternateVersions = group.Skip(1).Select(i => i.Files[0]).ToList(), - Extras = group.First().Extras.Concat(group.Skip(1).SelectMany(i => i.Extras)).ToList() - }); + // Enforce the multi-version limit + if (videos.Count <= 8 && HaveSameYear(videos)) + { + var ordered = videos.OrderBy(i => i.Name).ToList(); + + list.Add(ordered[0]); + + list[0].AlternateVersions = ordered.Skip(1).Select(i => i.Files[0]).ToList(); + list[0].Name = folderName; + list[0].Extras.AddRange(ordered.Skip(1).SelectMany(i => i.Extras)); + + return list; + } + } } return videos; + //foreach (var video in videos.OrderBy(i => i.Name)) + //{ + // var match = list + // .FirstOrDefault(i => string.Equals(i.Name, video.Name, StringComparison.OrdinalIgnoreCase)); + + // if (match != null && video.Files.Count == 1 && match.Files.Count == 1) + // { + // match.AlternateVersions.Add(video.Files[0]); + // match.Extras.AddRange(video.Extras); + // } + // else + // { + // list.Add(video); + // } + //} + + //return list; + } + + private bool HaveSameYear(List videos) + { + return videos.Select(i => i.Year ?? -1).Distinct().Count() < 2; + } + + private bool IsEligibleForMultiVersion(string folderName, string testFilename) + { + testFilename = Path.GetFileNameWithoutExtension(testFilename); + + if (string.Equals(folderName, testFilename, StringComparison.OrdinalIgnoreCase)) + { + return true; + } + + if (testFilename.StartsWith(folderName, StringComparison.OrdinalIgnoreCase)) + { + testFilename = testFilename.Substring(folderName.Length).Trim(); + return testFilename.StartsWith("-", StringComparison.OrdinalIgnoreCase) || Regex.Replace(testFilename, @"\[([^]]*)\]", "").Trim() == string.Empty; + } + + return false; } private List GetExtras(IEnumerable remainingFiles, List baseNames) From 6c1ca6f737e63bbc69fb9dbfd5a7e19fd3e55a59 Mon Sep 17 00:00:00 2001 From: Claus Vium Date: Tue, 19 Feb 2019 19:33:41 +0100 Subject: [PATCH 09/13] Remove arbitrary limit and minor style fixes --- Emby.Naming/Video/VideoListResolver.cs | 30 +++++--------------------- 1 file changed, 5 insertions(+), 25 deletions(-) diff --git a/Emby.Naming/Video/VideoListResolver.cs b/Emby.Naming/Video/VideoListResolver.cs index 0506d0734c..6ffc105167 100644 --- a/Emby.Naming/Video/VideoListResolver.cs +++ b/Emby.Naming/Video/VideoListResolver.cs @@ -184,7 +184,7 @@ namespace Emby.Naming.Video if (videos.All(i => i.Files.Count == 1 && IsEligibleForMultiVersion(folderName, i.Files[0].Path))) { // Enforce the multi-version limit - if (videos.Count <= 8 && HaveSameYear(videos)) + if (HaveSameYear(videos)) { var ordered = videos.OrderBy(i => i.Name).ToList(); @@ -200,23 +200,6 @@ namespace Emby.Naming.Video } return videos; - //foreach (var video in videos.OrderBy(i => i.Name)) - //{ - // var match = list - // .FirstOrDefault(i => string.Equals(i.Name, video.Name, StringComparison.OrdinalIgnoreCase)); - - // if (match != null && video.Files.Count == 1 && match.Files.Count == 1) - // { - // match.AlternateVersions.Add(video.Files[0]); - // match.Extras.AddRange(video.Extras); - // } - // else - // { - // list.Add(video); - // } - //} - - //return list; } private bool HaveSameYear(List videos) @@ -226,17 +209,14 @@ namespace Emby.Naming.Video private bool IsEligibleForMultiVersion(string folderName, string testFilename) { - testFilename = Path.GetFileNameWithoutExtension(testFilename); - - if (string.Equals(folderName, testFilename, StringComparison.OrdinalIgnoreCase)) - { - return true; - } + testFilename = Path.GetFileNameWithoutExtension(testFilename) ?? string.Empty; if (testFilename.StartsWith(folderName, StringComparison.OrdinalIgnoreCase)) { testFilename = testFilename.Substring(folderName.Length).Trim(); - return testFilename.StartsWith("-", StringComparison.OrdinalIgnoreCase) || Regex.Replace(testFilename, @"\[([^]]*)\]", "").Trim() == string.Empty; + return string.IsNullOrEmpty(testFilename) || + testFilename.StartsWith("-") || + string.IsNullOrEmpty(Regex.Replace(testFilename, @"\[([^]]*)\]", string.Empty)) ; } return false; From 566646ad8b079ad09d1adb728d09a0536763beb8 Mon Sep 17 00:00:00 2001 From: Claus Vium Date: Tue, 19 Feb 2019 19:44:22 +0100 Subject: [PATCH 10/13] Remove limit comment --- Emby.Naming/Video/VideoListResolver.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/Emby.Naming/Video/VideoListResolver.cs b/Emby.Naming/Video/VideoListResolver.cs index 6ffc105167..d5c07ce735 100644 --- a/Emby.Naming/Video/VideoListResolver.cs +++ b/Emby.Naming/Video/VideoListResolver.cs @@ -183,7 +183,6 @@ namespace Emby.Naming.Video { if (videos.All(i => i.Files.Count == 1 && IsEligibleForMultiVersion(folderName, i.Files[0].Path))) { - // Enforce the multi-version limit if (HaveSameYear(videos)) { var ordered = videos.OrderBy(i => i.Name).ToList(); From 6016a277360c737c46cf4b3964c83b991a561842 Mon Sep 17 00:00:00 2001 From: Claus Vium Date: Tue, 19 Feb 2019 22:30:21 +0100 Subject: [PATCH 11/13] Check for whitespace --- Emby.Naming/Video/VideoListResolver.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Emby.Naming/Video/VideoListResolver.cs b/Emby.Naming/Video/VideoListResolver.cs index d5c07ce735..afedc30ef2 100644 --- a/Emby.Naming/Video/VideoListResolver.cs +++ b/Emby.Naming/Video/VideoListResolver.cs @@ -215,7 +215,7 @@ namespace Emby.Naming.Video testFilename = testFilename.Substring(folderName.Length).Trim(); return string.IsNullOrEmpty(testFilename) || testFilename.StartsWith("-") || - string.IsNullOrEmpty(Regex.Replace(testFilename, @"\[([^]]*)\]", string.Empty)) ; + string.IsNullOrWhiteSpace(Regex.Replace(testFilename, @"\[([^]]*)\]", string.Empty)) ; } return false; From 69a81c0bc263ab4da6801285ea027851325be99a Mon Sep 17 00:00:00 2001 From: Andrew Rabert Date: Wed, 20 Feb 2019 12:11:50 -0500 Subject: [PATCH 12/13] Use jellyfin/ffmpeg image --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 6c0d2515f4..978b0d5409 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,7 +9,7 @@ RUN dotnet publish \ --output /jellyfin \ Jellyfin.Server -FROM jrottenberg/ffmpeg:4.0-vaapi as ffmpeg +FROM jellyfin/ffmpeg as ffmpeg FROM microsoft/dotnet:${DOTNET_VERSION}-runtime # libfontconfig1 is required for Skia RUN apt-get update \ From 83948420a4ed0506ecfaf16bfe874b6edf80cf57 Mon Sep 17 00:00:00 2001 From: Joshua Boniface Date: Wed, 20 Feb 2019 12:25:50 -0500 Subject: [PATCH 13/13] Bump version to 10.2.1 --- SharedVersion.cs | 4 ++-- deployment/debian-package-x64/pkg-src/changelog | 16 ++++++++++++++++ .../fedora-package-x64/pkg-src/jellyfin.spec | 16 ++++++++++++++-- 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/SharedVersion.cs b/SharedVersion.cs index 294748b773..41eda393a5 100644 --- a/SharedVersion.cs +++ b/SharedVersion.cs @@ -1,4 +1,4 @@ using System.Reflection; -[assembly: AssemblyVersion("10.2.0")] -[assembly: AssemblyFileVersion("10.2.0")] +[assembly: AssemblyVersion("10.2.1")] +[assembly: AssemblyFileVersion("10.2.1")] diff --git a/deployment/debian-package-x64/pkg-src/changelog b/deployment/debian-package-x64/pkg-src/changelog index 869dc4a5e2..7b7efff278 100644 --- a/deployment/debian-package-x64/pkg-src/changelog +++ b/deployment/debian-package-x64/pkg-src/changelog @@ -1,3 +1,19 @@ +jellyfin (10.2.1-1) unstable; urgency=medium + + * jellyfin: + * PR920 Fix cachedir missing from Docker container + * PR924 Use the movie name instead of folder name + * PR933 Semi-revert to prefer old movie grouping behaviour + * PR948 Revert movie matching (supercedes PR933, PR924, PR739) + * PR960 Use jellyfin/ffmpeg image + * jellyfin-web: + * PR136 Re-add OpenSubtitles configuration page + * PR137 Replace HeaderEmbyServer with HeaderJellyfinServer on plugincatalog + * PR138 Remove left-over JS for Customize Home Screen + * PR141 Exit fullscreen automatically after video playback ends + + -- Jellyfin Packaging Team Wed, 20 Feb 2019 11:36:16 -0500 + jellyfin (10.2.0-2) unstable; urgency=medium * jellyfin: diff --git a/deployment/fedora-package-x64/pkg-src/jellyfin.spec b/deployment/fedora-package-x64/pkg-src/jellyfin.spec index 75821cb171..146486428e 100644 --- a/deployment/fedora-package-x64/pkg-src/jellyfin.spec +++ b/deployment/fedora-package-x64/pkg-src/jellyfin.spec @@ -7,8 +7,8 @@ %endif Name: jellyfin -Version: 10.2.0 -Release: 2%{?dist} +Version: 10.2.1 +Release: 1%{?dist} Summary: The Free Software Media Browser License: GPLv2 URL: https://jellyfin.media @@ -140,6 +140,18 @@ fi %systemd_postun_with_restart jellyfin.service %changelog +* Wed Feb 20 2019 Jellyfin Packaging Team +- jellyfin: +- PR920 Fix cachedir missing from Docker container +- PR924 Use the movie name instead of folder name +- PR933 Semi-revert to prefer old movie grouping behaviour +- PR948 Revert movie matching (supercedes PR933, PR924, PR739) +- PR960 Use jellyfin/ffmpeg image +- jellyfin-web: +- PR136 Re-add OpenSubtitles configuration page +- PR137 Replace HeaderEmbyServer with HeaderJellyfinServer on plugincatalog +- PR138 Remove left-over JS for Customize Home Screen +- PR141 Exit fullscreen automatically after video playback ends * Fri Feb 15 2019 Jellyfin Packaging Team - jellyfin: - PR452 Use EF Core for Activity database