Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
croneter committed Mar 13, 2016
2 parents a360663 + 94e3da0 commit b8ff354
Show file tree
Hide file tree
Showing 10 changed files with 64 additions and 69 deletions.
2 changes: 1 addition & 1 deletion addon.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="plugin.video.plexkodiconnect"
name="PlexKodiConnect"
version="1.0.8"
version="1.0.9"
provider-name="croneter">
<requires>
<import addon="xbmc.python" version="2.1.0"/>
Expand Down
8 changes: 8 additions & 0 deletions changelog.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
version 1.0.9
- Fix Recently Added
- Update node names to reflect plex
- Fix tv show season posters not showing
- Fix TV shows episode artwork not caching
- Increase download timeout to 30s
- Increase image caching timeouts to 5s

version 1.0.8
- Redesigned fast incremential sync
- Workaround to sync Kodi time with PMS time
Expand Down
6 changes: 3 additions & 3 deletions resources/language/English/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -145,14 +145,14 @@

<!-- Video nodes -->
<string id="30170">Recently Added TV Shows</string><!-- Verified -->
<string id="30171">In Progress TV Shows</string><!-- Verified -->
<string id="30171">On Deck TV Shows</string><!-- Verified -->
<string id="30172">All Music</string>
<string id="30173">Channels</string><!-- Verified -->
<string id="30174">Recently Added Movies</string><!-- Verified -->
<string id="30175">Recently Added Episodes</string><!-- Verified -->
<string id="30176">Recently Added Albums</string>
<string id="30177">In Progress Movies</string><!-- Verified -->
<string id="30178">In Progress Episodes</string><!-- Verified -->
<string id="30177">On Deck Movies</string><!-- Verified -->
<string id="30178">On Deck Episodes</string><!-- Verified -->
<string id="30179">Next Episodes</string><!-- Verified -->
<string id="30180">Favorite Movies</string><!-- Verified -->
<string id="30181">Favorite Shows</string><!-- Verified -->
Expand Down
6 changes: 3 additions & 3 deletions resources/language/German/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -173,14 +173,14 @@
<string id="30169">Addresse : </string>

<string id="30170">Zuletzt hinzugefügte Serien</string>
<string id="30171">Begonnene Serien</string>
<string id="30171">Aktuell Serien</string>
<string id="30172">Alles an Musik</string>
<string id="30173">Kanäle</string>
<string id="30174">Zuletzt hinzugefügte Filme</string>
<string id="30175">Zuletzt hinzugefügte Episoden</string>
<string id="30176">Zuletzt hinzugefügte Alben</string>
<string id="30177">Begonnene Filme</string>
<string id="30178">Begonnene Episoden</string>
<string id="30177">Aktuelle Filme</string>
<string id="30178">Aktuelle Episoden</string>
<string id="30179">Nächste Episoden</string>
<string id="30180">Favorisierte Filme</string>
<string id="30181">Favorisierte Serien</string>
Expand Down
71 changes: 19 additions & 52 deletions resources/lib/PlexAPI.py
Original file line number Diff line number Diff line change
Expand Up @@ -1513,7 +1513,7 @@ def getDateCreated(self):
"""
Returns the date when this library item was created
"""
return utils.DateToKodi(self.item.attrib.get('addedAt', None))
return utils.DateToKodi(self.item.attrib.get('addedAt'))

def getUserData(self):
"""
Expand Down Expand Up @@ -2044,15 +2044,15 @@ def getAllArtwork(self, parentInfo=False):
"""
item = self.item.attrib

maxHeight = 10000
maxWidth = 10000
customquery = ""
# maxHeight = 10000
# maxWidth = 10000
# customquery = ""

if utils.settings('compressArt') == "true":
customquery = "&Quality=90"
# if utils.settings('compressArt') == "true":
# customquery = "&Quality=90"

if utils.settings('enableCoverArt') == "false":
customquery += "&EnableImageEnhancers=false"
# if utils.settings('enableCoverArt') == "false":
# customquery += "&EnableImageEnhancers=false"

allartworks = {
'Primary': "",
Expand Down Expand Up @@ -2083,54 +2083,21 @@ def getAllArtwork(self, parentInfo=False):

# Process parent items if the main item is missing artwork
if parentInfo:

# Process parent backdrops
if not allartworks['Backdrop']:

parentId = item.get('ParentBackdropItemId')
if parentId:
# If there is a parentId, go through the parent backdrop list
parentbackdrops = item['ParentBackdropImageTags']

backdropIndex = 0
for parentbackdroptag in parentbackdrops:
artwork = (
"%s/emby/Items/%s/Images/Backdrop/%s?"
"MaxWidth=%s&MaxHeight=%s&Format=original&Tag=%s%s"
% (self.server, parentId, backdropIndex,
maxWidth, maxHeight, parentbackdroptag, customquery))
allartworks['Backdrop'].append(artwork)
backdropIndex += 1

# Process the rest of the artwork
parentartwork = ['Logo', 'Art', 'Thumb']
for parentart in parentartwork:

if not allartworks[parentart]:

parentId = item.get('Parent%sItemId' % parentart)
if parentId:

parentTag = item['Parent%sImageTag' % parentart]
artwork = (
"%s/emby/Items/%s/Images/%s/0?"
"MaxWidth=%s&MaxHeight=%s&Format=original&Tag=%s%s"
% (self.server, parentId, parentart,
maxWidth, maxHeight, parentTag, customquery))
allartworks[parentart] = artwork

# Parent album works a bit differently
background = item.get('parentArt')
if background:
background = "%s%s" % (self.server, background)
background = self.addPlexCredentialsToUrl(background)
allartworks['Backdrop'].append(background)

if not allartworks['Primary']:
primary = item['parentThumb']
if primary:
primary = "%s%s" % (self.server, primary)
primary = self.addPlexCredentialsToUrl(primary)
allartworks['Primary'] = primary

parentId = item.get('AlbumId')
if parentId and item.get('AlbumPrimaryImageTag'):

parentTag = item['AlbumPrimaryImageTag']
artwork = (
"%s/emby/Items/%s/Images/Primary/0?"
"MaxWidth=%s&MaxHeight=%s&Format=original&Tag=%s%s"
% (self.server, parentId, maxWidth, maxHeight, parentTag, customquery))
allartworks['Primary'] = artwork
return allartworks

def getTranscodeVideoPath(self, action, quality={}):
Expand Down
2 changes: 1 addition & 1 deletion resources/lib/downloadutils.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class DownloadUtils():

# Requests session
s = None
timeout = 10
timeout = 30

def __init__(self):

Expand Down
2 changes: 1 addition & 1 deletion resources/lib/image_cache_thread.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ def run(self):
"http://%s:%s/image/image://%s"
% (self.xbmc_host, self.xbmc_port, self.urlToProcess)),
auth=(self.xbmc_username, self.xbmc_password),
timeout=(2, 2))
timeout=(5, 5))
# We don't need the result
except: pass

Expand Down
21 changes: 16 additions & 5 deletions resources/lib/itemtypes.py
Original file line number Diff line number Diff line change
Expand Up @@ -1141,9 +1141,8 @@ def add_updateSeason(self, item, viewtag=None, viewid=None):
# skip this item for now
return

def run_add_updateSeason(self, item, viewid=None, viewtag=None):
def run_add_updateSeason(self, item, viewtag=None, viewid=None):
API = PlexAPI.API(item)
showid = viewid
itemid = API.getRatingKey()
if not itemid:
self.logMsg('Error getting itemid for season, skipping', -1)
Expand All @@ -1153,6 +1152,18 @@ def run_add_updateSeason(self, item, viewid=None, viewtag=None):
kodi_db = self.kodi_db
artwork = self.artwork
seasonnum = API.getIndex()
# Get parent tv show Plex id
plexshowid = item.attrib.get('parentRatingKey')
# Get Kodi showid
emby_dbitem = emby_db.getItem_byId(plexshowid)
try:
showid = emby_dbitem[0]
except:
self.logMsg('Could not find parent tv show for season %s. '
'Skipping season for now.'
% (itemid), -1)
return

seasonid = kodi_db.addSeason(showid, seasonnum)
checksum = API.getChecksum()
# Check whether Season already exists
Expand All @@ -1172,7 +1183,7 @@ def run_add_updateSeason(self, item, viewid=None, viewtag=None):
emby_db.updateReference(itemid, checksum)
else:
# Create the reference in emby table
emby_db.addReference(itemid, seasonid, "Season", "season", parentid=showid, checksum=checksum)
emby_db.addReference(itemid, seasonid, "Season", "season", parentid=viewid, checksum=checksum)

def add_updateEpisode(self, item, viewtag=None, viewid=None):
try:
Expand Down Expand Up @@ -1434,8 +1445,8 @@ def run_add_updateEpisode(self, item, viewtag=None, viewid=None):
people = API.getPeopleList()
kodi_db.addPeople(episodeid, people, "episode")
# Process artwork
artworks = API.getAllArtwork()
artwork.addOrUpdateArt(artworks['Primary'], episodeid, "episode", "thumb", kodicursor)
allartworks = API.getAllArtwork()
artwork.addArtwork(allartworks, episodeid, "episode", kodicursor)
# Process stream details
streams = API.getMediaStreams()
kodi_db.addStreams(fileid, streams, runtime)
Expand Down
10 changes: 9 additions & 1 deletion resources/lib/librarysync.py
Original file line number Diff line number Diff line change
Expand Up @@ -1218,6 +1218,10 @@ def PlexTVShows(self):
# COPY for later use
allPlexTvShowsId = self.allPlexElementsId.copy()

# Process self.updatelist
self.GetAndProcessXMLs(itemType)
self.logMsg("GetAndProcessXMLs completed for tv shows", 1)

# PROCESS TV Seasons #####
# Cycle through tv shows
for tvShowId in allPlexTvShowsId:
Expand All @@ -1238,6 +1242,10 @@ def PlexTVShows(self):
self.logMsg("Analyzed all seasons of TV show with Plex Id %s"
% tvShowId, 1)

# Process self.updatelist
self.GetAndProcessXMLs(itemType)
self.logMsg("GetAndProcessXMLs completed for seasons", 1)

# PROCESS TV Episodes #####
# Cycle through tv shows
for view in views:
Expand All @@ -1261,7 +1269,7 @@ def PlexTVShows(self):

# Process self.updatelist
self.GetAndProcessXMLs(itemType)
self.logMsg("GetAndProcessXMLs completed", 1)
self.logMsg("GetAndProcessXMLs completed for episodes", 1)
# Refresh season info
# Cycle through tv shows
with itemtypes.TVShows() as TVshow:
Expand Down
5 changes: 3 additions & 2 deletions resources/lib/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
import json
import pstats
import sqlite3
from datetime import datetime, time, timedelta
from datetime import datetime, timedelta
import time
import unicodedata
import xml.etree.ElementTree as etree
from functools import wraps
Expand Down Expand Up @@ -545,7 +546,7 @@ def startProfiling():
return pr

def stopProfiling(pr, profileName):

from datetime import time
pr.disable()
ps = pstats.Stats(pr)

Expand Down

0 comments on commit b8ff354

Please sign in to comment.