--- misc/xbmc/plugin.video.todic/default.py 2015/03/09 20:43:53 2440 +++ misc/xbmc/plugin.video.todic/default.py 2015/06/30 13:03:55 2595 @@ -3,7 +3,7 @@ ''' Todic plugin for XBMC - Version 0.0.10 + Version 0.0.14 ''' import sys @@ -18,14 +18,78 @@ import urllib import urllib2 +#import pprint + from xml.dom.minidom import parseString __addon__ = xbmcaddon.Addon(id='plugin.video.todic') __key__ = __addon__.getSetting('xbmckey').lower() __backend__ = "http://todic.dk/xbmc.php?xbmckey=" + __key__ -fanartImage = os.path.join(__addon__.getAddonInfo('path'), 'fanart.jpg') +fanartImage = os.path.join(__addon__.getAddonInfo('path'), 'movie_bg_blur.jpg') datapath = xbmc.translatePath('special://profile/addon_data/plugin.video.todic/') +ADDON_PATH = __addon__.getAddonInfo('path') +SkinMasterPath = os.path.join(ADDON_PATH, 'skins' ) + '/' +MySkinPath = (os.path.join(SkinMasterPath, '720p')) + '/' +MySkin = 'main.xml' + + +class TodicMovieDialog(xbmcgui.WindowXMLDialog): + def __new__(cls): + return super(TodicMovieDialog, cls).__new__(cls, "main.xml", ADDON_PATH) + + def __init__(self): + super(TodicMovieDialog, self).__init__() + + def onClick( self, controlId ): + print "OnClick: " + str(controlId) + + if (controlId == 50): + self.close() + play_real_video(self.url, self.name) + + if ( controlId == 98 ): + self.close() + + + def onInit(self): + + print "ONINIT" + self.getControl( 1 ).setLabel( self.name); + self.getControl( 2 ).setLabel( self.moviegroups ); + self.getControl( 3 ).setLabel( self.description ); + self.getControl( 10 ).setLabel( self.playlength ); + self.getControl( 11 ).setLabel( self.codecdetails ); + + def setUrl( self, url): + print "SETURL:" + url + self.url = url + self.fetchClipDetails() + + + def fetchClipDetails(self): + param1 = parse_parameter_string( self.url ) + + self.clipkey = param1[ "clipkey" ] + print "CLIPKEY:" + self.clipkey + detailurl = __backend__ + "&action=clipdetails&clipkey=" + self.clipkey + + xml = open_url(detailurl) + + doc = parseString(xml) + self.imdbrating = getText( doc.getElementsByTagName("imdbrating") ) + self.moviegroups = getText( doc.getElementsByTagName("moviegroups") ) + self.playlength = getText( doc.getElementsByTagName("playlength") ) + self.codecdetails = getText( doc.getElementsByTagName("codecdetails") ) + + + + def setName( self, name ): + self.name = name + + def setDescription( self, description ): + self.description = description + class TodicPlayer(xbmc.Player): def __init__(self, *args, **kwargs): @@ -166,7 +230,7 @@ description = description.encode('UTF-8') - u = sys.argv[0] + "?mode=" + urllib.quote(mode) + "&name=" + urllib.quote(name) + "&url=" + urllib.quote(url) + u = sys.argv[0] + "?mode=" + urllib.quote(mode) + "&name=" + urllib.quote(name) + "&url=" + urllib.quote(url) + "&description=" + urllib.quote(description) ok = xbmcplugin.addDirectoryItem(handle = int(sys.argv[1]), url = u, listitem = listitem, isFolder = folder, totalItems = l) if (endlist == True): @@ -175,8 +239,20 @@ -def play_video(url, name): - xml = open_url(url) +def play_video(url, name,description): + if (description == None or description == ""): + play_real_video(url,name) + else: + d = TodicMovieDialog() + d.setUrl( url) + d.setName( name ) + d.setDescription( description ) + + d.doModal() + + +def play_real_video(url, name): + xml = open_url(url) print 'TODIC url: ' + str(url) print 'TODIC xml: '+ xml @@ -277,10 +353,12 @@ def get_params(): + return parse_parameter_string( sys.argv[2] ) + +def parse_parameter_string( paramstring ): param=[] - paramstring=sys.argv[2] if len(paramstring)>=2: - params=sys.argv[2] + params = paramstring cleanedparams=params.replace('?','') if (params[len(params)-1]=='/'): params=params[0:len(params)-2] @@ -298,6 +376,7 @@ url = None name = None mode = None +description = None try: url = urllib.unquote_plus(params["url"]) @@ -311,6 +390,10 @@ mode = int(params["mode"]) except: pass +try: + description = urllib.unquote_plus(params["description"]) +except: + pass try: open_url("http://todic.dk") @@ -340,7 +423,7 @@ elif mode == 50: - play_video(url, name) + play_video(url, name, description)