added support for channels

This commit is contained in:
Marcel van der Veldt 2015-05-05 04:53:21 +02:00
parent 57156cfb1c
commit c374b166bb
3 changed files with 29 additions and 13 deletions

View file

@ -34,11 +34,8 @@ if mode == "play" or mode == "playfromaddon":
# Play items via plugin://plugin.video.emby/
url = "{server}/mediabrowser/Users/{UserId}/Items/%s?format=json&ImageTypeLimit=1" % id
result = DownloadUtils().downloadUrl(url)
#from from addon needed if the palyback is launched from the addon itself
if mode == "playfromaddon":
item = PlaybackUtils().PLAY(result, setup="service")
else:
item = PlaybackUtils().PLAY(result, setup="default")
item = PlaybackUtils().PLAY(result, setup="service")
elif mode == "reset":
utils.reset()
@ -53,7 +50,6 @@ elif mode == "resetauth":
xbmc.executebuiltin('Addon.OpenSettings(plugin.video.emby)')
if mode == "channels" or mode == "channelsfolder":
id = params['id']
@ -195,10 +191,11 @@ if mode == "channels" or mode == "channelsfolder":
xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=file, listitem=liz, isFolder=True)
elif isFolder == True:
file = _addon_url + "?id=%s&mode=channels&folderid=%s" %(channelId, id)
file = _addon_url + "?id=%s&mode=channelsfolder&folderid=%s" %(channelId, id)
xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=file, listitem=liz, isFolder=True)
else:
file = _addon_url + "?id=%s&mode=playfromaddon"%id
file = _addon_url + "?id=%s&mode=play"%id
liz.setProperty('IsPlayable', 'true')
xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=file, listitem=liz)
xbmcplugin.endOfDirectory(handle=int(sys.argv[1]))
@ -232,6 +229,7 @@ elif mode == "nextup":
plot = item['plot']
liz = xbmcgui.ListItem(item['title'])
liz.setInfo( type="Video", infoLabels={ "Title": item['title'] })
liz.setProperty('IsPlayable', 'true')
liz.setInfo( type="Video", infoLabels={ "duration": str(item['runtime']/60) })
liz.setInfo( type="Video", infoLabels={ "Episode": item['episode'] })
liz.setInfo( type="Video", infoLabels={ "Season": item['season'] })
@ -258,7 +256,7 @@ elif mode == "nextup":
for key, value in item['streamdetails'].iteritems():
for stream in value:
liz.addStreamInfo( key, stream )
file = item['file'].replace("mode=play","mode=playfromaddon")
#file = item['file'].replace("mode=play","mode=playfromaddon")
xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=file, listitem=liz)
count +=1
if count == limit:
@ -313,6 +311,10 @@ elif "extrafanart" in sys.argv[0]:
#always do endofdirectory to prevent errors in the logs
xbmcplugin.endOfDirectory(int(sys.argv[1]))
else:
xbmc.executebuiltin('Addon.OpenSettings(plugin.video.emby)')
else:
#open the addon settings if the addon is called directly from video addons
try:
if "content_type" in sys.argv[2]:
xbmc.executebuiltin('Addon.OpenSettings(plugin.video.emby)')
except: pass

View file

@ -163,6 +163,8 @@ class PlayUtils():
return '2147483' # max bit rate supported by server (max signed 32bit integer)
def fileExists(self, result):
if not result.has_key("Path"):
return False
path=result.get("Path").encode('utf-8')
if os.path.exists(path) == True:
return True

View file

@ -1040,8 +1040,19 @@ class WriteKodiDB():
#we need to copy over the default items
import shutil
shutil.copytree(xbmc.translatePath("special://xbmc/system/library/video"), xbmc.translatePath("special://userdata/library/video"))
libraryPath = xbmc.translatePath("special://userdata/library/video/emby/")
#create tag node for emby channels
nodefile = os.path.join(xbmc.translatePath("special://userdata/library/video"), "emby_channels.xml")
if not xbmcvfs.exists(nodefile):
root = Element("node", {"order":"20", "type":"folder"})
SubElement(root, "label").text = "Emby - Channels"
SubElement(root, "path").text = "plugin://plugin.video.emby/?id=0&mode=channels"
SubElement(root, "icon").text = "DefaultMovies.png"
try:
ET.ElementTree(root).write(nodefile, xml_declaration=True)
except:
ET.ElementTree(root).write(nodefile)
if type == "movie":
type = "movies"
@ -1170,6 +1181,7 @@ class WriteKodiDB():
ET.ElementTree(root).write(nodefile, xml_declaration=True)
except:
ET.ElementTree(root).write(nodefile)
def updateBoxsetToKodiLibrary(self, boxsetmovie, boxset, connection, cursor):
strSet = boxset["Name"]