mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-01-16 08:08:16 +00:00
Compare commits
19 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
83948420a4 | ||
|
|
8c53407a9d | ||
|
|
69a81c0bc2 | ||
|
|
d978ae1996 | ||
|
|
6016a27736 | ||
|
|
566646ad8b | ||
|
|
6c1ca6f737 | ||
|
|
aa0c20afd5 | ||
|
|
46acff4113 | ||
|
|
de5c0bab70 | ||
|
|
5181427234 | ||
|
|
c79324154f | ||
|
|
77d4fec6eb | ||
|
|
29ff80d69c | ||
|
|
4a700778e3 | ||
|
|
f274d024ce | ||
|
|
c45b6aa53e | ||
|
|
4b4399fba6 | ||
|
|
c06598635f |
10
Dockerfile
10
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 \
|
||||
@@ -17,9 +17,11 @@ RUN apt-get update \
|
||||
libfontconfig1 \
|
||||
&& apt-get clean autoclean \
|
||||
&& apt-get autoremove \
|
||||
&& rm -rf /var/lib/{apt,dpkg,cache,log}
|
||||
&& rm -rf /var/lib/{apt,dpkg,cache,log} \
|
||||
&& mkdir -p /cache /config /media \
|
||||
&& chmod 777 /cache /config /media
|
||||
COPY --from=ffmpeg / /
|
||||
COPY --from=builder /jellyfin /jellyfin
|
||||
EXPOSE 8096
|
||||
VOLUME /config /media
|
||||
ENTRYPOINT dotnet /jellyfin/jellyfin.dll --datadir /config
|
||||
VOLUME /cache /config /media
|
||||
ENTRYPOINT dotnet /jellyfin/jellyfin.dll --datadir /config --cachedir /cache
|
||||
|
||||
@@ -27,8 +27,10 @@ RUN dotnet publish \
|
||||
FROM microsoft/dotnet:${DOTNET_VERSION}-runtime-stretch-slim-arm32v7
|
||||
COPY --from=qemu_extract qemu-arm-static /usr/bin
|
||||
RUN apt-get update \
|
||||
&& apt-get install --no-install-recommends --no-install-suggests -y ffmpeg
|
||||
&& apt-get install --no-install-recommends --no-install-suggests -y ffmpeg \
|
||||
&& mkdir -p /cache /config /media \
|
||||
&& chmod 777 /cache /config /media
|
||||
COPY --from=builder /jellyfin /jellyfin
|
||||
EXPOSE 8096
|
||||
VOLUME /config /media
|
||||
ENTRYPOINT dotnet /jellyfin/jellyfin.dll --datadir /config
|
||||
VOLUME /cache /config /media
|
||||
ENTRYPOINT dotnet /jellyfin/jellyfin.dll --datadir /config --cachedir /cache
|
||||
|
||||
@@ -28,8 +28,10 @@ RUN dotnet publish \
|
||||
FROM microsoft/dotnet:${DOTNET_VERSION}-runtime-stretch-slim-arm64v8
|
||||
COPY --from=qemu_extract qemu-aarch64-static /usr/bin
|
||||
RUN apt-get update \
|
||||
&& apt-get install --no-install-recommends --no-install-suggests -y ffmpeg
|
||||
&& apt-get install --no-install-recommends --no-install-suggests -y ffmpeg \
|
||||
&& mkdir -p /cache /config /media \
|
||||
&& chmod 777 /cache /config /media
|
||||
COPY --from=builder /jellyfin /jellyfin
|
||||
EXPOSE 8096
|
||||
VOLUME /config /media
|
||||
ENTRYPOINT dotnet /jellyfin/jellyfin.dll --datadir /config
|
||||
VOLUME /cache /config /media
|
||||
ENTRYPOINT dotnet /jellyfin/jellyfin.dll --datadir /config --cachedir /cache
|
||||
|
||||
@@ -175,25 +175,52 @@ namespace Emby.Naming.Video
|
||||
return videos;
|
||||
}
|
||||
|
||||
var list = new List<VideoInfo>();
|
||||
|
||||
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);
|
||||
|
||||
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,
|
||||
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()
|
||||
});
|
||||
if (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;
|
||||
}
|
||||
|
||||
private bool HaveSameYear(List<VideoInfo> videos)
|
||||
{
|
||||
return videos.Select(i => i.Year ?? -1).Distinct().Count() < 2;
|
||||
}
|
||||
|
||||
private bool IsEligibleForMultiVersion(string folderName, string testFilename)
|
||||
{
|
||||
testFilename = Path.GetFileNameWithoutExtension(testFilename) ?? string.Empty;
|
||||
|
||||
if (testFilename.StartsWith(folderName, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
testFilename = testFilename.Substring(folderName.Length).Trim();
|
||||
return string.IsNullOrEmpty(testFilename) ||
|
||||
testFilename.StartsWith("-") ||
|
||||
string.IsNullOrWhiteSpace(Regex.Replace(testFilename, @"\[([^]]*)\]", string.Empty)) ;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private List<VideoFileInfo> GetExtras(IEnumerable<VideoFileInfo> remainingFiles, List<string> baseNames)
|
||||
{
|
||||
foreach (var name in baseNames.ToList())
|
||||
|
||||
@@ -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")]
|
||||
|
||||
@@ -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 <packaging@jellyfin.org> Wed, 20 Feb 2019 11:36:16 -0500
|
||||
|
||||
jellyfin (10.2.0-2) unstable; urgency=medium
|
||||
|
||||
* jellyfin:
|
||||
|
||||
@@ -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 <packaging@jellyfin.org>
|
||||
- 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 <packaging@jellyfin.org>
|
||||
- jellyfin:
|
||||
- PR452 Use EF Core for Activity database
|
||||
|
||||
Reference in New Issue
Block a user