mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-07-16 02:02:55 -07:00
Fixed #515
This commit is contained in:
parent
e563b5bf3d
commit
24b1d82084
4 changed files with 57 additions and 1 deletions
|
@ -46,6 +46,7 @@ namespace PlexRequests.Api.Interfaces
|
||||||
IEnumerable<SonarrEpisodes> GetEpisodes(string seriesId, string apiKey, Uri baseUrl);
|
IEnumerable<SonarrEpisodes> GetEpisodes(string seriesId, string apiKey, Uri baseUrl);
|
||||||
SonarrEpisode GetEpisode(string episodeId, string apiKey, Uri baseUrl);
|
SonarrEpisode GetEpisode(string episodeId, string apiKey, Uri baseUrl);
|
||||||
SonarrEpisode UpdateEpisode(SonarrEpisode episodeInfo, string apiKey, Uri baseUrl);
|
SonarrEpisode UpdateEpisode(SonarrEpisode episodeInfo, string apiKey, Uri baseUrl);
|
||||||
|
SonarrEpisodes UpdateEpisode(SonarrEpisodes episodeInfo, string apiKey, Uri baseUrl);
|
||||||
SonarrAddEpisodeResult SearchForEpisodes(int[] episodeIds, string apiKey, Uri baseUrl);
|
SonarrAddEpisodeResult SearchForEpisodes(int[] episodeIds, string apiKey, Uri baseUrl);
|
||||||
Series UpdateSeries(Series series, string apiKey, Uri baseUrl);
|
Series UpdateSeries(Series series, string apiKey, Uri baseUrl);
|
||||||
SonarrSeasonSearchResult SearchForSeason(int seriesId, int seasonNumber, string apiKey, Uri baseUrl);
|
SonarrSeasonSearchResult SearchForSeason(int seriesId, int seasonNumber, string apiKey, Uri baseUrl);
|
||||||
|
|
|
@ -273,6 +273,25 @@ namespace PlexRequests.Api
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SonarrEpisodes UpdateEpisode(SonarrEpisodes episodeInfo, string apiKey, Uri baseUrl)
|
||||||
|
{
|
||||||
|
var request = new RestRequest { Resource = "/api/Episode", Method = Method.PUT };
|
||||||
|
request.AddHeader("X-Api-Key", apiKey);
|
||||||
|
request.AddJsonBody(episodeInfo);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var policy = RetryHandler.RetryAndWaitPolicy((exception, timespan) =>
|
||||||
|
Log.Error(exception, "Exception when calling UpdateEpisode for Sonarr, Retrying {0}", timespan));
|
||||||
|
|
||||||
|
return policy.Execute(() => Api.ExecuteJson<SonarrEpisodes>(request, baseUrl));
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Log.Error(e, "There has been an API exception when put the Sonarr UpdateEpisode");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Search for one or more episodes
|
/// Search for one or more episodes
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -147,6 +147,23 @@ namespace PlexRequests.UI.Helpers
|
||||||
{
|
{
|
||||||
var firstSeries = (series?.seasons?.OrderBy(x => x.seasonNumber)).FirstOrDefault(x => x.seasonNumber > 0) ?? new Season();
|
var firstSeries = (series?.seasons?.OrderBy(x => x.seasonNumber)).FirstOrDefault(x => x.seasonNumber > 0) ?? new Season();
|
||||||
firstSeries.monitored = true;
|
firstSeries.monitored = true;
|
||||||
|
var episodes = SonarrApi.GetEpisodes(series.id.ToString(), sonarrSettings.ApiKey, sonarrSettings.FullUri); // Need to get the episodes so we mark them as monitored
|
||||||
|
|
||||||
|
var episodesToUpdate = new List<SonarrEpisodes>();
|
||||||
|
foreach (var e in episodes)
|
||||||
|
{
|
||||||
|
if (e.hasFile || e.seasonNumber != firstSeries.seasonNumber)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
e.monitored = true; // Mark only the episodes we want as monitored
|
||||||
|
episodesToUpdate.Add(e);
|
||||||
|
}
|
||||||
|
foreach (var sonarrEpisode in episodesToUpdate)
|
||||||
|
{
|
||||||
|
SonarrApi.UpdateEpisode(sonarrEpisode, sonarrSettings.ApiKey, sonarrSettings.FullUri);
|
||||||
|
}
|
||||||
|
|
||||||
SonarrApi.UpdateSeries(series, sonarrSettings.ApiKey, sonarrSettings.FullUri);
|
SonarrApi.UpdateSeries(series, sonarrSettings.ApiKey, sonarrSettings.FullUri);
|
||||||
SonarrApi.SearchForSeason(series.id, firstSeries.seasonNumber, sonarrSettings.ApiKey,
|
SonarrApi.SearchForSeason(series.id, firstSeries.seasonNumber, sonarrSettings.ApiKey,
|
||||||
sonarrSettings.FullUri);
|
sonarrSettings.FullUri);
|
||||||
|
@ -157,6 +174,23 @@ namespace PlexRequests.UI.Helpers
|
||||||
{
|
{
|
||||||
var lastSeries = series?.seasons?.OrderByDescending(x => x.seasonNumber)?.FirstOrDefault() ?? new Season();
|
var lastSeries = series?.seasons?.OrderByDescending(x => x.seasonNumber)?.FirstOrDefault() ?? new Season();
|
||||||
lastSeries.monitored = true;
|
lastSeries.monitored = true;
|
||||||
|
|
||||||
|
var episodes = SonarrApi.GetEpisodes(series.id.ToString(), sonarrSettings.ApiKey, sonarrSettings.FullUri); // Need to get the episodes so we mark them as monitored
|
||||||
|
|
||||||
|
var episodesToUpdate = new List<SonarrEpisodes>();
|
||||||
|
foreach (var e in episodes)
|
||||||
|
{
|
||||||
|
if (e.hasFile || e.seasonNumber != lastSeries.seasonNumber)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
e.monitored = true; // Mark only the episodes we want as monitored
|
||||||
|
episodesToUpdate.Add(e);
|
||||||
|
}
|
||||||
|
foreach (var sonarrEpisode in episodesToUpdate)
|
||||||
|
{
|
||||||
|
SonarrApi.UpdateEpisode(sonarrEpisode, sonarrSettings.ApiKey, sonarrSettings.FullUri);
|
||||||
|
}
|
||||||
SonarrApi.UpdateSeries(series, sonarrSettings.ApiKey, sonarrSettings.FullUri);
|
SonarrApi.UpdateSeries(series, sonarrSettings.ApiKey, sonarrSettings.FullUri);
|
||||||
SonarrApi.SearchForSeason(series.id, lastSeries.seasonNumber, sonarrSettings.ApiKey,
|
SonarrApi.SearchForSeason(series.id, lastSeries.seasonNumber, sonarrSettings.ApiKey,
|
||||||
sonarrSettings.FullUri);
|
sonarrSettings.FullUri);
|
||||||
|
|
|
@ -91,7 +91,9 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<button id="recentlyAddedBtn" class="btn btn-primary-outline">Send test email to Admin</button>
|
<button id="recentlyAddedBtn" class="btn btn-primary-outline">Send test email to Admin</button>
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue