From 3f2da1441f2d9df8b02ee39500b13f777eefc4c9 Mon Sep 17 00:00:00 2001 From: geogolem Date: Fri, 3 Mar 2017 14:25:03 -0500 Subject: [PATCH 1/3] always check exclusions with tmdbid --- .../NetImport/NetImportSearchService.cs | 42 ++++++++++++------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/src/NzbDrone.Core/NetImport/NetImportSearchService.cs b/src/NzbDrone.Core/NetImport/NetImportSearchService.cs index 2c3f257fc9..a8ddb396c0 100644 --- a/src/NzbDrone.Core/NetImport/NetImportSearchService.cs +++ b/src/NzbDrone.Core/NetImport/NetImportSearchService.cs @@ -25,11 +25,13 @@ public class NetImportSearchService : IFetchNetImport, IExecute Date: Fri, 3 Mar 2017 19:31:38 -0500 Subject: [PATCH 2/3] also use TMDBID on list sync --- src/NzbDrone.Core/NetImport/NetImportSearchService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/NzbDrone.Core/NetImport/NetImportSearchService.cs b/src/NzbDrone.Core/NetImport/NetImportSearchService.cs index a8ddb396c0..b616b293e6 100644 --- a/src/NzbDrone.Core/NetImport/NetImportSearchService.cs +++ b/src/NzbDrone.Core/NetImport/NetImportSearchService.cs @@ -94,7 +94,7 @@ public void Execute(NetImportSyncCommand message) bool foundMatch = false; foreach (var listedMovie in listedMovies) { - if (movie.ImdbId == listedMovie.ImdbId) + if (movie.TmdbId == listedMovie.TmdbId) { foundMatch = true; break; From 3dd14c72c828a5da7842774245b2cd1616b1fda8 Mon Sep 17 00:00:00 2001 From: geogolem Date: Sun, 5 Mar 2017 02:02:24 -0500 Subject: [PATCH 3/3] store titleSlug in tags for exclusions and always use TMDBID --- .../NetImport/NetImportSearchService.cs | 37 +++++--------- src/NzbDrone.Core/Tv/MovieService.cs | 6 +-- src/UI/JsLibraries/bootstrap.tagsinput.js | 51 ++++++++++++++++--- .../NetImport/Options/NetImportOptionsView.js | 9 +++- .../Options/NetImportOptionsViewTemplate.hbs | 4 +- 5 files changed, 72 insertions(+), 35 deletions(-) diff --git a/src/NzbDrone.Core/NetImport/NetImportSearchService.cs b/src/NzbDrone.Core/NetImport/NetImportSearchService.cs index b616b293e6..0bfe92b67f 100644 --- a/src/NzbDrone.Core/NetImport/NetImportSearchService.cs +++ b/src/NzbDrone.Core/NetImport/NetImportSearchService.cs @@ -25,13 +25,11 @@ public class NetImportSearchService : IFetchNetImport, IExecute self.options.maxInputLength) + return; + */ + // raise beforeItemAdd arg + var beforeItemAddEvent = $.Event('beforeItemAdd', { item: item, cancel: false }); + self.$element.trigger(beforeItemAddEvent); + if (beforeItemAddEvent.cancel) + return; + + // register item in internal array and map + //self.itemsArray.push(item); + + // read var beforeItemAddEvent with new value + var item = beforeItemAddEvent.item; // Get text from event (BeforeItemAddEvent) var itemValue = self.options.itemValue(item), itemText = self.options.itemText(item), tagClass = self.options.tagClass(item); @@ -114,14 +145,22 @@ if (self.items().toString().length + item.length + 1 > self.options.maxInputLength) return; - // raise beforeItemAdd arg - var beforeItemAddEvent = $.Event('beforeItemAdd', { item: item, cancel: false }); - self.$element.trigger(beforeItemAddEvent); - if (beforeItemAddEvent.cancel) - return; - // register item in internal array and map + // register item in internal array and map self.itemsArray.push(item); + + if (beforeItemAddEvent.tagClass !== undefined){ var tagClass = beforeItemAddEvent.tagClass; } + if (item != undefined){ + var items = item.toString().split(','); + if (items.length > 1) { + for (var i = 0; i < items.length; i++) { + this.add(items[i], true); + } + if (!dontPushVal) + self.pushVal(self.options.triggerChange); + return; + } + } // add a tag element var $tag = $('' + htmlEncode(itemText) + ''); diff --git a/src/UI/Settings/NetImport/Options/NetImportOptionsView.js b/src/UI/Settings/NetImport/Options/NetImportOptionsView.js index 13c5fc8e97..9b28af1158 100644 --- a/src/UI/Settings/NetImport/Options/NetImportOptionsView.js +++ b/src/UI/Settings/NetImport/Options/NetImportOptionsView.js @@ -90,12 +90,19 @@ var view = Marionette.ItemView.extend({ }); promise.success(function(response) { event.cancel=false; + + //var newText = response['tmdbId']+'-'; + //if (event.item.startsWith('tt')) { + // newText = newText+'['+event.item+']'; + //} + event.item = response['titleSlug'];//+' ('+response['year']+')-'+response['tmdbId']; }); promise.error(function(request, status, error) { event.cancel = true; window.alert(event.item+' is not a valid! Must be valid tt#### IMDB ID or #### TMDB ID'); - }); + }); + return event; }); }, diff --git a/src/UI/Settings/NetImport/Options/NetImportOptionsViewTemplate.hbs b/src/UI/Settings/NetImport/Options/NetImportOptionsViewTemplate.hbs index 1cfc5b6dcf..bd429de47f 100644 --- a/src/UI/Settings/NetImport/Options/NetImportOptionsViewTemplate.hbs +++ b/src/UI/Settings/NetImport/Options/NetImportOptionsViewTemplate.hbs @@ -32,11 +32,11 @@
-
+
-
+