mirror of
https://github.com/jellyfin/jellyfin-kodi.git
synced 2024-11-10 04:06:11 +00:00
Change to use unicode
This commit is contained in:
parent
079fd4e8d9
commit
007cc8e4a9
1 changed files with 133 additions and 191 deletions
|
@ -5,22 +5,17 @@
|
|||
import xbmc
|
||||
import xbmcgui
|
||||
import xbmcaddon
|
||||
import json
|
||||
|
||||
from DownloadUtils import DownloadUtils
|
||||
|
||||
addon = xbmcaddon.Addon(id='plugin.video.emby')
|
||||
|
||||
class ReadEmbyDB():
|
||||
|
||||
def getMovies(self, id, fullinfo = False, fullSync = True, itemList = []):
|
||||
|
||||
result = None
|
||||
|
||||
WINDOW = xbmcgui.Window(10000)
|
||||
username = WINDOW.getProperty('currUser')
|
||||
userid = WINDOW.getProperty('userId%s' % username)
|
||||
server = WINDOW.getProperty('server%s' % username)
|
||||
|
||||
downloadUtils = DownloadUtils()
|
||||
doUtils = DownloadUtils()
|
||||
|
||||
if fullSync:
|
||||
sortstring = "&SortBy=SortName"
|
||||
|
@ -32,35 +27,31 @@ class ReadEmbyDB():
|
|||
sortstring = "&Limit=20&SortBy=DateCreated"
|
||||
|
||||
if fullinfo:
|
||||
url = "%s/mediabrowser/Users/%s/items?ParentId=%s%s&Fields=Path,Genres,SortName,Studios,Writer,ProductionYear,Taglines,CommunityRating,OfficialRating,CumulativeRunTimeTicks,Metascore,AirTime,DateCreated,MediaStreams,People,Overview&Recursive=true&SortOrder=Descending&IncludeItemTypes=Movie&CollapseBoxSetItems=false&format=json&ImageTypeLimit=1" % (server, userid, id, sortstring)
|
||||
url = "{server}/mediabrowser/Users/{UserId}/items?ParentId=%s%s&Fields=Path,Genres,SortName,Studios,Writer,ProductionYear,Taglines,CommunityRating,OfficialRating,CumulativeRunTimeTicks,Metascore,AirTime,DateCreated,MediaStreams,People,Overview&Recursive=true&SortOrder=Descending&IncludeItemTypes=Movie&CollapseBoxSetItems=false&format=json&ImageTypeLimit=1" % (id, sortstring)
|
||||
else:
|
||||
url = "%s/mediabrowser/Users/%s/items?ParentId=%s%s&Fields=CumulativeRunTimeTicks&Recursive=true&SortOrder=Descending&IncludeItemTypes=Movie&CollapseBoxSetItems=false&format=json&ImageTypeLimit=1" % (server, userid, id, sortstring)
|
||||
url = "{server}/mediabrowser/Users/{UserId}/items?ParentId=%s%s&Fields=CumulativeRunTimeTicks&Recursive=true&SortOrder=Descending&IncludeItemTypes=Movie&CollapseBoxSetItems=false&format=json&ImageTypeLimit=1" % (id, sortstring)
|
||||
|
||||
jsonData = downloadUtils.downloadUrl(url, suppress=False, popup=0)
|
||||
if jsonData != None and jsonData != "":
|
||||
result = json.loads(jsonData)
|
||||
if(result.has_key('Items')):
|
||||
result = result['Items']
|
||||
jsonData = doUtils.downloadUrl(url)
|
||||
if (jsonData == ""):
|
||||
return result
|
||||
|
||||
if (jsonData[u'Items'] != ""):
|
||||
result = jsonData[u'Items']
|
||||
|
||||
# work around for now until ParetnId and Id work together
|
||||
if(result != None and len(result) > 0 and len(itemList) > 0):
|
||||
if (result != None and len(result) > 0 and len(itemList) > 0):
|
||||
newResult = []
|
||||
for item in result:
|
||||
if(item.get("Id") in itemList):
|
||||
if (item[u'Id'] in itemList):
|
||||
newResult.append(item)
|
||||
result = newResult
|
||||
|
||||
return result
|
||||
|
||||
def getMusicVideos(self, fullinfo = False, fullSync = True):
|
||||
|
||||
result = None
|
||||
|
||||
WINDOW = xbmcgui.Window(10000)
|
||||
username = WINDOW.getProperty('currUser')
|
||||
userid = WINDOW.getProperty('userId%s' % username)
|
||||
server = WINDOW.getProperty('server%s' % username)
|
||||
|
||||
downloadUtils = DownloadUtils()
|
||||
doUtils = DownloadUtils()
|
||||
|
||||
if not fullSync:
|
||||
sortstring = "&Limit=20&SortBy=DateCreated"
|
||||
|
@ -68,276 +59,227 @@ class ReadEmbyDB():
|
|||
sortstring = "&SortBy=SortName"
|
||||
|
||||
if fullinfo:
|
||||
url = "%s/mediabrowser/Users/%s/items?%s&Fields=Path,Genres,SortName,Studios,Writer,ProductionYear,Taglines,CommunityRating,OfficialRating,CumulativeRunTimeTicks,Metascore,AirTime,DateCreated,MediaStreams,People,Overview&Recursive=true&SortOrder=Descending&IncludeItemTypes=MusicVideo&format=json&ImageTypeLimit=1" % (server, userid, sortstring)
|
||||
url = "{server}/mediabrowser/Users/{UserId}/items?%s&Fields=Path,Genres,SortName,Studios,Writer,ProductionYear,Taglines,CommunityRating,OfficialRating,CumulativeRunTimeTicks,Metascore,AirTime,DateCreated,MediaStreams,People,Overview&Recursive=true&SortOrder=Descending&IncludeItemTypes=MusicVideo&format=json&ImageTypeLimit=1" % sortstring
|
||||
else:
|
||||
url = "%s/mediabrowser/Users/%s/items?%s&Fields=CumulativeRunTimeTicks&Recursive=true&SortOrder=Descending&IncludeItemTypes=MusicVideo&CollapseBoxSetItems=false&format=json&ImageTypeLimit=1" % (server, userid, sortstring)
|
||||
url = "{server}/mediabrowser/Users/{UserId}/items?%s&Fields=CumulativeRunTimeTicks&Recursive=true&SortOrder=Descending&IncludeItemTypes=MusicVideo&CollapseBoxSetItems=false&format=json&ImageTypeLimit=1" % sortstring
|
||||
|
||||
jsonData = downloadUtils.downloadUrl(url, suppress=False, popup=0)
|
||||
if jsonData != None and jsonData != "":
|
||||
result = json.loads(jsonData)
|
||||
if(result.has_key('Items')):
|
||||
result = result['Items']
|
||||
jsonData = doUtils.downloadUrl(url)
|
||||
if (jsonData == ""):
|
||||
return result
|
||||
|
||||
if (jsonData[u'Items'] != ""):
|
||||
result = jsonData[u'Items']
|
||||
|
||||
return result
|
||||
|
||||
def getItem(self, id):
|
||||
|
||||
result = None
|
||||
|
||||
WINDOW = xbmcgui.Window(10000)
|
||||
username = WINDOW.getProperty('currUser')
|
||||
userid = WINDOW.getProperty('userId%s' % username)
|
||||
server = WINDOW.getProperty('server%s' % username)
|
||||
|
||||
downloadUtils = DownloadUtils()
|
||||
doUtils = DownloadUtils()
|
||||
|
||||
url = "%s/mediabrowser/Users/%s/Items/%s?format=json&ImageTypeLimit=1" % (server, userid, id)
|
||||
jsonData = downloadUtils.downloadUrl(url, suppress=False, popup=1 )
|
||||
if jsonData != None and jsonData != "":
|
||||
result = json.loads(jsonData)
|
||||
url = "{server}/mediabrowser/Users/{UserId}/Items/%s?format=json&ImageTypeLimit=1" % id
|
||||
|
||||
jsonData = doUtils.downloadUrl(url)
|
||||
if (jsonData != ""):
|
||||
result = jsonData
|
||||
|
||||
return result
|
||||
|
||||
def getFullItem(self, id):
|
||||
|
||||
result = None
|
||||
|
||||
WINDOW = xbmcgui.Window(10000)
|
||||
username = WINDOW.getProperty('currUser')
|
||||
userid = WINDOW.getProperty('userId%s' % username)
|
||||
server = WINDOW.getProperty('server%s' % username)
|
||||
|
||||
downloadUtils = DownloadUtils()
|
||||
doUtils = DownloadUtils()
|
||||
|
||||
url = "%s/mediabrowser/Users/%s/Items/%s?format=json&Fields=Path,Genres,SortName,Studios,Writer,ProductionYear,Taglines,CommunityRating,OfficialRating,CumulativeRunTimeTicks,Metascore,AirTime,DateCreated,MediaStreams,People,Overview" % (server, userid, id)
|
||||
jsonData = downloadUtils.downloadUrl(url, suppress=False, popup=1 )
|
||||
if jsonData != None and jsonData != "":
|
||||
result = json.loads(jsonData)
|
||||
url = "{server}/mediabrowser/Users/{UserId}/Items/%s?format=json&Fields=Path,Genres,SortName,Studios,Writer,ProductionYear,Taglines,CommunityRating,OfficialRating,CumulativeRunTimeTicks,Metascore,AirTime,DateCreated,MediaStreams,People,Overview" % id
|
||||
|
||||
jsonData = doUtils.downloadUrl(url)
|
||||
if (jsonData != ""):
|
||||
result = jsonData
|
||||
|
||||
return result
|
||||
|
||||
def getTVShows(self, id, fullinfo = False, fullSync = False):
|
||||
|
||||
result = None
|
||||
|
||||
WINDOW = xbmcgui.Window(10000)
|
||||
username = WINDOW.getProperty('currUser')
|
||||
userid = WINDOW.getProperty('userId%s' % username)
|
||||
server = WINDOW.getProperty('server%s' % username)
|
||||
|
||||
downloadUtils = DownloadUtils()
|
||||
doUtils = DownloadUtils()
|
||||
|
||||
if not fullSync:
|
||||
sortstring = "&Limit=20&SortBy=DateCreated"
|
||||
else:
|
||||
sortstring = "&SortBy=SortName"
|
||||
|
||||
|
||||
if fullinfo:
|
||||
url = "%s/mediabrowser/Users/%s/Items?ParentId=%s%s&Fields=Path,Genres,SortName,Studios,Writer,ProductionYear,Taglines,CommunityRating,OfficialRating,CumulativeRunTimeTicks,Metascore,AirTime,DateCreated,MediaStreams,People,Overview&Recursive=true&SortOrder=Descending&IncludeItemTypes=Series&format=json&ImageTypeLimit=1" % (server, userid, id, sortstring)
|
||||
url = "{server}/mediabrowser/Users/{UserId}/Items?ParentId=%s%s&Fields=Path,Genres,SortName,Studios,Writer,ProductionYear,Taglines,CommunityRating,OfficialRating,CumulativeRunTimeTicks,Metascore,AirTime,DateCreated,MediaStreams,People,Overview&Recursive=true&SortOrder=Descending&IncludeItemTypes=Series&format=json&ImageTypeLimit=1" % (id, sortstring)
|
||||
else:
|
||||
url = "%s/mediabrowser/Users/%s/Items?ParentId=%s%s&Fields=CumulativeRunTimeTicks&Recursive=true&SortOrder=Descending&IncludeItemTypes=Series&format=json&ImageTypeLimit=1" % (server, userid, id, sortstring)
|
||||
url = "{server}/mediabrowser/Users/{UserId}/Items?ParentId=%s%s&Fields=CumulativeRunTimeTicks&Recursive=true&SortOrder=Descending&IncludeItemTypes=Series&format=json&ImageTypeLimit=1" % (id, sortstring)
|
||||
|
||||
jsonData = downloadUtils.downloadUrl(url, suppress=False, popup=0)
|
||||
if jsonData != None and jsonData != "":
|
||||
result = json.loads(jsonData)
|
||||
if(result.has_key('Items')):
|
||||
result = result['Items']
|
||||
jsonData = doUtils.downloadUrl(url)
|
||||
if (jsonData == ""):
|
||||
return result
|
||||
|
||||
if (jsonData[u'Items'] != ""):
|
||||
result = jsonData[u'Items']
|
||||
|
||||
return result
|
||||
|
||||
def getTVShowSeasons(self, tvShowId):
|
||||
|
||||
result = None
|
||||
|
||||
WINDOW = xbmcgui.Window(10000)
|
||||
username = WINDOW.getProperty('currUser')
|
||||
userid = WINDOW.getProperty('userId%s' % username)
|
||||
server = WINDOW.getProperty('server%s' % username)
|
||||
|
||||
downloadUtils = DownloadUtils()
|
||||
doUtils = DownloadUtils()
|
||||
|
||||
url = "%s/Shows/%s/Seasons?UserId=%s&format=json&ImageTypeLimit=1" % (server, tvShowId, userid)
|
||||
url = "{server}/Shows/%s/Seasons?UserId={UserId}&format=json&ImageTypeLimit=1" % tvShowId
|
||||
|
||||
jsonData = downloadUtils.downloadUrl(url, suppress=False, popup=0)
|
||||
if jsonData != None and jsonData != "":
|
||||
result = json.loads(jsonData)
|
||||
if(result.has_key('Items')):
|
||||
result = result['Items']
|
||||
jsonData = doUtils.downloadUrl(url)
|
||||
if (jsonData == ""):
|
||||
return result
|
||||
|
||||
if (jsonData[u'Items'] != ""):
|
||||
result = jsonData[u'Items']
|
||||
|
||||
return result
|
||||
|
||||
def getEpisodes(self, showId, fullinfo = False):
|
||||
|
||||
result = None
|
||||
|
||||
WINDOW = xbmcgui.Window(10000)
|
||||
username = WINDOW.getProperty('currUser')
|
||||
userid = WINDOW.getProperty('userId%s' % username)
|
||||
server = WINDOW.getProperty('server%s' % username)
|
||||
|
||||
downloadUtils = DownloadUtils()
|
||||
doUtils = DownloadUtils()
|
||||
|
||||
if fullinfo:
|
||||
url = "%s/mediabrowser/Users/%s/Items?ParentId=%s&IsVirtualUnaired=false&IsMissing=False&SortBy=SortName&Fields=Path,Genres,SortName,Studios,Writer,ProductionYear,Taglines,CommunityRating,OfficialRating,CumulativeRunTimeTicks,Metascore,AirTime,DateCreated,MediaStreams,People,Overview&Recursive=true&SortOrder=Ascending&IncludeItemTypes=Episode&format=json&ImageTypeLimit=1" % (server, userid, showId)
|
||||
url = "{server}/mediabrowser/Users/{UserId}/Items?ParentId=%s&IsVirtualUnaired=false&IsMissing=False&SortBy=SortName&Fields=Path,Genres,SortName,Studios,Writer,ProductionYear,Taglines,CommunityRating,OfficialRating,CumulativeRunTimeTicks,Metascore,AirTime,DateCreated,MediaStreams,People,Overview&Recursive=true&SortOrder=Ascending&IncludeItemTypes=Episode&format=json&ImageTypeLimit=1" % showId
|
||||
else:
|
||||
url = "%s/mediabrowser/Users/%s/Items?ParentId=%s&IsVirtualUnaired=false&IsMissing=False&SortBy=SortName&Fields=Name,SortName,CumulativeRunTimeTicks&Recursive=true&SortOrder=Ascending&IncludeItemTypes=Episode&format=json&ImageTypeLimit=1" % (server, userid, showId)
|
||||
url = "{server}/mediabrowser/Users/{UserId}/Items?ParentId=%s&IsVirtualUnaired=false&IsMissing=False&SortBy=SortName&Fields=Name,SortName,CumulativeRunTimeTicks&Recursive=true&SortOrder=Ascending&IncludeItemTypes=Episode&format=json&ImageTypeLimit=1" % showId
|
||||
|
||||
jsonData = downloadUtils.downloadUrl(url, suppress=False, popup=0)
|
||||
|
||||
if jsonData != None and jsonData != "":
|
||||
result = json.loads(jsonData)
|
||||
if(result.has_key('Items')):
|
||||
result = result['Items']
|
||||
jsonData = doUtils.downloadUrl(url)
|
||||
if (jsonData == ""):
|
||||
return result
|
||||
|
||||
if (jsonData[u'Items'] != ""):
|
||||
result = jsonData[u'Items']
|
||||
|
||||
return result
|
||||
|
||||
def getLatestEpisodes(self, fullinfo = False, itemList = []):
|
||||
|
||||
result = None
|
||||
|
||||
WINDOW = xbmcgui.Window(10000)
|
||||
username = WINDOW.getProperty('currUser')
|
||||
userid = WINDOW.getProperty('userId%s' % username)
|
||||
server = WINDOW.getProperty('server%s' % username)
|
||||
|
||||
downloadUtils = DownloadUtils()
|
||||
doUtils = DownloadUtils()
|
||||
|
||||
limitString = "Limit=20&SortBy=DateCreated&"
|
||||
if(len(itemList) > 0): # if we want a certain list specify it
|
||||
limitString = "Ids=" + ",".join(itemList) + "&"
|
||||
|
||||
if fullinfo:
|
||||
url = "%s/mediabrowser/Users/%s/Items?%sIsVirtualUnaired=false&IsMissing=False&Fields=ParentId,Path,Genres,SortName,Studios,Writer,ProductionYear,Taglines,CommunityRating,OfficialRating,CumulativeRunTimeTicks,Metascore,AirTime,DateCreated,MediaStreams,People,Overview&Recursive=true&SortOrder=Descending&IncludeItemTypes=Episode&format=json&ImageTypeLimit=1" % (server, userid, limitString)
|
||||
url = "{server}/mediabrowser/Users/{UserId}/Items?%sIsVirtualUnaired=false&IsMissing=False&Fields=ParentId,Path,Genres,SortName,Studios,Writer,ProductionYear,Taglines,CommunityRating,OfficialRating,CumulativeRunTimeTicks,Metascore,AirTime,DateCreated,MediaStreams,People,Overview&Recursive=true&SortOrder=Descending&IncludeItemTypes=Episode&format=json&ImageTypeLimit=1" % limitString
|
||||
else:
|
||||
url = "%s/mediabrowser/Users/%s/Items?%sIsVirtualUnaired=false&IsMissing=False&Fields=ParentId,Name,SortName,CumulativeRunTimeTicks&Recursive=true&SortOrder=Descending&IncludeItemTypes=Episode&format=json&ImageTypeLimit=1" % (server, userid, limitString)
|
||||
url = "{server}/mediabrowser/Users/{UserId}/Items?%sIsVirtualUnaired=false&IsMissing=False&Fields=ParentId,Name,SortName,CumulativeRunTimeTicks&Recursive=true&SortOrder=Descending&IncludeItemTypes=Episode&format=json&ImageTypeLimit=1" % limitString
|
||||
|
||||
jsonData = downloadUtils.downloadUrl(url, suppress=False, popup=0)
|
||||
|
||||
if jsonData != None and jsonData != "":
|
||||
result = json.loads(jsonData)
|
||||
if(result.has_key('Items')):
|
||||
result = result['Items']
|
||||
jsonData = doUtils.downloadUrl(url)
|
||||
if (jsonData == ""):
|
||||
return result
|
||||
|
||||
if (jsonData[u'Items'] != ""):
|
||||
result = jsonData[u'Items']
|
||||
|
||||
return result
|
||||
|
||||
def getCollections(self, type):
|
||||
#Build a list of the user views
|
||||
WINDOW = xbmcgui.Window(10000)
|
||||
username = WINDOW.getProperty('currUser')
|
||||
userid = WINDOW.getProperty('userId%s' % username)
|
||||
server = WINDOW.getProperty('server%s' % username)
|
||||
|
||||
downloadUtils = DownloadUtils()
|
||||
|
||||
try:
|
||||
url = "%s/mediabrowser/Users/%s/Items/Root?format=json" % (server, userid)
|
||||
jsonData = downloadUtils.downloadUrl(url)
|
||||
url = "{server}/mediabrowser/Users/{UserId}/Items/Root?format=json"
|
||||
result = downloadUtils.downloadUrl(url)
|
||||
except Exception, msg:
|
||||
error = "Get connect : " + str(msg)
|
||||
xbmc.log (error)
|
||||
error = "Can't connect: %s" % msg
|
||||
xbmc.log(error)
|
||||
return []
|
||||
|
||||
if(jsonData == ""):
|
||||
if (result == ""):
|
||||
return []
|
||||
|
||||
result = json.loads(jsonData)
|
||||
|
||||
parentid = result[u'Id']
|
||||
|
||||
parentid = result.get("Id")
|
||||
|
||||
htmlpath = "%s/mediabrowser/Users/%s/items?ParentId=%s&Sortby=SortName&format=json" % (server, userid, parentid)
|
||||
jsonData = downloadUtils.downloadUrl(htmlpath)
|
||||
url = "{server}/mediabrowser/Users/{UserId}/items?ParentId=%s&Sortby=SortName&format=json" % parentid
|
||||
result = downloadUtils.downloadUrl(url)
|
||||
collections=[]
|
||||
|
||||
if(jsonData == ""):
|
||||
if (result == ""):
|
||||
return []
|
||||
|
||||
result = json.loads(jsonData)
|
||||
result = result.get("Items")
|
||||
result = result[u'Items']
|
||||
|
||||
for item in result:
|
||||
if(item.get("RecursiveItemCount") != 0):
|
||||
Temp = item.get("Name")
|
||||
Name = Temp.encode('utf-8')
|
||||
section = item.get("CollectionType")
|
||||
itemtype = item.get("CollectionType")
|
||||
if (item[u'RecursiveItemCount'] != 0):
|
||||
Name = item[u'Name']
|
||||
itemtype = item[u'CollectionType']
|
||||
if itemtype == None or itemtype == "":
|
||||
itemtype = "movies" # User may not have declared the type
|
||||
if itemtype == type and item.get("Name") != "Collections":
|
||||
collections.append( {'title' : item.get("Name"),
|
||||
'type' : itemtype,
|
||||
'id' : item.get("Id")})
|
||||
if itemtype == type and Name != "Collections":
|
||||
collections.append({'title': Name,
|
||||
'type' : itemtype,
|
||||
'id' : item[u'Id']})
|
||||
return collections
|
||||
|
||||
def getViewCollections(self, type):
|
||||
#Build a list of the user views
|
||||
WINDOW = xbmcgui.Window(10000)
|
||||
username = WINDOW.getProperty('currUser')
|
||||
userid = WINDOW.getProperty('userId%s' % username)
|
||||
server = WINDOW.getProperty('server%s' % username)
|
||||
|
||||
viewsUrl = "%s/mediabrowser/Users/%s/Views?format=json&ImageTypeLimit=1" % (server, userid)
|
||||
jsonData = DownloadUtils().downloadUrl(viewsUrl, suppress=False, popup=0 )
|
||||
doUtils = DownloadUtils()
|
||||
|
||||
viewsUrl = "{server}/mediabrowser/Users/{UserId}/Views?format=json&ImageTypeLimit=1"
|
||||
jsonData = doUtils.downloadUrl(viewsUrl)
|
||||
collections=[]
|
||||
|
||||
if(jsonData != ""):
|
||||
views = json.loads(jsonData)
|
||||
views = views.get("Items")
|
||||
if (jsonData != ""):
|
||||
views = views[u'Items']
|
||||
|
||||
for view in views:
|
||||
if view.get("Type") == 'UserView': # Need to grab the real main node
|
||||
newViewsUrl = "%s/mediabrowser/Users/%s/items?ParentId=%s&SortBy=SortName&SortOrder=Ascending&format=json&ImageTypeLimit=1" % (server, userid, view.get("Id"))
|
||||
jsonData = DownloadUtils().downloadUrl(newViewsUrl, suppress=False, popup=0 )
|
||||
if(jsonData != ""):
|
||||
newViews = json.loads(jsonData)
|
||||
newViews = newViews.get("Items")
|
||||
if (view[u'Type'] == 'UserView'): # Need to grab the real main node
|
||||
newViewsUrl = "{server}/mediabrowser/Users/{UserId}/items?ParentId=%s&SortBy=SortName&SortOrder=Ascending&format=json&ImageTypeLimit=1" % view[u'Id']
|
||||
jsonData = doUtils.downloadUrl(newViewsUrl)
|
||||
if (jsonData != ""):
|
||||
newViews = newViews[u'Items']
|
||||
for newView in newViews:
|
||||
# There are multiple nodes in here like 'Latest', 'NextUp' - below we grab the full node.
|
||||
if newView.get("CollectionType") == "MovieMovies" or newView.get("CollectionType") == "TvShowSeries":
|
||||
if newView[u'CollectionType'] == "MovieMovies" or newView[u'CollectionType'] == "TvShowSeries":
|
||||
view=newView
|
||||
if(view.get("ChildCount") != 0):
|
||||
Name =(view.get("Name"))
|
||||
if (view[u'ChildCount'] != 0):
|
||||
Name = view[u'Name']
|
||||
|
||||
total = str(view.get("ChildCount"))
|
||||
type = view.get("CollectionType")
|
||||
total = str(view[u'ChildCount'])
|
||||
type = view[u'CollectionType']
|
||||
if type == None:
|
||||
type = "None" # User may not have declared the type
|
||||
if type == type:
|
||||
collections.append( {'title' : Name,
|
||||
'type' : type,
|
||||
'id' : view.get("Id")})
|
||||
collections.append({'title': Name,
|
||||
'type' : type,
|
||||
'id' : view[u'Id']})
|
||||
return collections
|
||||
|
||||
def getBoxSets(self):
|
||||
|
||||
result = None
|
||||
doUtils = DownloadUtils()
|
||||
|
||||
WINDOW = xbmcgui.Window(10000)
|
||||
username = WINDOW.getProperty('currUser')
|
||||
userid = WINDOW.getProperty('userId%s' % username)
|
||||
server = WINDOW.getProperty('server%s' % username)
|
||||
url = "{server}/mediabrowser/Users/{UserId}/Items?SortBy=SortName&IsVirtualUnaired=false&IsMissing=False&Fields=Name,SortName,CumulativeRunTimeTicks&Recursive=true&SortOrder=Ascending&IncludeItemTypes=BoxSet&format=json&ImageTypeLimit=1"
|
||||
|
||||
downloadUtils = DownloadUtils()
|
||||
|
||||
url = "%s/mediabrowser/Users/%s/Items?SortBy=SortName&IsVirtualUnaired=false&IsMissing=False&Fields=Name,SortName,CumulativeRunTimeTicks&Recursive=true&SortOrder=Ascending&IncludeItemTypes=BoxSet&format=json&ImageTypeLimit=1" % (server, userid)
|
||||
|
||||
jsonData = downloadUtils.downloadUrl(url, suppress=False, popup=0)
|
||||
|
||||
if jsonData != None and jsonData != "":
|
||||
result = json.loads(jsonData)
|
||||
if(result.has_key('Items')):
|
||||
result = result['Items']
|
||||
jsonData = doUtils.downloadUrl(url)
|
||||
if (jsonData == ""):
|
||||
return result
|
||||
|
||||
if (jsonData[u'Items'] != ""):
|
||||
result = jsonData[u'Items']
|
||||
|
||||
return result
|
||||
|
||||
def getMoviesInBoxSet(self,boxsetId):
|
||||
|
||||
result = None
|
||||
doUtils = DownloadUtils()
|
||||
|
||||
WINDOW = xbmcgui.Window(10000)
|
||||
username = WINDOW.getProperty('currUser')
|
||||
userid = WINDOW.getProperty('userId%s' % username)
|
||||
server = WINDOW.getProperty('server%s' % username)
|
||||
url = "{server}/mediabrowser/Users/{UserId}/Items?ParentId=%s&Fields=ItemCounts&format=json&ImageTypeLimit=1" % boxsetId
|
||||
|
||||
downloadUtils = DownloadUtils()
|
||||
|
||||
url = "%s/mediabrowser/Users/%s/Items?ParentId=%s&Fields=ItemCounts&format=json&ImageTypeLimit=1" % (server, userid, boxsetId)
|
||||
|
||||
jsonData = downloadUtils.downloadUrl(url, suppress=False, popup=0)
|
||||
|
||||
if jsonData != None and jsonData != "":
|
||||
result = json.loads(jsonData)
|
||||
if(result.has_key('Items')):
|
||||
result = result['Items']
|
||||
jsonData = doUtils.downloadUrl(url)
|
||||
if (jsonData == ""):
|
||||
return result
|
||||
|
||||
if (jsonData[u'Items'] != ""):
|
||||
result = jsonData[u'Items']
|
||||
|
||||
return result
|
||||
|
|
Loading…
Reference in a new issue