diff --git a/addon.xml b/addon.xml index e8dd5c02..1fd60bef 100644 --- a/addon.xml +++ b/addon.xml @@ -1,5 +1,5 @@ - + @@ -83,7 +83,11 @@ Natūralioji „Plex“ integracija į „Kodi“ Prijunkite „Kodi“ prie „Plex Medija Serverio“. Šiame papildinyje daroma prielaida, kad valdote visus savo vaizdo įrašus naudodami „Plex“ (ir nė vieno su „Kodi“). Galite prarasti jau saugomus „Kodi“ vaizdo įrašų ir muzikos duomenų bazių duomenis (kadangi šis papildinys juos tiesiogiai pakeičia). Naudokite savo pačių rizika! Naudokite savo pačių rizika - version 2.12.12: + version 2.12.13: +- Fix KeyError: u'game' if Plex Arcade has been activated +- Fix AttributeError: 'App' object has no attribute 'threads' when sync is cancelled + +version 2.12.12: - Hopefully fix rare case when sync would get stuck indefinitely - Fix ValueError: invalid literal for int() for invalid dates sent by Plex - version 2.12.11 for everyone diff --git a/changelog.txt b/changelog.txt index ebe395ef..a6bd1e90 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,7 @@ +version 2.12.13: +- Fix KeyError: u'game' if Plex Arcade has been activated +- Fix AttributeError: 'App' object has no attribute 'threads' when sync is cancelled + version 2.12.12: - Hopefully fix rare case when sync would get stuck indefinitely - Fix ValueError: invalid literal for int() for invalid dates sent by Plex diff --git a/resources/lib/app/application.py b/resources/lib/app/application.py index 79608afd..318276fc 100644 --- a/resources/lib/app/application.py +++ b/resources/lib/app/application.py @@ -19,6 +19,8 @@ class App(object): def __init__(self, entrypoint=False): self.fetch_pms_item_number = None self.force_reload_skin = None + # All thread instances + self.threads = [] if entrypoint: self.load_entrypoint() else: @@ -45,8 +47,6 @@ class App(object): self.monitor = None # xbmc.Player() instance self.player = None - # All thread instances - self.threads = [] # Instance of FanartThread() self.fanart_thread = None # Instance of ImageCachingThread() diff --git a/resources/lib/library_sync/sections.py b/resources/lib/library_sync/sections.py index 04acbbad..481beae5 100644 --- a/resources/lib/library_sync/sections.py +++ b/resources/lib/library_sync/sections.py @@ -650,6 +650,9 @@ def _sync_from_pms(pick_libraries): sections = [] old_sections = [] for i, xml_element in enumerate(xml.findall('Directory')): + api = API(xml_element) + if api.plex_type in v.UNSUPPORTED_PLEX_TYPES: + continue sections.append(Section(index=i, xml_element=xml_element)) with PlexDB() as plexdb: for section_db in plexdb.all_sections(): diff --git a/resources/lib/variables.py b/resources/lib/variables.py index b6fd59e8..19b1c174 100644 --- a/resources/lib/variables.py +++ b/resources/lib/variables.py @@ -189,9 +189,15 @@ PLEX_TYPE_PHOTO = 'photo' PLEX_TYPE_PLAYLIST = 'playlist' PLEX_TYPE_CHANNEL = 'channel' +PLEX_TYPE_GAME = 'game' + # E.g. PMS answer when hitting the PMS endpoint /hubs/search PLEX_TYPE_TAG = 'tag' +# PlexKodiConnect does not support all (content) types +# e.g. Plex Arcade games +UNSUPPORTED_PLEX_TYPES = (PLEX_TYPE_GAME, ) + # Used for /:/timeline XML messages PLEX_PLAYLIST_TYPE_VIDEO = 'video' PLEX_PLAYLIST_TYPE_AUDIO = 'music'