feat(search): Adds suggestions to the search results
authorSebastian Golasch <public@asciidisco.com>
Thu, 9 Feb 2017 11:03:29 +0000 (12:03 +0100)
committerSebastian Golasch <public@asciidisco.com>
Thu, 9 Feb 2017 11:03:29 +0000 (12:03 +0100)
README.md
resources/lib/Navigation.py
resources/lib/NetflixSession.py

index 5c7a7ff4ee759cfbd36a3078401a2c15bd8bb414..fc797d28c34ee96dc112ef9a49c31bc8b87d7aaf 100644 (file)
--- a/README.md
+++ b/README.md
@@ -13,7 +13,7 @@ Funktionen:
 -----------
 
   - Wechsel zwischen Profilen
-  - Suche nach Filmen/Serien (Nicht nach Schauspielern, Genres)
+  - Suche nach Filmen/Serien (inkl. suggestions)
   - Anzeigen von Kategorien wie "Meine Liste", "Weil Sie x gesehen haben", "Mit dem Profil von x weiterschauen", "Originals" etc.
   - Eingabe von "Adult Pin" bei FSK 18 Filmen/Serien
   - Rating aus Kodi in Netflix  
@@ -23,6 +23,5 @@ Funktionen:
 ToDo:
 -----
 
-  - Suche nach Schauspielern, Genres ermöglichen
   - Fehlende Daten (Cast, bookmark position, etc.) den Show items in der Serien Video Liste hinzufügen
   - Mit dem Profil von "x" weiterschauen - Statt der Liste der Shows direkt die Episode mit Bookmark anzeigen
index e9346453580acdcf48976f83f2571821c0215f15..67a59d343eb0ed209941d563ff13e533b5e79628 100644 (file)
@@ -162,6 +162,12 @@ class Navigation:
             for key in search_results_raw['value']['search'].keys():
                 if self.netflix_session._is_size_key(key=key) == False:
                     has_search_results = search_results_raw['value']['search'][key]['titles']['length'] > 0
+                    if has_search_results == False:
+                        for entry in search_results_raw['value']['search'][key]['suggestions']:
+                            if self.netflix_session._is_size_key(key=entry) == False:
+                                if search_results_raw['value']['search'][key]['suggestions'][entry]['relatedvideos']['length'] > 0:
+                                    has_search_results = True
+
 
         # display that we haven't found a thing
         if has_search_results == False:
index 2ba0cbb9bd4722dcfcf3b7e071e509ea60a0dd17..332ab260bc7e99cc661a270fcedaddb7ef407208 100644 (file)
@@ -1495,7 +1495,7 @@ class NetflixSession:
         response = self.session.get(url, params=payload, verify=self.verify_ssl);
         return self._process_response(response=response, component=url)
 
-    def fetch_search_results (self, search_str, list_from=0, list_to=48):
+    def fetch_search_results (self, search_str, list_from=0, list_to=10):
         """Fetches the JSON which contains the results for the given search query
 
         Parameters
@@ -1520,7 +1520,10 @@ class NetflixSession:
         paths = [
             ['search', encoded_search_string, 'titles', {'from': list_from, 'to': list_to}, ['summary', 'title']],
             ['search', encoded_search_string, 'titles', {'from': list_from, 'to': list_to}, 'boxarts', '_342x192', 'jpg'],
-            ['search', encoded_search_string, 'titles', ['id', 'length', 'name', 'trackIds', 'requestId']]
+            ['search', encoded_search_string, 'titles', ['id', 'length', 'name', 'trackIds', 'requestId']],
+            ['search', encoded_search_string, 'suggestions', 0, 'relatedvideos', {'from': list_from, 'to': list_to}, ['summary', 'title']],
+            ['search', encoded_search_string, 'suggestions', 0, 'relatedvideos', {'from': list_from, 'to': list_to}, 'boxarts', '_342x192', 'jpg'],
+            ['search', encoded_search_string, 'suggestions', 0, 'relatedvideos', ['id', 'length', 'name', 'trackIds', 'requestId']]
         ]
         response = self._path_request(paths=paths)
         return self._process_response(response=response, component='Search results')