Merge remote-tracking branch 'MediaBrowser/master' into develop

This commit is contained in:
tomkat83 2016-02-08 14:32:17 +01:00
commit 581e38a729
2 changed files with 62 additions and 7 deletions

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="plugin.video.plexkodiconnect"
name="PlexKodiConnect"
version="2.0.3"
version="2.0.4"
provider-name="croneter">
<requires>
<import addon="xbmc.python" version="2.1.0"/>

View file

@ -202,6 +202,8 @@ class Read_EmbyServer():
else:
index = 0
jump = self.limitIndex
throttled = False
highestjump = 0
while index < total:
# Get items by chunk to increase retrieval speed at scale
@ -230,13 +232,66 @@ class Read_EmbyServer():
"Tags,ProviderIds,ParentId,RemoteTrailers,SpecialEpisodeNumbers,"
"MediaSources"
)
result = doUtils.downloadUrl(url, parameters=params)
items['Items'].extend(result['Items'])
result = doUtils(url, parameters=params)
if result == "":
# Something happened to the connection.
if not throttled:
throttled = True
self.logMsg("Throttle activated.", 1)
elif jump == highestjump:
# We already adjusted to highestjump, but it failed. Reset value
self.logMsg("Reset highest value.", 1)
highestjump = 0
index += jump
if dialog:
percentage = int((float(index) / float(total))*100)
dialog.update(percentage)
# Lower the number by half
if highestjump:
throttled = False
jump = highestjump
else:
jump = int(jump/2)
self.logMsg("Set jump limit to recover: %s" % jump)
retry = 0
while utils.window('emby_online') != "true":
# Wait server to come back online
if retry == 3:
self.logMsg("Server never came back online.")
return
retry += 1
if xbmc.Monitor().waitForAbort(1):
# Abort was requested while waiting.
return
else:
xbmc.Monitor().waitForAbort(3)
else:
items['Items'].extend(result['Items'])
index += jump
if dialog:
percentage = int((float(index) / float(total))*100)
dialog.update(percentage)
if jump > highestjump:
# Adjust with the latest number, if it's greater
highestjump = jump
if throttled:
# We needed to adjust the number, keep increasing until.
if jump < highestjump:
# Found a number that already works, use it.
throttled = False
jump = highestjump
self.logMsg("Throttle deactivated with jump limit set to: %s" % jump, 1)
else:
# keep increasing until the connection times out again
increment = int(jump*0.33)
if not increment: # Incase the increment is 0
increment += 10
jump += increment
self.logMsg("Increase jump limit to: %s" % jump, 1)
return items
def getViews(self, type, root=False):