From e89a07f2d49616e000d3f228af8d0f80867fe584 Mon Sep 17 00:00:00 2001 From: Dan Cooper Date: Sun, 24 Jan 2016 22:20:10 +0100 Subject: [PATCH] fixed: crash if movie/tvshow certification language (limit) is set to an unknown value --- EmberAPI/clsAPINFO.vb | 42 ++++++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/EmberAPI/clsAPINFO.vb b/EmberAPI/clsAPINFO.vb index c93bec19f..7c639e4ef 100644 --- a/EmberAPI/clsAPINFO.vb +++ b/EmberAPI/clsAPINFO.vb @@ -125,14 +125,19 @@ Public Class NFO DBMovie.Movie.Certifications.AddRange(scrapedmovie.Certifications) new_Certification = True Else - For Each tCert In scrapedmovie.Certifications - If tCert.StartsWith(APIXML.CertLanguagesXML.Language.FirstOrDefault(Function(l) l.abbreviation = Master.eSettings.MovieScraperCertLang).name) Then - DBMovie.Movie.Certifications.Clear() - DBMovie.Movie.Certifications.Add(tCert) - new_Certification = True - Exit For - End If - Next + Dim CertificationLanguage = APIXML.CertLanguagesXML.Language.FirstOrDefault(Function(l) l.abbreviation = Master.eSettings.MovieScraperCertLang) + If CertificationLanguage IsNot Nothing AndAlso CertificationLanguage.name IsNot Nothing AndAlso Not String.IsNullOrEmpty(CertificationLanguage.name) Then + For Each tCert In scrapedmovie.Certifications + If tCert.StartsWith(CertificationLanguage.name) Then + DBMovie.Movie.Certifications.Clear() + DBMovie.Movie.Certifications.Add(tCert) + new_Certification = True + Exit For + End If + Next + Else + logger.Error("Movie Certification Language (Limit) not found. Please check your settings!") + End If End If ElseIf Master.eSettings.MovieScraperCleanFields AndAlso Not Master.eSettings.MovieScraperCert AndAlso Not Master.eSettings.MovieLockCert Then DBMovie.Movie.Certifications.Clear() @@ -575,14 +580,19 @@ Public Class NFO DBTV.TVShow.Certifications.AddRange(scrapedshow.Certifications) new_Certification = True Else - For Each tCert In scrapedshow.Certifications - If tCert.StartsWith(APIXML.CertLanguagesXML.Language.FirstOrDefault(Function(l) l.abbreviation = Master.eSettings.TVScraperShowCertLang).name) Then - DBTV.TVShow.Certifications.Clear() - DBTV.TVShow.Certifications.Add(tCert) - new_Certification = True - Exit For - End If - Next + Dim CertificationLanguage = APIXML.CertLanguagesXML.Language.FirstOrDefault(Function(l) l.abbreviation = Master.eSettings.TVScraperShowCertLang) + If CertificationLanguage IsNot Nothing AndAlso CertificationLanguage.name IsNot Nothing AndAlso Not String.IsNullOrEmpty(CertificationLanguage.name) Then + For Each tCert In scrapedshow.Certifications + If tCert.StartsWith(CertificationLanguage.name) Then + DBTV.TVShow.Certifications.Clear() + DBTV.TVShow.Certifications.Add(tCert) + new_Certification = True + Exit For + End If + Next + Else + logger.Error("TV Show Certification Language (Limit) not found. Please check your settings!") + End If End If ElseIf Master.eSettings.TVScraperCleanFields AndAlso Not Master.eSettings.TVScraperShowCert AndAlso Not Master.eSettings.TVLockShowCert Then DBTV.TVShow.Certifications.Clear()