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
return AddSeries(sonarrSettings, model, rootFolderPath, qualityId);
}
// Also make sure the series is now monitored otherwise we won't search for it
series.monitored = true;
foreach (var seasons in series.seasons)
{
if (model.SeasonList.Any(x => x == seasons.seasonNumber))
{
seasons.monitored = true;
}
seasons.monitored = true;
}
// Send the update command
series = SonarrApi.UpdateSeries(series, 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)
{
@ -186,7 +183,7 @@ namespace Ombi.Core.Tv
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)
@ -217,6 +214,7 @@ namespace Ombi.Core.Tv
var season = new Season
{
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)
};
seriesToAdd.seasons.Add(season);

@ -109,7 +109,7 @@ namespace Ombi.Services.Jobs
var metadata = PlexApi.GetEpisodeMetaData(settings.PlexAuthToken, settings.FullUri, video.RatingKey);
// 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))
{
@ -119,11 +119,11 @@ namespace Ombi.Services.Jobs
entities.TryAdd(
new PlexEpisodes
{
EpisodeNumber = epInfo.EpisodeNumber,
EpisodeNumber = epInfo?.EpisodeNumber ?? 0,
EpisodeTitle = metadataVideo.Title,
ProviderId = epInfo.ProviderId,
ProviderId = epInfo?.ProviderId ?? "",
RatingKey = metadataVideo.RatingKey,
SeasonNumber = epInfo.SeasonNumber,
SeasonNumber = epInfo?.SeasonNumber ?? 0,
ShowTitle = metadataVideo.GrandparentTitle
},
1);

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

Loading…
Cancel
Save