fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes

* perf(sync): Emby+Jellyfin - use a more reliable filter to missing items

* fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci]
pull/4648/head
sephrat 2 years ago committed by GitHub
parent d03b29856d
commit bd8fd89055
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -106,7 +106,7 @@ namespace Ombi.Api.Emby
request.AddQueryString("Fields", "ProviderIds,Overview");
request.AddQueryString("IsVirtualItem", "False");
request.AddQueryString("IsMissing", "False");
return await Api.Request<EmbyItemContainer<EmbyMovie>>(request);
}
@ -180,7 +180,7 @@ namespace Ombi.Api.Emby
request.AddQueryString("ParentId", parentIdFilder);
}
request.AddQueryString("IsVirtualItem", "False");
request.AddQueryString("IsMissing", "False");
AddHeaders(request, apiKey);
@ -207,7 +207,7 @@ namespace Ombi.Api.Emby
request.AddQueryString("IncludeItemTypes", type);
request.AddQueryString("Fields", includeOverview ? "ProviderIds,Overview" : "ProviderIds");
request.AddQueryString("IsVirtualItem", "False");
request.AddQueryString("IsMissing", "False");
AddHeaders(request, apiKey);
@ -229,7 +229,7 @@ namespace Ombi.Api.Emby
request.AddQueryString("ParentId", parentIdFilder);
}
request.AddQueryString("IsVirtualItem", "False");
request.AddQueryString("isMissing", "False");
AddHeaders(request, apiKey);

@ -82,7 +82,7 @@ namespace Ombi.Api.Jellyfin
request.AddQueryString("Fields", "ProviderIds,Overview");
request.AddQueryString("IsVirtualItem", "False");
request.AddQueryString("isMissing", "False");
return await Api.Request<JellyfinItemContainer<JellyfinMovie>>(request);
}
@ -143,7 +143,7 @@ namespace Ombi.Api.Jellyfin
request.AddQueryString("IncludeItemTypes", type);
request.AddQueryString("Fields", includeOverview ? "ProviderIds,Overview" : "ProviderIds");
request.AddQueryString("IsVirtualItem", "False");
request.AddQueryString("isMissing", "False");
AddHeaders(request, apiKey);
@ -165,7 +165,7 @@ namespace Ombi.Api.Jellyfin
request.AddQueryString("ParentId", parentIdFilder);
}
request.AddQueryString("IsVirtualItem", "False");
request.AddQueryString("isMissing", "False");
AddHeaders(request, apiKey);

@ -130,12 +130,6 @@ namespace Ombi.Schedule.Jobs.Emby
{
processed++;
if (ep.LocationType?.Equals("Virtual", StringComparison.InvariantCultureIgnoreCase) ?? false)
{
// For some reason Emby is not respecting the `IsVirtualItem` field.
continue;
}
// Let's make sure we have the parent request, stop those pesky forign key errors,
// Damn me having data integrity
var parent = await _repo.GetByEmbyId(ep.SeriesId);
@ -176,18 +170,26 @@ namespace Ombi.Schedule.Jobs.Emby
if (ep.IndexNumberEnd.HasValue && ep.IndexNumberEnd.Value != ep.IndexNumber)
{
epToAdd.Add(new EmbyEpisode
int episodeNumber = ep.IndexNumber;
do
{
EmbyId = ep.Id,
EpisodeNumber = ep.IndexNumberEnd.Value,
SeasonNumber = ep.ParentIndexNumber,
ParentId = ep.SeriesId,
TvDbId = ep.ProviderIds.Tvdb,
TheMovieDbId = ep.ProviderIds.Tmdb,
ImdbId = ep.ProviderIds.Imdb,
Title = ep.Name,
AddedAt = DateTime.UtcNow
});
_logger.LogDebug($"Multiple-episode file detected. Adding episode ${episodeNumber}");
episodeNumber++;
epToAdd.Add(new EmbyEpisode
{
EmbyId = ep.Id,
EpisodeNumber = episodeNumber,
SeasonNumber = ep.ParentIndexNumber,
ParentId = ep.SeriesId,
TvDbId = ep.ProviderIds.Tvdb,
TheMovieDbId = ep.ProviderIds.Tmdb,
ImdbId = ep.ProviderIds.Imdb,
Title = ep.Name,
AddedAt = DateTime.UtcNow
});
} while (episodeNumber < ep.IndexNumberEnd.Value);
}
}
}

@ -106,12 +106,6 @@ namespace Ombi.Schedule.Jobs.Jellyfin
{
processed++;
if (ep.LocationType?.Equals("Virtual", StringComparison.InvariantCultureIgnoreCase) ?? false)
{
// For some reason Jellyfin is not respecting the `IsVirtualItem` field.
continue;
}
// Let's make sure we have the parent request, stop those pesky forign key errors,
// Damn me having data integrity
var parent = await _repo.GetByJellyfinId(ep.SeriesId);
@ -152,18 +146,25 @@ namespace Ombi.Schedule.Jobs.Jellyfin
if (ep.IndexNumberEnd.HasValue && ep.IndexNumberEnd.Value != ep.IndexNumber)
{
epToAdd.Add(new JellyfinEpisode
int episodeNumber = ep.IndexNumber;
do
{
JellyfinId = ep.Id,
EpisodeNumber = ep.IndexNumberEnd.Value,
SeasonNumber = ep.ParentIndexNumber,
ParentId = ep.SeriesId,
TvDbId = ep.ProviderIds.Tvdb,
TheMovieDbId = ep.ProviderIds.Tmdb,
ImdbId = ep.ProviderIds.Imdb,
Title = ep.Name,
AddedAt = DateTime.UtcNow
});
_logger.LogDebug($"Multiple-episode file detected. Adding episode ${episodeNumber}");
episodeNumber++;
epToAdd.Add(new JellyfinEpisode
{
JellyfinId = ep.Id,
EpisodeNumber = episodeNumber,
SeasonNumber = ep.ParentIndexNumber,
ParentId = ep.SeriesId,
TvDbId = ep.ProviderIds.Tvdb,
TheMovieDbId = ep.ProviderIds.Tmdb,
ImdbId = ep.ProviderIds.Imdb,
Title = ep.Name,
AddedAt = DateTime.UtcNow
});
} while (episodeNumber < ep.IndexNumberEnd.Value);
}
}
}

Loading…
Cancel
Save