plexContentTo
sb.Append("");
sb.Append("");
sb.Append("");
- if (plexSettings.Enable)
- {
- await ProcessPlexMovies(plexMovies, sb, ombiSettings.DefaultLanguageCode, plexSettings.Servers.FirstOrDefault().ServerHostname ?? string.Empty);
- }
-
- if (embySettings.Enable)
- {
- await ProcessEmbyMovies(embyMovies, sb, ombiSettings.DefaultLanguageCode, embySettings.Servers.FirstOrDefault()?.ServerHostname ?? string.Empty);
- }
-
- if (jellyfinSettings.Enable)
+ foreach (var mediaServerContent in contentToSend)
{
- await ProcessJellyfinMovies(jellyfinMovies, sb, ombiSettings.DefaultLanguageCode, jellyfinSettings.Servers.FirstOrDefault()?.ServerHostname ?? string.Empty);
+ await ProcessMovies(mediaServerContent, sb, ombiSettings.DefaultLanguageCode, /*plexSettings.Servers?.FirstOrDefault()?.ServerHostname ?? */ string.Empty);
}
-
sb.Append(" ");
sb.Append(" ");
sb.Append(" | ");
@@ -605,7 +511,7 @@ private async Task BuildHtml(IQueryable plexContentTo
sb.Append("");
}
- if ((plexEpisodes.Any() || embyEp.Any() || jellyfinEp.Any()) && !settings.DisableTv)
+ if (!settings.DisableTv)
{
sb.Append("
New TV
");
sb.Append(
@@ -614,21 +520,10 @@ private async Task BuildHtml(IQueryable plexContentTo
sb.Append("");
sb.Append("");
sb.Append("");
- if (plexSettings.Enable)
+ foreach (var mediaServerContent in episodes)
{
- await ProcessPlexTv(plexEpisodes, sb, ombiSettings.DefaultLanguageCode, plexSettings.Servers.FirstOrDefault().ServerHostname ?? string.Empty);
+ await ProcessTv(mediaServerContent, sb, ombiSettings.DefaultLanguageCode, /* plexSettings.Servers.FirstOrDefault()?.ServerHostname ?? */ string.Empty);
}
-
- if (embySettings.Enable)
- {
- await ProcessEmbyTv(embyEp, sb, ombiSettings.DefaultLanguageCode, embySettings.Servers.FirstOrDefault()?.ServerHostname ?? string.Empty);
- }
-
- if (jellyfinSettings.Enable)
- {
- await ProcessJellyfinTv(jellyfinEp, sb, ombiSettings.DefaultLanguageCode, jellyfinSettings.Servers.FirstOrDefault()?.ServerHostname ?? string.Empty);
- }
-
sb.Append(" ");
sb.Append(" ");
sb.Append(" | ");
@@ -657,7 +552,7 @@ private async Task BuildHtml(IQueryable plexContentTo
return sb.ToString();
}
- private async Task ProcessPlexMovies(IQueryable plexContentToSend, StringBuilder sb, string defaultLanguageCode, string mediaServerUrl)
+ private async Task ProcessMovies(IQueryable plexContentToSend, StringBuilder sb, string defaultLanguageCode, string mediaServerUrl)
{
int count = 0;
var ordered = plexContentToSend.OrderByDescending(x => x.AddedAt);
@@ -681,7 +576,7 @@ private async Task ProcessPlexMovies(IQueryable plexContentTo
}
catch (Exception e)
{
- _log.LogError(e, "Error when Processing Plex Movies {0}", info.Title);
+ _log.LogError(e, "Error when Processing Movies {0}", info.Title);
}
finally
{
@@ -731,112 +626,6 @@ private async Task ProcessAlbums(HashSet albumsToSend, StringB
}
}
- private async Task ProcessEmbyMovies(IQueryable embyContent, StringBuilder sb, string defaultLangaugeCode, string customUrl)
- {
- int count = 0;
- var ordered = embyContent.OrderByDescending(x => x.AddedAt);
- foreach (var content in ordered)
- {
- var theMovieDbId = content.TheMovieDbId;
- if (!content.TheMovieDbId.HasValue())
- {
- var imdbId = content.ImdbId;
- var findResult = await _movieApi.Find(imdbId, ExternalSource.imdb_id);
- var result = findResult.movie_results?.FirstOrDefault();
- if (result == null)
- {
- continue;
- }
-
- theMovieDbId = result.id.ToString();
- }
-
- var mediaurl = content.Url;
- if (customUrl.HasValue())
- {
- mediaurl = customUrl;
- }
- var info = await _movieApi.GetMovieInformationWithExtraInfo(StringHelper.IntParseLinq(theMovieDbId), defaultLangaugeCode);
- if (info == null)
- {
- continue;
- }
- try
- {
- CreateMovieHtmlContent(sb, info, mediaurl);
- count += 1;
- }
- catch (Exception e)
- {
- _log.LogError(e, "Error when processing Emby Movies {0}", info.Title);
- }
- finally
- {
- EndLoopHtml(sb);
- }
-
- if (count == 2)
- {
- count = 0;
- sb.Append("");
- sb.Append("");
- }
- }
- }
-
- private async Task ProcessJellyfinMovies(IQueryable embyContent, StringBuilder sb, string defaultLangaugeCode, string customUrl)
- {
- int count = 0;
- var ordered = embyContent.OrderByDescending(x => x.AddedAt);
- foreach (var content in ordered)
- {
- var theMovieDbId = content.TheMovieDbId;
- if (!content.TheMovieDbId.HasValue())
- {
- var imdbId = content.ImdbId;
- var findResult = await _movieApi.Find(imdbId, ExternalSource.imdb_id);
- var result = findResult.movie_results?.FirstOrDefault();
- if (result == null)
- {
- continue;
- }
-
- theMovieDbId = result.id.ToString();
- }
-
- var mediaurl = content.Url;
- if (customUrl.HasValue())
- {
- mediaurl = customUrl;
- }
- var info = await _movieApi.GetMovieInformationWithExtraInfo(StringHelper.IntParseLinq(theMovieDbId), defaultLangaugeCode);
- if (info == null)
- {
- continue;
- }
- try
- {
- CreateMovieHtmlContent(sb, info, mediaurl);
- count += 1;
- }
- catch (Exception e)
- {
- _log.LogError(e, "Error when processing Jellyfin Movies {0}", info.Title);
- }
- finally
- {
- EndLoopHtml(sb);
- }
-
- if (count == 2)
- {
- count = 0;
- sb.Append("
");
- sb.Append("");
- }
- }
- }
-
private void CreateMovieHtmlContent(StringBuilder sb, MovieResponseDto info, string mediaurl)
{
AddBackgroundInsideTable(sb, $"https://image.tmdb.org/t/p/w1280/{info.BackdropPath}");
@@ -909,24 +698,23 @@ private void CreateAlbumHtmlContent(StringBuilder sb, AlbumLookup info)
AddGenres(sb, $"Type: {info.albumType}");
}
- private async Task ProcessPlexTv(HashSet plexContent, StringBuilder sb, string languageCode, string serverHostname)
+ private async Task ProcessTv(IEnumerable episodes, StringBuilder sb, string languageCode, string serverHostname)
{
- var series = new List();
- foreach (var plexEpisode in plexContent)
+ var series = new List();
+ foreach (var episode in episodes)
{
- var alreadyAdded = series.FirstOrDefault(x => x.Key == plexEpisode.PlexSeries.Key);
- if (alreadyAdded != null)
+ var existingSeries = episode.SeriesIsIn(series);
+ if (existingSeries != null)
{
- var episodeExists = alreadyAdded.PlexEpisodes.Any(x => x.Key == plexEpisode.Key);
- if (!episodeExists)
+ if (!episode.IsIn(existingSeries))
{
- alreadyAdded.Episodes.Add(plexEpisode);
+ existingSeries.Episodes.Add(episode);
}
}
else
{
- plexEpisode.Series.Episodes = new List { plexEpisode };
- series.Add(plexEpisode.PlexSeries);
+ episode.Series.Episodes = new List { episode };
+ series.Add(episode.Series);
}
}
@@ -1035,214 +823,6 @@ private async Task ProcessPlexTv(HashSet plexContent, StringBuilder
}
}
-
-
- private async Task ProcessEmbyTv(HashSet embyContent, StringBuilder sb, string languageCode, string serverUrl)
- {
- var series = new List();
- foreach (var episode in embyContent)
- {
- var alreadyAdded = series.FirstOrDefault(x => x.EmbyId == episode.EmbySeries.EmbyId);
- if (alreadyAdded != null)
- {
- alreadyAdded.Episodes.Add(episode);
- }
- else
- {
- episode.Series.Episodes = new List