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);
|
||||
SonarrEpisode GetEpisode(string episodeId, 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);
|
||||
Series UpdateSeries(Series series, 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>
|
||||
/// Search for one or more episodes
|
||||
/// </summary>
|
||||
|
|
|
@ -147,6 +147,23 @@ namespace PlexRequests.UI.Helpers
|
|||
{
|
||||
var firstSeries = (series?.seasons?.OrderBy(x => x.seasonNumber)).FirstOrDefault(x => x.seasonNumber > 0) ?? new Season();
|
||||
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.SearchForSeason(series.id, firstSeries.seasonNumber, sonarrSettings.ApiKey,
|
||||
sonarrSettings.FullUri);
|
||||
|
@ -157,6 +174,23 @@ namespace PlexRequests.UI.Helpers
|
|||
{
|
||||
var lastSeries = series?.seasons?.OrderByDescending(x => x.seasonNumber)?.FirstOrDefault() ?? new Season();
|
||||
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.SearchForSeason(series.id, lastSeries.seasonNumber, sonarrSettings.ApiKey,
|
||||
sonarrSettings.FullUri);
|
||||
|
|
|
@ -91,7 +91,9 @@
|
|||
|
||||
</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="checkbox">
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue