fix subtitles from media server libraries (#1233)

* fix embedded subtitles from media servers

* fix plex external subtitles

* fix artwork bug, delete orphaned subtitles

* jellyfin subtitles work again

* emby subtitles work

* rescan all media server libraries
This commit is contained in:
Jason Dove
2023-04-07 13:22:45 -05:00
committed by GitHub
parent 7b3b9b4aad
commit 126304bb8a
44 changed files with 4893 additions and 254 deletions
+37 -11
View File
@@ -114,11 +114,21 @@ public class InternalController : ControllerBase
Left: _ => new NotFoundResult(),
Right: r =>
{
Url fullPath = Flurl.Url.Parse(r.Address)
.AppendPathSegment("Videos")
.AppendPathSegment(path)
.AppendPathSegment("stream")
.SetQueryParam("static", "true");
Url fullPath;
if (path.Contains("Subtitles"))
{
fullPath = Flurl.Url.Parse(r.Address)
.AppendPathSegment(path);
}
else
{
fullPath = Flurl.Url.Parse(r.Address)
.AppendPathSegment("Videos")
.AppendPathSegment(path)
.AppendPathSegment("stream")
.SetQueryParam("static", "true");
}
return new RedirectResult(fullPath.ToString());
});
@@ -134,12 +144,23 @@ public class InternalController : ControllerBase
Left: _ => new NotFoundResult(),
Right: r =>
{
Url fullPath = Flurl.Url.Parse(r.Address)
.AppendPathSegment("Videos")
.AppendPathSegment(path)
.AppendPathSegment("stream")
.SetQueryParam("static", "true")
.SetQueryParam("X-Emby-Token", r.ApiKey);
Url fullPath;
if (path.Contains("Subtitles"))
{
fullPath = Flurl.Url.Parse(r.Address)
.AppendPathSegment(path)
.SetQueryParam("X-Emby-Token", r.ApiKey);
}
else
{
fullPath = Flurl.Url.Parse(r.Address)
.AppendPathSegment("Videos")
.AppendPathSegment(path)
.AppendPathSegment("stream")
.SetQueryParam("static", "true")
.SetQueryParam("X-Emby-Token", r.ApiKey);
}
return new RedirectResult(fullPath.ToString());
});
@@ -153,6 +174,11 @@ public class InternalController : ControllerBase
Left: _ => new NotFoundResult(),
Right: r =>
{
if (r.StartsWith("http"))
{
return new RedirectResult(r);
}
string mimeType = Path.GetExtension(r).ToLowerInvariant() switch
{
"ass" or "ssa" => "text/x-ssa",
+4
View File
@@ -92,6 +92,7 @@ public class SchedulerService : BackgroundService
try
{
await DeleteOrphanedArtwork(cancellationToken);
await DeleteOrphanedSubtitles(cancellationToken);
await RefreshChannelGuideChannelList(cancellationToken);
await BuildPlayouts(cancellationToken);
#if !DEBUG_NO_SYNC
@@ -286,6 +287,9 @@ public class SchedulerService : BackgroundService
private ValueTask DeleteOrphanedArtwork(CancellationToken cancellationToken) =>
_workerChannel.WriteAsync(new DeleteOrphanedArtwork(), cancellationToken);
private ValueTask DeleteOrphanedSubtitles(CancellationToken cancellationToken) =>
_workerChannel.WriteAsync(new DeleteOrphanedSubtitles(), cancellationToken);
private ValueTask ReleaseMemory(CancellationToken cancellationToken) =>
_workerChannel.WriteAsync(new ReleaseMemory(false), cancellationToken);
}
+3
View File
@@ -68,6 +68,9 @@ public class WorkerService : BackgroundService
case DeleteOrphanedArtwork deleteOrphanedArtwork:
await mediator.Send(deleteOrphanedArtwork, cancellationToken);
break;
case DeleteOrphanedSubtitles deleteOrphanedSubtitles:
await mediator.Send(deleteOrphanedSubtitles, cancellationToken);
break;
case AddTraktList addTraktList:
await mediator.Send(addTraktList, cancellationToken);
break;