diff --git a/resources/lib/LibrarySync.py b/resources/lib/LibrarySync.py index 3cf8f5c4..ac198d54 100644 --- a/resources/lib/LibrarySync.py +++ b/resources/lib/LibrarySync.py @@ -843,4 +843,40 @@ class LibrarySync(): if comparestring1 == comparestring2: episode = item - return episode \ No newline at end of file + return episode + + + def getCollections(self): + #Build a list of the user views + userid = DownloadUtils().getUserId() + addon = xbmcaddon.Addon(id='plugin.video.mb3sync') + port = addon.getSetting('port') + host = addon.getSetting('ipaddress') + server = host + ":" + port + + viewsUrl = server + "/mediabrowser/Users/" + userid + "/Views?format=json&ImageTypeLimit=1" + jsonData = DownloadUtils().downloadUrl(viewsUrl, suppress=True, popup=0 ) + + if(jsonData != ""): + views = json.loads(jsonData) + views = views.get("Items") + collections=[] + for view in views: + if(view.get("ChildCount") != 0): + Name =(view.get("Name")).encode('utf-8') + + total = str(view.get("ChildCount")) + type = view.get("CollectionType") + if type == None: + type = "None" # User may not have declared the type + if type == "movies" or type == "tvshows": + collections.append( {'title' : Name, + 'type' : type, + 'id' : view.get("Id")}) + return collections + + + + + + \ No newline at end of file diff --git a/resources/lib/Utils.py b/resources/lib/Utils.py index 7ee26cf7..ae73cdc1 100644 --- a/resources/lib/Utils.py +++ b/resources/lib/Utils.py @@ -53,7 +53,7 @@ def checkKodiSources(): xbmcvfs.mkdir(dataPath) if not xbmcvfs.exists(movieLibrary + os.sep): xbmcvfs.mkdir(movieLibrary) - rebootRequired = addKodiSource("mediabrowser_movies",movieLibrary,"movies") + rebootRequired = addKodiSource("mediabrowser_movies",movieLibrary,"movies") if not xbmcvfs.exists(tvLibrary + os.sep): xbmcvfs.mkdir(tvLibrary) rebootRequired = addKodiSource("mediabrowser_tvshows",tvLibrary,"tvshows") @@ -86,31 +86,33 @@ def addKodiSource(name, path, type): else: error = True - if error: - # if adding to the database failed, manually add it to sources.xml - sourcesFile = xbmc.translatePath( "special://profile/sources.xml" ) - if xbmcvfs.exists(sourcesFile): - tree = ET.ElementTree(file=sourcesFile) - root = tree.getroot() - videosources = root.find("video") - #remove any existing entries for this path - allsources = videosources.findall("source") - if allsources != None: - for source in allsources: - if source.find("name").text == name: - videosources.remove(source) - # add the new source - source = SubElement(videosources,'source') - SubElement(source, "name").text = name - SubElement(source, "path").text = path - tree.write(sourcesFile) + # add it to sources.xml + sourcesFile = xbmc.translatePath( "special://profile/sources.xml" ) + + # add an emply sources file to work with + if xbmcvfs.exists(sourcesFile) == False: + sources = Element("sources") + video = SubElement(sources, "video") + ET.ElementTree(sources).write(sourcesFile) + + if xbmcvfs.exists(sourcesFile): + tree = ET.ElementTree(file=sourcesFile) + root = tree.getroot() + videosources = root.find("video") + #remove any existing entries for this path + allsources = videosources.findall("source") + if allsources != None: + for source in allsources: + if source.find("name").text == name: + videosources.remove(source) + # add the new source + source = SubElement(videosources,'source') + SubElement(source, "name").text = name + SubElement(source, "path").text = path + tree.write(sourcesFile) #return bool that reboot is needed and manual add of path to kodi - return True - else: - #return false that no reboot is needed - return False - - + #return True + def checkAuthentication(): #check authentication