/[projects]/misc/xbmc/plugin.video.todic/default.py
ViewVC logotype

Diff of /misc/xbmc/plugin.video.todic/default.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2097 by torben, Sun Jan 5 22:00:42 2014 UTC revision 3265 by torben, Sat Mar 20 18:35:52 2021 UTC
# Line 3  Line 3 
3    
4  '''  '''
5      Todic plugin for XBMC      Todic plugin for XBMC
6      Version 0.0.9      Version 1.9.4
7  '''  '''
8    
9  import sys  import sys
 import cgi as urlparse  
10  import os  import os
11    
12    
13  import xbmc  import xbmc
14  import xbmcaddon  import xbmcaddon
15  import xbmcgui  import xbmcgui
16    import xbmcvfs
17  import xbmcplugin  import xbmcplugin
18  import urllib  import urllib
19  import urllib2  import urllib.request
20    
21    import platform
22    
23    # import pprint
24    
25  from xml.dom.minidom import parseString  from xml.dom.minidom import parseString
26    from time import time
27    
28  __addon__ = xbmcaddon.Addon(id='plugin.video.todic')  __addon__ = xbmcaddon.Addon(id='plugin.video.todic')
29  __key__ = __addon__.getSetting('xbmckey').lower()  __key__ = __addon__.getSetting('xbmckey').lower()
30  __backend__ = "http://todic.dk/xbmc.php?xbmckey=" + __key__  __entrypoint__ = __addon__.getSetting('entrypoint').lower()
31  fanartImage = os.path.join(__addon__.getAddonInfo('path'), 'fanart.jpg')  __backend__ = "https://todic.dk/xbmc.php?xbmckey=" + __key__
 datapath = xbmc.translatePath('special://profile/addon_data/plugin.video.todic/')  
32    
33    
34  class TodicPlayer(xbmc.Player):  if __entrypoint__ == "alternative":
35          def __init__(self, *args, **kwargs):      __backend__ = "https://alt.todic.dk/xbmc.php?xbmckey=" + __key__
                 #xbmc.Player.__init__(selv,*args,**kwargs)  
                 xbmc.Player.__init__(self, xbmc.PLAYER_CORE_MPLAYER )  
                 self.stopped = False  
                 self.started = False  
                 print "[TodicPlayer] init"  
   
 #       @catchall        
         def onPlayBackStarted(self):  
                 self.started = True  
                 print "[TodicPlayer] : started"  
 #               super.onPlayBackStarted()  
   
         def onPlayBackStopped(self):  
                 self.stopped = True  
                 print "[TodicPlayer] : stopped"  
   
         def onPlayBackEnded(self):  
                 self.stopped = True  
                 print "[TodicPlayer] : ended"  
   
         def callbackLoop(self):  
                 print "[Todic] startLoop"  
                 while (self.stopped == False):  
                         if (self.started == True ):  
                                 print "[todic] " + str(self.getTime())  
                         xbmc.sleep(5000)  
                           
36    
37  def getText2(nodelist):  if __entrypoint__ == "testing":
38          rc = []      __backend__ = "https://todic.dk/xbmc-beta.php?xbmckey=" + __key__
         for node in nodelist:  
                 if node.nodeType == node.TEXT_NODE:  
                         rc.append(node.data)  
                 else:  
                         rc.append( getText(node.childNodes) )  
         return ''.join(rc)  
39    
40  def getText(nodelist):  print( "[Todic] entrypoint: " + __entrypoint__ )
41          if nodelist.length == 0:  print( "[Todic] backend: " + __backend__ )
42                  return ''  print( "[Todic] version: " + __addon__.getAddonInfo('version') )
         else:  
                 if nodelist[0].childNodes.length == 0:  
                         return ''  
                 else:  
                         return nodelist[0].childNodes[0].nodeValue  
43    
44  def SaveFile(path, data):  fanartImage = os.path.join(__addon__.getAddonInfo('path'), 'movie_bg_blur.jpg')
45          file = open(path,'w')  datapath = xbmcvfs.translatePath(
46          file.write(data)      'special://profile/addon_data/plugin.video.todic/')
         file.close()  
47    
48    ADDON_PATH = __addon__.getAddonInfo('path')
49    SkinMasterPath = os.path.join(ADDON_PATH, 'skins') + '/'
50    MySkinPath = (os.path.join(SkinMasterPath, '720p')) + '/'
51    MySkin = 'main.xml'
52    
 def open_url(url):  
         req = urllib2.Request(url)  
         content = urllib2.urlopen(req)  
         data = content.read()  
         content.close()  
         return data  
53    
54  def rootMenu():  class TodicMovieDialog(xbmcgui.WindowXMLDialog):
55    
56        def __new__(cls):
57            return super(TodicMovieDialog, cls).__new__(cls, "main.xml", ADDON_PATH)
58    
59          msg = open_url(__backend__ + "&action=messages")      def __init__(self):
60          msg = msg.strip()          super(TodicMovieDialog, self).__init__()
61            self.position = 0
62    
63          if msg != "":      def onClick(self, controlId):
64                  dialog = xbmcgui.Dialog()                        print( "[Todic] MovieDialog OnClick: " + str(controlId) )
                 dialog.ok('XBMC Todic', msg)  
65    
66          buildList(__backend__, "", False) # call default list          if (controlId == 50):
67                self.close()
68                play_real_video(self.url, self.name, 0)
69    
70          # Adde xtra items to root menu          if (controlId == 51):
71          listitem = xbmcgui.ListItem(label = "Søg film ...", iconImage = 'DefaultFolder.png', thumbnailImage = 'DefaultFolder.png')              self.close()
72          listitem.setProperty('Fanart_Image', fanartImage)              play_real_video(self.url, self.name, self.position)
73    
74          u = sys.argv[0] + "?mode=10&name="          if (controlId == 98):
75          ok = xbmcplugin.addDirectoryItem(handle = int(sys.argv[1]), url = u, listitem = listitem, isFolder = True)              self.close()
76    
77          #add search series      def onInit(self):
         listitem = xbmcgui.ListItem(label = "Søg Serier ...", iconImage = 'DefaultFolder.png', thumbnailImage = 'DefaultFolder.png')  
         listitem.setProperty('Fanart_Image', fanartImage)  
78    
79          u = sys.argv[0] + "?mode=11&name="          print( "[Todic] MovieDialog onInit" )
80          ok = xbmcplugin.addDirectoryItem(handle = int(sys.argv[1]), url = u, listitem = listitem, isFolder = True)          self.getControl(1).setLabel(self.name)
81            self.getControl(2).setLabel(self.moviegroups)
82            self.getControl(3).setLabel(self.description)
83            self.getControl(10).setLabel(self.playlength)
84            self.getControl(11).setLabel(self.codecdetails)
85    
86            if (self.position > 0):
87                self.getControl(51).setVisible(True)
88                self.getControl(50).setPosition(100, 570)
89                self.getControl(51).setPosition(450, 570)
90                self.getControl(50).controlLeft( self.getControl(51) )
91                self.getControl(50).controlRight( self.getControl(51) )
92            else:
93                self.getControl(51).setVisible(False)
94    
95          xbmcplugin.endOfDirectory(int(sys.argv[1]))          #orig_img_width = self.getControl(40).getWidth()
96            #self.starwidth = (float(self.imdbrating) / 10.0) * orig_img_width
97            #self.getControl(40).setWidth(int(self.starwidth))
98    
99        def setDetailsDoc(self, detailsDoc):
100            print( "[Todic] MovieDialog setDetailsDoc:")
101            self.imdbrating = getText(detailsDoc.getElementsByTagName("imdbrating"))
102            self.moviegroups = getText(detailsDoc.getElementsByTagName("moviegroups"))
103            self.playlength = getText(detailsDoc.getElementsByTagName("playlength"))
104            self.codecdetails = getText(detailsDoc.getElementsByTagName("codecdetails"))
105            self.position = int( getText(detailsDoc.getElementsByTagName("position")) )
106    
107        def setUrl(self, url):
108            self.url = url
109    
110  def buildList(url,title, endlist=True):      def setName(self, name):
111          print '[TODIC]:'+str(url)          self.name = name
112    
113          link = open_url(url)      def setDescription(self, description):
114          doc = parseString(link)          self.description = description
115          ty = doc.getElementsByTagName("meta")[0].getAttribute("type")  
116          print '[TODIC]'+str(ty)  
117    class TodicPlayer(xbmc.Player):
118    
119          if ty == 'clipList':      def __init__(self, *args, **kwargs):
120                  mode = '50'          # xbmc.Player.__init__(selv,*args,**kwargs)
121                  folder = False          xbmc.Player.__init__(self)
122            self.stopped = False
123            self.started = False
124            self.playingPosition = 0.0
125            self.lastReport = 0
126            print( "[TodicPlayer] init")
127    
128        def onPlayBackStarted(self):
129            self.started = True
130            print( "[TodicPlayer] : started")
131    
132        #When user presses stop, we report back the the position registered in the last call to self.tick()
133        def onPlayBackStopped(self):
134            self.stopped = True
135            print( "[TodicPlayer] : stopped")
136            self.reportPlaytime("stopped")
137    
138        def onPlayBackPaused(self):
139            print( "[TodicPlayer] : paused")
140            self.reportPlaytime("paused")
141    
142        def onPlayBackResumed(self):
143            print( "[TodicPlayer] : resumed")
144            self.reportPlaytime("resumed")
145    
146    
147        def onPlayBackEnded(self):
148            self.stopped = True
149            print( "[TodicPlayer] : ended")
150            self.reportPlaytime("ended")
151    
152        def tick(self):
153            #print( "[Todic] Tick: " + str( self.isPlaying() ) )
154            if ( self.isPlaying() ):
155                tmpTime = self.getTime()
156    
157                #only report time if it has changed in the mean time
158                if tmpTime != self.playingPosition:
159                    self.playingPosition = tmpTime
160                    now = time()
161                    #print( "[Todic] tick " + str(now) + " " + str(self.lastReport) + " : " +str(now - self.lastReport) )
162                    if ( (now - self.lastReport) > 60.0):
163                        self.lastReport = now
164                        self.reportPlaytime("playing")
165    
166        def reportPlaytime(self, subaction):
167            if (self.playingPosition > 60):
168                url = __backend__ + "&action=playbacktime&subaction=" + subaction + "&time=" + str( self.playingPosition )
169                print( "[Todic] reportPlaytime:" + url)
170                open_url_safe(url)
171    
172    
173    
174    def getText2(nodelist):
175        rc = []
176        for node in nodelist:
177            if node.nodeType == node.TEXT_NODE:
178                rc.append(node.data)
179          else:          else:
180                  mode = '1'              rc.append(getText(node.childNodes))
181                  folder = True      return ''.join(rc)
182    
183    
184          entries = doc.getElementsByTagName("entry")  def getText(nodelist):
185          l=len(entries)      if nodelist.length == 0:
186          description = ''          return ''
187          for entry in entries:      else:
188                  name =  getText( entry.getElementsByTagName("title") )          if nodelist[0].childNodes.length == 0:
189                  url =  getText( entry.getElementsByTagName("url") )              return ''
190                  thumb = getText( entry.getElementsByTagName("cover") )          else:
191                  description = getText( entry.getElementsByTagName("description") )              return nodelist[0].childNodes[0].nodeValue
                 playcount = getText( entry.getElementsByTagName("playcount") )  
   
                 if playcount == '':  
                         playcount = '0'  
                 playcount = int(playcount)  
192    
193    
194  ##              print "name:" + name  
195  #               print "url:" + url  def SaveFile(path, data):
196  #               print "thumb:" + thumb      file = open(path, 'w')
197  #               print "description:" + description      file.write(data)
198        file.close()
199    
200    
201    
202                  listitem = xbmcgui.ListItem(label = name, label2='test', iconImage = 'DefaultFolder.png', thumbnailImage = thumb)  def open_url(url):
203                  listitem.setProperty('Fanart_Image', fanartImage)      kodi_ver = xbmc.getInfoLabel('System.BuildVersion')
204                  if mode == '50':      reqobj = urllib.request.Request(
205                          infoLabels = {}          url,
206                          infoLabels['title'] = name          data=None,
207                          infoLabels['plot'] = description          headers={
208                          infoLabels['playcount'] = playcount              'User-Agent': 'TodicKodi:' + str(__addon__.getAddonInfo('version')) + " Kodi:" + str(kodi_ver) + " Platform:" + str(platform.system()) + " " + str(platform.release())
209                          listitem.setInfo('video', infoLabels)          }
210        )
211    
212        with urllib.request.urlopen(reqobj) as req:
213            #data = response.read()
214            #return data
215            charset=req.info().get_content_charset()
216            content=req.read().decode(charset)
217            return content
218    
219    
220    # wraps open url in a catch-all exception handler
221    # usefull for periodic back-reporting that should not interrupt the program flow
222    def open_url_safe(url):
223        try:
224            return open_url(url)
225        except:
226            print( "[Todic] Some error during open_url call to ", url)
227    
                 name = name.encode('UTF-8')  
                 description = description.encode('UTF-8')  
228    
229    
230                  u = sys.argv[0] + "?mode=" + urllib.quote(mode) + "&name=" + urllib.quote(name) + "&url=" + urllib.quote(url)  def rootMenu():
231                  ok = xbmcplugin.addDirectoryItem(handle = int(sys.argv[1]), url = u, listitem = listitem, isFolder = folder, totalItems = l)      kodi_ver = xbmc.getInfoLabel('System.BuildVersion')
232        plugin_ver = __addon__.getAddonInfo('version')
233        msgurl = __backend__ + "&action=messages&kodi=" + urllib.parse.quote(kodi_ver) + "&todicplugin=" + urllib.parse.quote(plugin_ver)
234    
235          if (endlist == True):        msg = open_url(msgurl)
236                  xbmcplugin.endOfDirectory(int(sys.argv[1]))      msg = msg.strip()
237    
238        if msg != "":
239            print("[Todic] rootMenu Dialog =" + str(msg))
240            dialog = xbmcgui.Dialog()
241            dialog.ok('XBMC Todic', msg)
242    
243        buildList(__backend__, "", False)  # call default list
244    
245        # Adde xtra items to root menu
246        listitem = xbmcgui.ListItem(label="Søg Film ...")
247        listitem.setArt( { 'icon':'DefaultFolder.png', 'thumb':'DefaultFolder.png'} )
248        listitem.setProperty('Fanart_Image', fanartImage)
249    
250  def play_video(url, name):      u = sys.argv[0] + "?mode=10&name="
251          xml = open_url(url)      xbmcplugin.addDirectoryItem(
252          print 'TODIC url: ' + str(url)          handle=int(sys.argv[1]), url=u, listitem=listitem, isFolder=True)
         print 'TODIC xml: '+ xml  
253    
254          doc = parseString(xml)      # add search series
255          url = getText( doc.getElementsByTagName("url") )      listitem = xbmcgui.ListItem(label="Søg Serier ...")
256        listitem.setArt( { 'icon':'DefaultFolder.png', 'thumb':'DefaultFolder.png'} )
257        listitem.setProperty('Fanart_Image', fanartImage)
258    
259          subtitleurl = getText( doc.getElementsByTagName("subtitles") )      u = sys.argv[0] + "?mode=11&name="
260          subtitlesfile = os.path.join(datapath,'temp.srt')      xbmcplugin.addDirectoryItem(
261            handle=int(sys.argv[1]), url=u, listitem=listitem, isFolder=True)
262    
263          #if old srt file exists delete it first      xbmcplugin.endOfDirectory(int(sys.argv[1]))
         if os.path.isfile(subtitlesfile):  
                 os.unlink(subtitlesfile)  
264    
         print '[TODIC] subs: '+str(subtitleurl)  
         if len(subtitleurl) > 0:  
                 subtitles = open_url(subtitleurl)  
                 SaveFile(subtitlesfile, subtitles)  
                 print 'TODIC downloaded subtitles'  
265    
266    def buildList(url, title, endlist=True):
267        print( '[Todic::buildList]:' + str(url) )
268    
269        link = open_url(url)
270        doc = parseString(link)
271        ty = doc.getElementsByTagName("meta")[0].getAttribute("type")
272        print( '[Todic]' + str(ty))
273    
274          image = xbmc.getInfoImage( 'ListItem.Thumb' )      if ty == 'clipList':
275          listitem = xbmcgui.ListItem(label = name , iconImage = 'DefaultVideo.png', thumbnailImage = image)          mode = '50'
276          listitem.setInfo( type = "Video", infoLabels={ "Title": name } )          folder = False
277        else:
278            mode = '1'
279            folder = True
280    
281          player = TodicPlayer(xbmc.PLAYER_CORE_AUTO)      entries = doc.getElementsByTagName("entry")
282          player.play(str(url), listitem)      l = len(entries)
283    
284          #kan ikke loade subtitles hvis foerend playeren koerer      for entry in entries:
285          count = 0          name = getText(entry.getElementsByTagName("title"))
286          while not xbmc.Player().isPlaying():          url = getText(entry.getElementsByTagName("url"))
287                  xbmc.sleep(500)          thumb = getText(entry.getElementsByTagName("cover"))
288                  count += 1          playcount = getText(entry.getElementsByTagName("playcount"))
                 if count > 10:  
                         break  
289    
290    
291          if xbmc.Player().isPlaying():          if playcount == '':
292                  if os.path.isfile(subtitlesfile):              playcount = '0'
293                          player.setSubtitles(subtitlesfile)          playcount = int(playcount)
                         print 'TODIC started subtitles'  
                 else:  
                         player.disableSubtitles()  
294    
295  #       player.callbackLoop()  # print "name:" + name
296    #               print "url:" + url
297    #               print "thumb:" + thumbi
298            listitem = xbmcgui.ListItem(label=name, label2='test')
299            listitem.setArt( {'icon': 'DefaultFolder.png'} )
300            listitem.setProperty('Fanart_Image', fanartImage)
301            listitem.addContextMenuItems([('Refresh', 'Container.Refresh')])
302            listitem.setArt( {'thumb': thumb} )
303    
304            if mode == '50':
305                infoLabels = {}
306                infoLabels['title'] = name
307                infoLabels['playcount'] = playcount
308    #            if playcount > 0:
309    #                listitem.setArt( {'thumb': thumb} ) #not pretty - but at least we can show a different icon for unwatched/watched in kodi18  
310                listitem.setInfo('video', infoLabels)
311    
312            name = name.encode('UTF-8')
313    
314            u = sys.argv[0] + "?mode=" + urllib.parse.quote(mode) + "&name=" + urllib.parse.quote(name) + "&url=" + urllib.parse.quote(url)
315            xbmcplugin.addDirectoryItem(
316                handle=int(sys.argv[1]), url=u, listitem=listitem, isFolder=folder, totalItems=l)
317    
318        if (endlist == True):
319            xbmcplugin.endOfDirectory(int(sys.argv[1]))
320    
321    
322    def play_video(url, name):
323        description = ""
324        playPosition = 0
325        savedPosition = 0
326        try:
327            param1 = parse_parameter_string(url)
328            clipkey = param1["clipkey"]
329    
330            print( "[Todic] ClipKey:" + clipkey)
331            detailurl = __backend__ + "&action=clipdetails&clipkey=" + clipkey
332            print( "[Todic] detailURL = " + detailurl)
333    
334            xml = open_url(detailurl)
335    
336            clipDetailsDoc = parseString(xml)
337            savedPosition = int( getText(clipDetailsDoc.getElementsByTagName("position")) )
338            description = getText(clipDetailsDoc.getElementsByTagName("description"))
339        except:
340            print( "[Todic] Unexpected error:", sys.exc_info()[0] )
341    
342        if (description == None or description == ""):
343            if (savedPosition > 0):
344                dialog = xbmcgui.Dialog()
345                #yes / true -afspil fra position
346                answer = dialog.yesno(heading='Todic', message='Afspil fra sidste position', nolabel='Fra start', yeslabel='Fortsæt')
347                if (answer == True):
348                    playPosition = savedPosition
349            
350            play_real_video(url, name, playPosition)
351    
352        else:
353            d = TodicMovieDialog()
354            d.setDetailsDoc(clipDetailsDoc)
355            d.setName(name)
356            d.setUrl(url)
357            d.setDescription(description)
358    
359            d.doModal()
360    
361    
362    def play_real_video(url, name, position):
363        xml = open_url(url)
364        print( '[Todic] url: ' + str(url) )
365        print( '[Todic] xml: ' + str(xml) )
366        print( '[Todic] pos: ' + str(position) )
367    
368        doc = parseString(xml)
369        url = getText(doc.getElementsByTagName("url"))
370    
371        subtitleurl = getText(doc.getElementsByTagName("subtitles"))
372    
373    
374        print( '[Todic] subs: ' + str(subtitleurl) )
375    
376        image = xbmc.getInfoImage('ListItem.Thumb')
377        listitem = xbmcgui.ListItem(label=name)
378        listitem.setArt( {'icon': 'DefaultVideo.png', 'thumb':image} )
379        listitem.setInfo(type="Video", infoLabels={"Title": name})
380    
381        listitem.setProperty('StartOffset', str(position) )
382    
383        if len(subtitleurl) > 0:
384            listitem.setSubtitles([subtitleurl])
385    
386        player = TodicPlayer()
387        player.play(str(url), listitem)
388    
389    
390        #Holder python kørernde indtil at det bliver bedt om at stoppe
391        kodiMonitor = xbmc.Monitor()
392        
393        
394        while (not kodiMonitor.abortRequested()):
395            player.tick()
396            kodiMonitor.waitForAbort( 1 )
397    
398    
399    
400  def search():  def search():
401          search = getUserInput("Todic Søgning")      search = getUserInput("Todic Søgning")
402    
403          if (search != None and search != ""):      if (search != None and search != ""):
404                  url = __backend__ + "&action=search&search=" + urllib.quote_plus(search)          url = __backend__ + "&action=search&search=" + \
405                urllib.parse.quote(search)
406    
407                  #print "[TODIC] Search start: " + search          # print "[Todic] Search start: " + search
408                  #print "[TODIC] Search url: " + url          # print "[Todic] Search url: " + url
409    
410                  buildList(url, "søgning")          buildList(url, "søgning")
411    
 def searchSeries():  
         search = getUserInput("Todic Serie Søgning")  
412    
413          if (search != None and search != ""):  def searchSeries():
414                  url = __backend__ + "&action=searchseries&search=" + urllib.quote_plus(search)      search = getUserInput("Todic Serie Søgning")
415    
416                  #print "[TODIC] Search start: " + search      if (search != None and search != ""):
417                  #print "[TODIC] Search url: " + url          url = __backend__ + "&action=searchseries&search=" + \
418                urllib.parse.quote(search)
419    
420                  buildList(url, "serie søgning")          # print "[Todic] Search start: " + search
421            # print "[Todic] Search url: " + url
422    
423                    buildList(url, "serie søgning")
424    
425    
426                    #=================================== Tool Box =======================================
 #=================================== Tool Box =======================================  
427  # shows a more userfriendly notification  # shows a more userfriendly notification
428  def showMessage(heading, message):  def showMessage(heading, message):
429          duration = 15*1000      print( "[Todic::showMessage] " + str(message) )
430          xbmc.executebuiltin('XBMC.Notification("%s", "%s", %s)' % ( heading, message, duration) )      print( message )
431        duration = 15 * 1000
432        xbmc.executebuiltin('XBMC.Notification("%s", "%s", %s)' %
433                            (heading, message, duration))
434    
435    
436  # raise a keyboard for user input  # raise a keyboard for user input
437  def getUserInput(title = "Input", default="", hidden=False):  def getUserInput(title="Input", default="", hidden=False):
438          result = None      result = None
439    
440          # Fix for when this functions is called with default=None      # Fix for when this functions is called with default=None
441          if not default:      if not default:
442                  default = ""          default = ""
443                            
444          keyboard = xbmc.Keyboard(default, title)      keyboard = xbmc.Keyboard(default, title)
445          keyboard.setHiddenInput(hidden)      keyboard.setHiddenInput(hidden)
446          keyboard.doModal()      keyboard.doModal()
447                    
448          if keyboard.isConfirmed():      if keyboard.isConfirmed():
449                  result = keyboard.getText()          result = keyboard.getText()
450                    
451          return result      return result
452    
453    
454  def get_params():  def get_params():
455          param=[]      return parse_parameter_string(sys.argv[2])
456          paramstring=sys.argv[2]  
457          if len(paramstring)>=2:  
458                  params=sys.argv[2]  def parse_parameter_string(paramstring):
459                  cleanedparams=params.replace('?','')      param = []
460                  if (params[len(params)-1]=='/'):      if len(paramstring) >= 2:
461                          params=params[0:len(params)-2]          params = paramstring
462                  pairsofparams=cleanedparams.split('&')          cleanedparams = params.replace('?', '')
463                  param={}          if (params[len(params) - 1] == '/'):
464                  for i in range(len(pairsofparams)):              params = params[0:len(params) - 2]
465                          splitparams={}          pairsofparams = cleanedparams.split('&')
466                          splitparams=pairsofparams[i].split('=')          param = {}
467                          if (len(splitparams))==2:          for i in range(len(pairsofparams)):
468                                  param[splitparams[0]]=splitparams[1]                                                  splitparams = {}
469          return param              splitparams = pairsofparams[i].split('=')
470                if (len(splitparams)) == 2:
471                    param[splitparams[0]] = splitparams[1]
472        return param
473    
474    
475  params = get_params()  params = get_params()
# Line 299  url = None Line 477  url = None
477  name = None  name = None
478  mode = None  mode = None
479    
480    
481    #print params
482    
483  try:  try:
484          url = urllib.unquote_plus(params["url"])      url = urllib.parse.unquote(params["url"])
485  except:  except:
486          pass      pass
487  try:  try:
488          name = urllib.unquote_plus(params["name"])      name = urllib.parse.unquote(params["name"])
489  except:  except:
490          pass      pass
491  try:  try:
492          mode = int(params["mode"])      mode = int(params["mode"])
493  except:  except:
494          pass      pass
495    
496    print( "[Todic] url=" + str(url))
497    print( "[Todic] name=" + str(name))
498    print( "[Todic] mode=" + str(mode))
499    
500    
501    try:
502        open_url("https://todic.dk")
503    except:
504        showMessage("Fejl", "Kunne ikke forbinde til todic.dk")
505        exit()
506    
507    
508  if url == 'refresh':  if url == 'refresh':
509          #xbmc.output("[tvserver] Container.Refresh") #20130418 xbmc.output virker ikke med XBMC12      # xbmc.output("[tvserver] Container.Refresh") #20130418 xbmc.output virker
510          xbmc.executebuiltin("Container.Refresh")      # ikke med XBMC12
511                xbmc.executebuiltin("Container.Refresh")
512    
513    
514  elif mode == None:  elif mode == None:
515          #build main menu      # build main menu
516          rootMenu()      rootMenu()
517          
518  elif mode == 1:  elif mode == 1:
519          #build list of movie starting letters      # build list of movie starting letters
520          buildList(url, name)      buildList(url, name)
521    
522  elif mode == 10:  elif mode == 10:
523          search()      search()
524    
525  elif mode == 11:  elif mode == 11:
526          searchSeries()      searchSeries()
           
   
 elif mode == 50:  
         play_video(url, name)  
   
   
527    
528    
529    elif mode == 50:
530        play_video(url, name)

Legend:
Removed from v.2097  
changed lines
  Added in v.3265

  ViewVC Help
Powered by ViewVC 1.1.20