Finished reworking the Sonarr Integration. Seems to be working as expected, faster and most stable. It's Not A Toomah!

pull/1334/head
tidusjar 8 years ago
parent 858171e92a
commit 4836ab7e6c

@ -120,24 +120,21 @@ namespace Ombi.Core.Tv
// Add the series // Add the series
return AddSeries(sonarrSettings, model, rootFolderPath, qualityId); return AddSeries(sonarrSettings, model, rootFolderPath, qualityId);
} }
// Also make sure the series is now monitored otherwise we won't search for it // Also make sure the series is now monitored otherwise we won't search for it
series.monitored = true; series.monitored = true;
foreach (var seasons in series.seasons) foreach (var seasons in series.seasons)
{ {
if (model.SeasonList.Any(x => x == seasons.seasonNumber)) seasons.monitored = true;
{
seasons.monitored = true;
}
} }
// Send the update command // Send the update command
series = SonarrApi.UpdateSeries(series, sonarrSettings.ApiKey, sonarrSettings.FullUri); series = SonarrApi.UpdateSeries(series, sonarrSettings.ApiKey, sonarrSettings.FullUri);
SonarrApi.SearchForSeries(series.id, sonarrSettings.ApiKey, sonarrSettings.FullUri); SonarrApi.SearchForSeries(series.id, sonarrSettings.ApiKey, sonarrSettings.FullUri);
return new SonarrAddSeries{title = series.title}; return new SonarrAddSeries { title = series.title };
} }
private async Task<SonarrAddSeries> ProcessSonarrEpisodeRequest(SonarrSettings sonarrSettings, RequestedModel model, int qualityId, string rootFolderPath) private async Task<SonarrAddSeries> ProcessSonarrEpisodeRequest(SonarrSettings sonarrSettings, RequestedModel model, int qualityId, string rootFolderPath)
{ {
@ -186,7 +183,7 @@ namespace Ombi.Core.Tv
await RequestEpisodesForSonarr(model, series.id, sonarrSettings); await RequestEpisodesForSonarr(model, series.id, sonarrSettings);
} }
return new SonarrAddSeries(){title = model.Title}; return new SonarrAddSeries() { title = model.Title };
} }
public SonarrAddSeries AddSeries(SonarrSettings sonarrSettings, RequestedModel model, string rootFolderPath, int qualityId) public SonarrAddSeries AddSeries(SonarrSettings sonarrSettings, RequestedModel model, string rootFolderPath, int qualityId)
@ -217,6 +214,7 @@ namespace Ombi.Core.Tv
var season = new Season var season = new Season
{ {
seasonNumber = i, seasonNumber = i,
// The model.SeasonList.Lenth is 0 when this is a "request all"
monitored = model.SeasonList.Length == 0 || model.SeasonList.Any(x => x == i) monitored = model.SeasonList.Length == 0 || model.SeasonList.Any(x => x == i)
}; };
seriesToAdd.seasons.Add(season); seriesToAdd.seasons.Add(season);

@ -109,7 +109,7 @@ namespace Ombi.Services.Jobs
var metadata = PlexApi.GetEpisodeMetaData(settings.PlexAuthToken, settings.FullUri, video.RatingKey); var metadata = PlexApi.GetEpisodeMetaData(settings.PlexAuthToken, settings.FullUri, video.RatingKey);
// Loop through the metadata and create the model to insert into the DB // Loop through the metadata and create the model to insert into the DB
foreach (var metadataVideo in metadata.Video) foreach (var metadataVideo in metadata?.Video ?? new List<Video>())
{ {
if(string.IsNullOrEmpty(metadataVideo.GrandparentTitle)) if(string.IsNullOrEmpty(metadataVideo.GrandparentTitle))
{ {
@ -119,11 +119,11 @@ namespace Ombi.Services.Jobs
entities.TryAdd( entities.TryAdd(
new PlexEpisodes new PlexEpisodes
{ {
EpisodeNumber = epInfo.EpisodeNumber, EpisodeNumber = epInfo?.EpisodeNumber ?? 0,
EpisodeTitle = metadataVideo.Title, EpisodeTitle = metadataVideo.Title,
ProviderId = epInfo.ProviderId, ProviderId = epInfo?.ProviderId ?? "",
RatingKey = metadataVideo.RatingKey, RatingKey = metadataVideo.RatingKey,
SeasonNumber = epInfo.SeasonNumber, SeasonNumber = epInfo?.SeasonNumber ?? 0,
ShowTitle = metadataVideo.GrandparentTitle ShowTitle = metadataVideo.GrandparentTitle
}, },
1); 1);

@ -1120,7 +1120,8 @@ namespace Ombi.UI.Modules
RequestedUsers = new List<string> { Username }, RequestedUsers = new List<string> { Username },
Issues = IssueState.None, Issues = IssueState.None,
ImdbId = showInfo.externals?.imdb ?? string.Empty, ImdbId = showInfo.externals?.imdb ?? string.Empty,
TvDbId = showId.ToString() TvDbId = showId.ToString(),
ProviderId = showId
}; };
var totalSeasons = showInfo.Season.GroupBy(x => x.SeasonNumber); var totalSeasons = showInfo.Season.GroupBy(x => x.SeasonNumber);
@ -1886,8 +1887,8 @@ namespace Ombi.UI.Modules
{ {
model.Approved = true; model.Approved = true;
var s = await sonarrSettings; var s = await sonarrSettings;
//var sender = new TvSenderV2(SonarrApi, SickrageApi, Cache); var sender = new TvSenderV2(SonarrApi, SickrageApi, Cache);
var sender = new TvSenderOld(SonarrApi, SickrageApi, Cache); //var sender = new TvSenderOld(SonarrApi, SickrageApi, Cache);
if (s.Enabled) if (s.Enabled)
{ {
var result = await sender.SendToSonarr(s, model); var result = await sender.SendToSonarr(s, model);

Loading…
Cancel
Save