Merge pull request #4470 from Ombi-app/small-changes

Small changes
pull/4473/head
Jamie 3 years ago committed by GitHub
commit 97e939de19
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -309,6 +309,22 @@ namespace Ombi.Core.Senders
private async Task SendToSonarr(ChildRequests model, SonarrSeries result, SonarrSettings s) private async Task SendToSonarr(ChildRequests model, SonarrSeries result, SonarrSettings s)
{ {
// Check to ensure we have the all the seasons, ensure the Sonarr metadata has grabbed all the data
Season existingSeason = null;
foreach (var season in model.SeasonRequests)
{
var attempt = 0;
existingSeason = result.seasons.FirstOrDefault(x => x.seasonNumber == season.SeasonNumber);
while (existingSeason == null && attempt < 5)
{
attempt++;
Logger.LogInformation("There was no season numer {0} in Sonarr for title {1}. Will try again as the metadata did not get created", season.SeasonNumber, model.ParentRequest.Title);
result = await SonarrApi.GetSeriesById(result.id, s.ApiKey, s.FullUri);
existingSeason = result.seasons.FirstOrDefault(x => x.seasonNumber == season.SeasonNumber);
await Task.Delay(500);
}
}
var episodesToUpdate = new List<Episode>(); var episodesToUpdate = new List<Episode>();
// Ok, now let's sort out the episodes. // Ok, now let's sort out the episodes.
@ -327,24 +343,20 @@ namespace Ombi.Core.Senders
await Task.Delay(500); await Task.Delay(500);
} }
var seriesChanges = false;
foreach (var req in model.SeasonRequests) foreach (var season in model.SeasonRequests)
{ {
foreach (var ep in req.Episodes) foreach (var ep in season.Episodes)
{ {
var sonarrEp = sonarrEpList.FirstOrDefault(x => var sonarrEp = sonarrEpList.FirstOrDefault(x =>
x.episodeNumber == ep.EpisodeNumber && x.seasonNumber == req.SeasonNumber); x.episodeNumber == ep.EpisodeNumber && x.seasonNumber == season.SeasonNumber);
if (sonarrEp != null && !sonarrEp.monitored) if (sonarrEp != null && !sonarrEp.monitored)
{ {
sonarrEp.monitored = true; sonarrEp.monitored = true;
episodesToUpdate.Add(sonarrEp); episodesToUpdate.Add(sonarrEp);
} }
} }
}
var seriesChanges = false;
foreach (var season in model.SeasonRequests)
{
var sonarrEpisodeList = sonarrEpList.Where(x => x.seasonNumber == season.SeasonNumber).ToList(); var sonarrEpisodeList = sonarrEpList.Where(x => x.seasonNumber == season.SeasonNumber).ToList();
var sonarrEpCount = sonarrEpisodeList.Count; var sonarrEpCount = sonarrEpisodeList.Count;
var ourRequestCount = season.Episodes.Count; var ourRequestCount = season.Episodes.Count;
@ -358,14 +370,6 @@ namespace Ombi.Core.Senders
//var distinctEpisodes = ourEpisodes.Distinct().ToList(); //var distinctEpisodes = ourEpisodes.Distinct().ToList();
//var missingEpisodes = Enumerable.Range(distinctEpisodes.Min(), distinctEpisodes.Count).Except(distinctEpisodes); //var missingEpisodes = Enumerable.Range(distinctEpisodes.Min(), distinctEpisodes.Count).Except(distinctEpisodes);
var existingSeason =
result.seasons.FirstOrDefault(x => x.seasonNumber == season.SeasonNumber);
if (existingSeason == null)
{
Logger.LogError("There was no season numer {0} in Sonarr for title {1}", season.SeasonNumber, model.ParentRequest.Title);
continue;
}
if (sonarrEpCount == ourRequestCount /*|| !missingEpisodes.Any()*/) if (sonarrEpCount == ourRequestCount /*|| !missingEpisodes.Any()*/)
{ {

@ -1,11 +1,12 @@
import { AfterViewInit, Component, OnInit, ViewChild } from "@angular/core"; import { AfterViewInit, Component, OnInit, ViewChild } from "@angular/core";
import { Router } from "@angular/router"; import { IdentityService, NotificationService, SettingsService } from "../../services";
import { CustomizationFacade } from "../../state/customization/customization.facade";
import { ICreateWizardUser } from "../../interfaces"; import { ICreateWizardUser } from "../../interfaces";
import { IdentityService, NotificationService } from "../../services";
import { IOmbiConfigModel } from "../models/OmbiConfigModel"; import { IOmbiConfigModel } from "../models/OmbiConfigModel";
import { WizardService } from "../services/wizard.service";
import { MatHorizontalStepper } from'@angular/material/stepper'; import { MatHorizontalStepper } from'@angular/material/stepper';
import { StepperSelectionEvent } from "@angular/cdk/stepper"; import { Router } from "@angular/router";
import { WizardService } from "../services/wizard.service";
@Component({ @Component({
templateUrl: "./welcome.component.html", templateUrl: "./welcome.component.html",
@ -18,7 +19,8 @@ export class WelcomeComponent implements OnInit {
public config: IOmbiConfigModel; public config: IOmbiConfigModel;
constructor(private router: Router, private identityService: IdentityService, constructor(private router: Router, private identityService: IdentityService,
private notificationService: NotificationService, private WizardService: WizardService) { } private notificationService: NotificationService, private WizardService: WizardService,
private settingsService: SettingsService, private customizationFacade: CustomizationFacade) { }
public ngOnInit(): void { public ngOnInit(): void {
this.localUser = { this.localUser = {
@ -34,20 +36,40 @@ export class WelcomeComponent implements OnInit {
} }
public createUser() { public createUser() {
this.WizardService.addOmbiConfig(this.config).subscribe(config => { if (this.config.applicationUrl) {
if(config != null) { this.settingsService.verifyUrl(this.config.applicationUrl).subscribe(x => {
this.identityService.createWizardUser(this.localUser).subscribe(x => { if (!x) {
if (x.result) { this.notificationService.error(`The URL "${this.config.applicationUrl}" is not valid. Please format it correctly e.g. http://www.google.com/`);
// save the config this.stepper.selectedIndex = 3;
this.router.navigate(["login"]); return;
}
this.saveConfig();
});
} else { } else {
if (x.errors.length > 0) { this.saveConfig();
this.notificationService.error(x.errors[0]);
this.stepper.previous();
}
} }
});
} }
}, configErr => this.notificationService.error(configErr));
private saveConfig() {
this.WizardService.addOmbiConfig(this.config).subscribe({
next: (config) => {
if(config != null) {
this.identityService.createWizardUser(this.localUser).subscribe(x => {
if (x.result) {
this.customizationFacade.loadCustomziationSettings().subscribe();
// save the config
this.router.navigate(["login"]);
} else {
if (x.errors.length > 0) {
this.notificationService.error(x.errors[0]);
this.stepper.previous();
}
}
});
}
},
error: (configErr) => this.notificationService.error(configErr)
});
} }
} }

@ -334,6 +334,7 @@ namespace Ombi.Controllers.V1
[ApiExplorerSettings(IgnoreApi = true)] [ApiExplorerSettings(IgnoreApi = true)]
[HttpPost("customization/urlverify")] [HttpPost("customization/urlverify")]
[AllowAnonymous]
public bool VerifyUrl([FromBody]UrlVerifyModel url) public bool VerifyUrl([FromBody]UrlVerifyModel url)
{ {
return Uri.TryCreate(url.Url, UriKind.Absolute, out var __); return Uri.TryCreate(url.Url, UriKind.Absolute, out var __);

Loading…
Cancel
Save