From 08aa1fe9088e94596cbd40055bf63457a7617db8 Mon Sep 17 00:00:00 2001 From: Sebastian Golasch Date: Sat, 4 Mar 2017 21:12:19 +0100 Subject: [PATCH] fix(user-handling): Fixes user profile switching --- addon.xml | 2 +- resources/language/English/strings.po | 4 ++-- resources/language/German/strings.po | 4 ++-- resources/lib/KodiHelper.py | 23 +++++++++++------------ resources/lib/NetflixSession.py | 1 + 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/addon.xml b/addon.xml index ee92afd..522d5a7 100644 --- a/addon.xml +++ b/addon.xml @@ -1,5 +1,5 @@ - + diff --git a/resources/language/English/strings.po b/resources/language/English/strings.po index 6b35607..8323065 100644 --- a/resources/language/English/strings.po +++ b/resources/language/English/strings.po @@ -1,8 +1,8 @@ # Kodi Media Center language file # Addon Name: Netflix # Addon id: plugin.video.netflix -# Addon version: 0.9.6 -# Addon Provider: tba. +# Addon version: 0.9.7 +# Addon Provider: libdev + jojo + asciidisco msgid "" msgstr "" "Project-Id-Version: XBMC-Addons\n" diff --git a/resources/language/German/strings.po b/resources/language/German/strings.po index 5cf094d..736bed1 100644 --- a/resources/language/German/strings.po +++ b/resources/language/German/strings.po @@ -1,8 +1,8 @@ # Kodi Media Center language file # Addon Name: Netflix # Addon id: plugin.video.netflix -# Addon version: 0.9.6 -# Addon Provider: tba. +# Addon version: 0.9.7 +# Addon Provider: libdev + jojo + asciidisco msgid "" msgstr "" "Project-Id-Version: XBMC-Addons\n" diff --git a/resources/lib/KodiHelper.py b/resources/lib/KodiHelper.py index 43b5187..8288cb5 100644 --- a/resources/lib/KodiHelper.py +++ b/resources/lib/KodiHelper.py @@ -44,12 +44,11 @@ class KodiHelper: self.msl_data_path = xbmc.translatePath('special://profile/addon_data/service.msl').decode('utf-8') + '/' self.verb_log = self.addon.getSetting('logging') == 'true' self.default_fanart = self.addon.getAddonInfo('fanart') - self.win = xbmcgui.Window(xbmcgui.getCurrentWindowId()) self.library = None self.setup_memcache() def refresh (self): - """Refrsh the current list""" + """Refresh the current list""" return xbmc.executebuiltin('Container.Refresh') def show_rating_dialog (self): @@ -224,7 +223,7 @@ class KodiHelper: type : :obj:`str` Selected menu item """ - self.win.setProperty('main_menu_selection', type) + xbmcgui.Window(xbmcgui.getCurrentWindowId()).setProperty('main_menu_selection', type) def get_main_menu_selection (self): """Gets the persisted chosen main menu entry from memory @@ -234,18 +233,18 @@ class KodiHelper: :obj:`str` The last chosen main menu entry """ - return self.win.getProperty('main_menu_selection') + return xbmcgui.Window(xbmcgui.getCurrentWindowId()).getProperty('main_menu_selection') def setup_memcache (self): """Sets up the memory cache if not existant""" - cached_items = self.win.getProperty('memcache') + cached_items = xbmcgui.Window(xbmcgui.getCurrentWindowId()).getProperty('memcache') # no cache setup yet, create one if len(cached_items) < 1: - self.win.setProperty('memcache', pickle.dumps({})) + xbmcgui.Window(xbmcgui.getCurrentWindowId()).setProperty('memcache', pickle.dumps({})) def invalidate_memcache (self): """Invalidates the memory cache""" - self.win.setProperty('memcache', pickle.dumps({})) + xbmcgui.Window(xbmcgui.getCurrentWindowId()).setProperty('memcache', pickle.dumps({})) def has_cached_item (self, cache_id): """Checks if the requested item is in memory cache @@ -260,7 +259,7 @@ class KodiHelper: bool Item is cached """ - cached_items = pickle.loads(self.win.getProperty('memcache')) + cached_items = pickle.loads(xbmcgui.Window(xbmcgui.getCurrentWindowId()).getProperty('memcache')) return cache_id in cached_items.keys() def get_cached_item (self, cache_id): @@ -276,7 +275,7 @@ class KodiHelper: mixed Contents of the requested cache item or none """ - cached_items = pickle.loads(self.win.getProperty('memcache')) + cached_items = pickle.loads(xbmcgui.Window(xbmcgui.getCurrentWindowId()).getProperty('memcache')) if self.has_cached_item(cache_id) != True: return None return cached_items[cache_id] @@ -292,9 +291,9 @@ class KodiHelper: contents : mixed Cache entry contents """ - cached_items = pickle.loads(self.win.getProperty('memcache')) + cached_items = pickle.loads(xbmcgui.Window(xbmcgui.getCurrentWindowId()).getProperty('memcache')) cached_items.update({cache_id: contents}) - self.win.setProperty('memcache', pickle.dumps(cached_items)) + xbmcgui.Window(xbmcgui.getCurrentWindowId()).setProperty('memcache', pickle.dumps(cached_items)) def build_profiles_listing (self, profiles, action, build_url): """Builds the profiles list Kodi screen @@ -404,7 +403,7 @@ class KodiHelper: preselected_list_item = idx if item else None preselected_list_item = idx + 1 if self.get_main_menu_selection() == 'search' else preselected_list_item if preselected_list_item != None: - xbmc.executebuiltin('ActivateWindowAndFocus(%s, %s)' % (str(self.win.getFocusId()), str(preselected_list_item))) + xbmc.executebuiltin('ActivateWindowAndFocus(%s, %s)' % (str(xbmcgui.Window(xbmcgui.getCurrentWindowId()).getFocusId()), str(preselected_list_item))) return True def build_video_listing (self, video_list, actions, type, build_url): diff --git a/resources/lib/NetflixSession.py b/resources/lib/NetflixSession.py index bd01b9d..60625a3 100644 --- a/resources/lib/NetflixSession.py +++ b/resources/lib/NetflixSession.py @@ -491,6 +491,7 @@ class NetflixSession: browse_soup = BeautifulSoup(browse_response.text, 'html.parser', parse_only=only_script_tags) self._parse_page_contents(page_soup=browse_soup) account_hash = self._generate_account_hash(account=account) + self.user_data['guid'] = profile_id; self._save_data(filename=self.data_path + '_' + account_hash) return True -- 2.30.2