commit
0051ed316e
5 changed files with 21 additions and 4 deletions
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
<addon id="plugin.video.plexkodiconnect" name="PlexKodiConnect" version="2.12.12" provider-name="croneter">
|
<addon id="plugin.video.plexkodiconnect" name="PlexKodiConnect" version="2.12.13" provider-name="croneter">
|
||||||
<requires>
|
<requires>
|
||||||
<import addon="xbmc.python" version="2.1.0"/>
|
<import addon="xbmc.python" version="2.1.0"/>
|
||||||
<import addon="script.module.requests" version="2.9.1" />
|
<import addon="script.module.requests" version="2.9.1" />
|
||||||
|
@ -83,7 +83,11 @@
|
||||||
<summary lang="lt_LT">Natūralioji „Plex“ integracija į „Kodi“</summary>
|
<summary lang="lt_LT">Natūralioji „Plex“ integracija į „Kodi“</summary>
|
||||||
<description lang="lt_LT">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!</description>
|
<description lang="lt_LT">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!</description>
|
||||||
<disclaimer lang="lt_LT">Naudokite savo pačių rizika</disclaimer>
|
<disclaimer lang="lt_LT">Naudokite savo pačių rizika</disclaimer>
|
||||||
<news>version 2.12.12:
|
<news>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
|
- Hopefully fix rare case when sync would get stuck indefinitely
|
||||||
- Fix ValueError: invalid literal for int() for invalid dates sent by Plex
|
- Fix ValueError: invalid literal for int() for invalid dates sent by Plex
|
||||||
- version 2.12.11 for everyone
|
- version 2.12.11 for everyone
|
||||||
|
|
|
@ -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:
|
version 2.12.12:
|
||||||
- Hopefully fix rare case when sync would get stuck indefinitely
|
- Hopefully fix rare case when sync would get stuck indefinitely
|
||||||
- Fix ValueError: invalid literal for int() for invalid dates sent by Plex
|
- Fix ValueError: invalid literal for int() for invalid dates sent by Plex
|
||||||
|
|
|
@ -19,6 +19,8 @@ class App(object):
|
||||||
def __init__(self, entrypoint=False):
|
def __init__(self, entrypoint=False):
|
||||||
self.fetch_pms_item_number = None
|
self.fetch_pms_item_number = None
|
||||||
self.force_reload_skin = None
|
self.force_reload_skin = None
|
||||||
|
# All thread instances
|
||||||
|
self.threads = []
|
||||||
if entrypoint:
|
if entrypoint:
|
||||||
self.load_entrypoint()
|
self.load_entrypoint()
|
||||||
else:
|
else:
|
||||||
|
@ -45,8 +47,6 @@ class App(object):
|
||||||
self.monitor = None
|
self.monitor = None
|
||||||
# xbmc.Player() instance
|
# xbmc.Player() instance
|
||||||
self.player = None
|
self.player = None
|
||||||
# All thread instances
|
|
||||||
self.threads = []
|
|
||||||
# Instance of FanartThread()
|
# Instance of FanartThread()
|
||||||
self.fanart_thread = None
|
self.fanart_thread = None
|
||||||
# Instance of ImageCachingThread()
|
# Instance of ImageCachingThread()
|
||||||
|
|
|
@ -650,6 +650,9 @@ def _sync_from_pms(pick_libraries):
|
||||||
sections = []
|
sections = []
|
||||||
old_sections = []
|
old_sections = []
|
||||||
for i, xml_element in enumerate(xml.findall('Directory')):
|
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))
|
sections.append(Section(index=i, xml_element=xml_element))
|
||||||
with PlexDB() as plexdb:
|
with PlexDB() as plexdb:
|
||||||
for section_db in plexdb.all_sections():
|
for section_db in plexdb.all_sections():
|
||||||
|
|
|
@ -189,9 +189,15 @@ PLEX_TYPE_PHOTO = 'photo'
|
||||||
PLEX_TYPE_PLAYLIST = 'playlist'
|
PLEX_TYPE_PLAYLIST = 'playlist'
|
||||||
PLEX_TYPE_CHANNEL = 'channel'
|
PLEX_TYPE_CHANNEL = 'channel'
|
||||||
|
|
||||||
|
PLEX_TYPE_GAME = 'game'
|
||||||
|
|
||||||
# E.g. PMS answer when hitting the PMS endpoint /hubs/search
|
# E.g. PMS answer when hitting the PMS endpoint /hubs/search
|
||||||
PLEX_TYPE_TAG = 'tag'
|
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
|
# Used for /:/timeline XML messages
|
||||||
PLEX_PLAYLIST_TYPE_VIDEO = 'video'
|
PLEX_PLAYLIST_TYPE_VIDEO = 'video'
|
||||||
PLEX_PLAYLIST_TYPE_AUDIO = 'music'
|
PLEX_PLAYLIST_TYPE_AUDIO = 'music'
|
||||||
|
|
Loading…
Reference in a new issue