diff --git a/Addons/scraper.EmberCore.XML/scraperMovieXMLModule.vb b/Addons/scraper.EmberCore.XML/scraperMovieXMLModule.vb index 02183fe..ad26585 100644 --- a/Addons/scraper.EmberCore.XML/scraperMovieXMLModule.vb +++ b/Addons/scraper.EmberCore.XML/scraperMovieXMLModule.vb @@ -392,7 +392,7 @@ Public Class EmberXMLScraperModule End If If Options.bCountry Then DBMovie.Movie.Country = Web.HttpUtility.HtmlDecode(Strings.Join(lMediaTag.Country.ToArray(), " / ")) If Options.bVotes Then DBMovie.Movie.Votes = lMediaTag.Votes.ToString - If Options.bWriters Then DBMovie.Movie.Credits = Web.HttpUtility.HtmlDecode(Strings.Join(lMediaTag.Writers.ToArray, " / ")) + If Options.bWriters Then DBMovie.Movie.OldCredits = Web.HttpUtility.HtmlDecode(Strings.Join(lMediaTag.Writers.ToArray, " / ")) If Options.bYear Then DBMovie.Movie.Year = lMediaTag.Year.ToString DBMovie.Movie.PlayCount = lMediaTag.PlayCount.ToString DBMovie.Movie.ID = If(String.IsNullOrEmpty(lMediaTag.ID), DBMovie.Movie.ID, lMediaTag.ID) diff --git a/Addons/scraper.EmberCore/Scraper/clsScrapeIMDB.vb b/Addons/scraper.EmberCore/Scraper/clsScrapeIMDB.vb index 886cb1a..59e534a 100644 --- a/Addons/scraper.EmberCore/Scraper/clsScrapeIMDB.vb +++ b/Addons/scraper.EmberCore/Scraper/clsScrapeIMDB.vb @@ -540,7 +540,7 @@ mPlot: Select Writer = Web.HttpUtility.HtmlDecode(String.Concat(DirectCast(M, Match).Groups("name").ToString, If(FullCrew, " (writer)", String.Empty))) If q.Count > 0 Then - IMDBMovie.Credits = Strings.Join(q.ToArray, " / ").Trim + IMDBMovie.OldCredits = Strings.Join(q.ToArray, " / ").Trim End If End If End If @@ -569,7 +569,7 @@ mPlot: Select Producer = Web.HttpUtility.HtmlDecode(String.Concat(P1.Groups("name").ToString, " (producer)")) If Pr.Count > 0 Then - IMDBMovie.Credits = String.Concat(IMDBMovie.Credits, " / ", Strings.Join(Pr.ToArray, " / ").Trim) + IMDBMovie.OldCredits = String.Concat(IMDBMovie.OldCredits, " / ", Strings.Join(Pr.ToArray, " / ").Trim) End If End If @@ -581,7 +581,7 @@ mPlot: Select Musician = Web.HttpUtility.HtmlDecode(String.Concat(M1.Groups("name").ToString, " (music by)")) If Mu.Count > 0 Then - IMDBMovie.Credits = String.Concat(IMDBMovie.Credits, " / ", Strings.Join(Mu.ToArray, " / ").Trim) + IMDBMovie.OldCredits = String.Concat(IMDBMovie.OldCredits, " / ", Strings.Join(Mu.ToArray, " / ").Trim) End If End If @@ -599,7 +599,7 @@ mPlot: Where Not String.IsNullOrEmpty(DirectCast(P1, Match).Groups("name").ToString) _ Select Studio = Web.HttpUtility.HtmlDecode(DirectCast(P1, Match).Groups("name").ToString) If Ps.Count > 0 Then - IMDBMovie.Credits = String.Concat(IMDBMovie.Credits, " / ", Strings.Join(Ps.ToArray, " / ").Trim) + IMDBMovie.OldCredits = String.Concat(IMDBMovie.OldCredits, " / ", Strings.Join(Ps.ToArray, " / ").Trim) End If End If End If diff --git a/Ember Media Manager/dlgEditMovie.vb b/Ember Media Manager/dlgEditMovie.vb index 309bacb..1a6b1dc 100644 --- a/Ember Media Manager/dlgEditMovie.vb +++ b/Ember Media Manager/dlgEditMovie.vb @@ -644,8 +644,8 @@ Public Class dlgEditMovie .txtDirector.Text = Master.currMovie.Movie.Director End If - If Not String.IsNullOrEmpty(Master.currMovie.Movie.Credits) Then - .txtCredits.Text = Master.currMovie.Movie.Credits + If Not String.IsNullOrEmpty(Master.currMovie.Movie.OldCredits) Then + .txtCredits.Text = Master.currMovie.Movie.OldCredits End If @@ -1225,7 +1225,7 @@ Public Class dlgEditMovie Master.currMovie.Movie.Rating = .tmpRating Master.currMovie.Movie.Runtime = .txtRuntime.Text.Trim Master.currMovie.Movie.ReleaseDate = .txtReleaseDate.Text.Trim - Master.currMovie.Movie.Credits = .txtCredits.Text.Trim + Master.currMovie.Movie.OldCredits = .txtCredits.Text.Trim Master.currMovie.Movie.Trailer = .txtTrailer.Text.Trim Master.currMovie.Movie.Studio = .txtStudio.Text.Trim diff --git a/EmberAPI/clsAPIDatabase.vb b/EmberAPI/clsAPIDatabase.vb index 37339cb..c49d216 100644 --- a/EmberAPI/clsAPIDatabase.vb +++ b/EmberAPI/clsAPIDatabase.vb @@ -566,7 +566,7 @@ Public Class Database If Not DBNull.Value.Equals(SQLreader("ReleaseDate")) Then .ReleaseDate = SQLreader("ReleaseDate").ToString If Not DBNull.Value.Equals(SQLreader("Studio")) Then .Studio = SQLreader("Studio").ToString If Not DBNull.Value.Equals(SQLreader("Director")) Then .Director = SQLreader("Director").ToString - If Not DBNull.Value.Equals(SQLreader("Credits")) Then .Credits = SQLreader("Credits").ToString + If Not DBNull.Value.Equals(SQLreader("Credits")) Then .OldCredits = SQLreader("Credits").ToString If Not DBNull.Value.Equals(SQLreader("PlayCount")) Then .PlayCount = SQLreader("PlayCount").ToString If Not DBNull.Value.Equals(SQLreader("Watched")) Then .Watched = SQLreader("Watched").ToString If Not DBNull.Value.Equals(SQLreader("FanartURL")) AndAlso Not Master.eSettings.NoSaveImagesToNfo Then .Fanart.URL = SQLreader("FanartURL").ToString @@ -1156,7 +1156,7 @@ Public Class Database parRuntime.Value = _movieDB.Movie.Runtime parReleaseDate.Value = _movieDB.Movie.ReleaseDate parDirector.Value = _movieDB.Movie.Director - parCredits.Value = _movieDB.Movie.Credits + parCredits.Value = _movieDB.Movie.OldCredits parPlaycount.Value = _movieDB.Movie.PlayCount parWatched.Value = _movieDB.Movie.Watched parTrailer.Value = _movieDB.Movie.Trailer diff --git a/EmberAPI/clsAPIMediaContainers.vb b/EmberAPI/clsAPIMediaContainers.vb index 5e463db..14cc876 100644 --- a/EmberAPI/clsAPIMediaContainers.vb +++ b/EmberAPI/clsAPIMediaContainers.vb @@ -378,17 +378,15 @@ Namespace MediaContainers Private _year As String Private _releaseDate As String Private _top250 As String - Private _country As String - Private _countrylist As New List(Of String) + Private _countries As New List(Of String) Private _rating As String Private _votes As String Private _mpaa As String Private _certification As String - Private _genre As String - Private _genrelist As New List(Of String) + Private _genres As New List(Of String) Private _studio As String - Private _director As String - Private _credits As String + Private _directors As New List(Of String) + Private _credits As New List(Of String) Private _tagline As String Private _outline As String Private _plot As String @@ -558,31 +556,48 @@ Namespace MediaContainers End Property _ + Public Property Countries() As List(Of String) + Get + Return _countries + End Get + Set(ByVal value As List(Of String)) + If IsNothing(value) Then + _countries.Clear() + Else + _countries = value + End If + End Set + End Property + + _ + _ Public Property LCountry() As List(Of String) Get - Return Me._countrylist + Return Countries End Get Set(ByVal value As List(Of String)) - Me._countrylist = value + Countries = value End Set End Property + 0' instead.")> _ _ Public ReadOnly Property LCountrySpecified() As Boolean Get - Return Not String.IsNullOrEmpty(Me._country) + Return (_countries.Count > 0) End Get End Property + + _ _ Public Property Country() As String Get - Return Me._country + Return String.Join(" / ", _countries.ToArray) End Get Set(ByVal value As String) - Me._country = value - Me._countrylist.Clear() - Me._countrylist.Add(value) + _countries.Clear() + AddCountry(value) End Set End Property @@ -655,31 +670,47 @@ Namespace MediaContainers End Property _ + Public Property Genres() As List(Of String) + Get + Return _genres + End Get + Set(ByVal value As List(Of String)) + If IsNothing(value) Then + _genres.Clear() + Else + _genres = value + End If + End Set + End Property + + _ + _ Public Property LGenre() As List(Of String) Get - Return Me._genrelist + Return Genres End Get Set(ByVal value As List(Of String)) - Me._genrelist = value + Genres = value End Set End Property + 0' instead.")> _ _ Public ReadOnly Property LGenreSpecified() As Boolean Get - Return Not String.IsNullOrEmpty(Me._genre) + Return (_genres.Count > 0) End Get End Property + _ _ Public Property Genre() As String Get - Return Me._genre + Return String.Join(" / ", _genres.ToArray) End Get Set(ByVal value As String) - Me._genre = value - Me._genrelist.Clear() - Me._genrelist.Add(value) + _genres.Clear() + AddGenre(value) End Set End Property @@ -701,36 +732,70 @@ Namespace MediaContainers End Property _ + Public Property Directors() As List(Of String) + Get + Return _directors + End Get + Set(ByVal value As List(Of String)) + If IsNothing(value) Then + _directors.Clear() + Else + _directors = value + End If + End Set + End Property + + _ + _ Public Property Director() As String Get - Return Me._director + Return String.Join(" / ", _directors.ToArray) End Get Set(ByVal value As String) - Me._director = value + _directors.Clear() + AddDirector(value) End Set End Property + 0' instead.")> _ _ Public ReadOnly Property DirectorSpecified() As Boolean Get - Return Not String.IsNullOrEmpty(Me._director) + Return (_directors.Count > 0) End Get End Property _ - Public Property Credits() As String + Public Property Credits() As List(Of String) Get - Return Me._credits + Return _credits + End Get + Set(ByVal value As List(Of String)) + If IsNothing(value) Then + _credits.Clear() + Else + _credits = value + End If + End Set + End Property + + _ + _ + Public Property OldCredits() As String + Get + Return String.Join(" / ", _credits.ToArray) End Get Set(ByVal value As String) - Me._credits = value + _credits.Clear() + AddCredit(value) End Set End Property + 0' instead.")> _ _ Public ReadOnly Property CreditsSpecified() As Boolean Get - Return Not String.IsNullOrEmpty(Me._credits) + Return (_credits.Count > 0) End Get End Property @@ -1058,6 +1123,82 @@ Namespace MediaContainers Sets.Add(New [Set] With {.Set = SetName, .Order = If(Order > 0, Order.ToString, String.Empty)}) End Sub + Public Sub AddGenre(ByVal value As String) + If String.IsNullOrEmpty(value) Then Return + + If value.Contains("/") Then + Dim values As String() = value.Split(New [Char]() {"/"c}) + For Each genre As String In values + genre = genre.Trim + If Not _genres.Contains(genre) Then + _genres.Add(genre) + End If + Next + Else + If Not _genres.Contains(value) Then + _genres.Add(value.Trim) + End If + End If + End Sub + + Public Sub AddDirector(ByVal value As String) + If String.IsNullOrEmpty(value) Then Return + + If value.Contains("/") Then + Dim values As String() = value.Split(New [Char]() {"/"c}) + For Each director As String In values + director = director.Trim + If Not _directors.Contains(director) And Not value = "See more" Then + _directors.Add(director) + End If + Next + Else + value = value.Trim + If Not _directors.Contains(value) And Not value = "See more" Then + _directors.Add(value.Trim) + End If + End If + End Sub + + Public Sub AddCredit(ByVal value As String) + If String.IsNullOrEmpty(value) Then Return + + If value.Contains("/") Then + Dim values As String() = value.Split(New [Char]() {"/"c}) + For Each credit As String In values + credit = credit.Trim + If Not _credits.Contains(credit) And Not value = "See more" Then + _credits.Add(credit) + End If + Next + Else + value = value.Trim + If Not _credits.Contains(value) And Not value = "See more" Then + _credits.Add(value.Trim) + End If + End If + End Sub + + Public Sub AddCountry(ByVal value As String) + If String.IsNullOrEmpty(value) Then Return + + If value.Contains("/") Then + Dim values As String() = value.Split(New [Char]() {"/"c}) + For Each country As String In values + country = country.Trim + If Not _countries.Contains(country) Then + _countries.Add(country) + End If + Next + Else + value = value.Trim + If Not _countries.Contains(value) Then + _countries.Add(value.Trim) + End If + End If + End Sub + + Public Sub Clear() 'Me._imdbid = String.Empty Me._title = String.Empty @@ -1068,20 +1209,18 @@ Namespace MediaContainers Me._votes = String.Empty Me._mpaa = String.Empty Me._top250 = String.Empty - Me._country = String.Empty - Me._countrylist = New List(Of String) + Me._countries.Clear() Me._outline = String.Empty Me._plot = String.Empty Me._tagline = String.Empty Me._trailer = String.Empty Me._certification = String.Empty - Me._genre = String.Empty - Me._genrelist = New List(Of String) + Me._genres.Clear() Me._runtime = String.Empty Me._releaseDate = String.Empty Me._studio = String.Empty - Me._director = String.Empty - Me._credits = String.Empty + Me._directors.Clear() + Me._credits.Clear() Me._playcount = String.Empty Me._watched = String.Empty Me._thumb.Clear() @@ -1282,8 +1421,7 @@ Namespace MediaContainers Private _id As String Private _episodeguideurl As String Private _rating As String - Private _genre As String - Private _genrelist As New List(Of String) + Private _genres As New List(Of String) Private _mpaa As String Private _premiered As String Private _studio As String @@ -1389,31 +1527,47 @@ Namespace MediaContainers End Property _ + Public Property Genres() As List(Of String) + Get + Return _genres + End Get + Set(ByVal value As List(Of String)) + If IsNothing(value) Then + _genres.Clear() + Else + _genres = value + End If + End Set + End Property + + _ + _ Public Property LGenre() As List(Of String) Get - Return Me._genrelist + Return Genres End Get Set(ByVal value As List(Of String)) - Me._genrelist = value + Genres = value End Set End Property + 0' instead.")> _ _ Public ReadOnly Property LGenreSpecified() As Boolean Get - Return Not String.IsNullOrEmpty(Me._genre) + Return (_genres.Count > 0) End Get End Property + _ _ Public Property Genre() As String Get - Return Me._genre + Return String.Join(" / ", _genres.ToArray) End Get Set(ByVal value As String) - Me._genre = value - Me._genrelist.Clear() - Me._genrelist.Add(value) + _genres.Clear() + AddGenre(value) End Set End Property @@ -1516,6 +1670,24 @@ Namespace MediaContainers #Region "Methods" + Public Sub AddGenre(ByVal value As String) + If String.IsNullOrEmpty(value) Then Return + + If value.Contains("/") Then + Dim values As String() = value.Split(New [Char]() {"/"c}) + For Each genre As String In values + genre = genre.Trim + If Not _genres.Contains(genre) Then + _genres.Add(genre) + End If + Next + Else + If Not _genres.Contains(value) Then + _genres.Add(value.Trim) + End If + End If + End Sub + Public Sub Clear() _title = String.Empty _id = String.Empty @@ -1524,8 +1696,7 @@ Namespace MediaContainers _episodeguideurl = String.Empty _plot = String.Empty _mpaa = String.Empty - _genre = String.Empty - _genrelist = New List(Of String) + _genres.Clear() _premiered = String.Empty _studio = String.Empty _actors.Clear()