Beispiel #1
0
 def executeItem(self, item):
     url = item['url']
     if '(' in url:
         xbmcCommand = parseText(url,'([^\(]*).*')
         if xbmcCommand.lower() in ['activatewindow', 'runscript', 'runplugin', 'playmedia']:
             if xbmcCommand.lower() == 'activatewindow':
                 params = parseText(url, '.*\(\s*(.+?)\s*\).*').split(',')
                 for i in range(len(params)-1,-1,-1):
                     p = params[i]
                     if p == 'return':
                         params.remove(p)
                 path = enc.unescape(params[len(params)-1])
                 xbmc.executebuiltin('Container.Update(' + path + ')')
                 return
             xbmc.executebuiltin(enc.unescape(url))
Beispiel #2
0
 def executeItem(self, item):
     url = item["url"]
     if "(" in url:
         xbmcCommand = parseText(url, "([^\(]*).*")
         if xbmcCommand.lower() in ["activatewindow", "runscript", "runplugin", "playmedia"]:
             if xbmcCommand.lower() == "activatewindow":
                 params = parseText(url, ".*\(\s*(.+?)\s*\).*").split(",")
                 for i in range(len(params) - 1, -1, -1):
                     p = params[i]
                     if p == "return":
                         params.remove(p)
                 path = enc.unescape(params[len(params) - 1])
                 xbmc.executebuiltin("Container.Update(" + path + ")")
                 return
             xbmc.executebuiltin(enc.unescape(url))
Beispiel #3
0
 def executeItem(self, item):
     url = item['url']
     if '(' in url:
         xbmcCommand = parseText(url,'([^\(]*).*')
         if xbmcCommand.lower() in ['activatewindow', 'runscript', 'runplugin', 'playmedia']:
             if xbmcCommand.lower() == 'activatewindow':
                 params = parseText(url, '.*\(\s*(.+?)\s*\).*').split(',')
                 for i in range(len(params)-1,-1,-1):
                     p = params[i]
                     if p == 'return':
                         params.remove(p)
                 path = enc.unescape(params[len(params)-1])
                 xbmc.executebuiltin('Container.Update(' + path + ')')
                 return
             xbmc.executebuiltin(enc.unescape(url))
Beispiel #4
0
 def launchChrome(self, url, title):
     action = 'RunPlugin(%s)' % (
         'plugin://plugin.program.chrome.launcher/?kiosk=yes&mode=showSite&stopPlayback=yes&url='
         + url)
     common.log('chrome test:' + str(action))
     xbmc.executebuiltin(enc.unescape(action))
 def launchChrome (self, url, title):
     action = 'RunPlugin(%s)' % ('plugin://plugin.program.chrome.launcher/?kiosk=yes&mode=showSite&stopPlayback=yes&url=' + url)
     common.log('chrome test:' + str(action))
     xbmc.executebuiltin(enc.unescape(action))
    def run(self, paramstring):
        common.log('SportsDevil running')
        try:
            # Main Menu
            if len(paramstring) <= 2:
                # Set fanart
                xbmcplugin.setPluginFanart(self.handle, common.Paths.pluginFanart)

                # Clear cache
                self.clearCache()

                # Show Main Menu
                tmpList = self.parseView(self.MAIN_MENU_FILE)
                if tmpList:
                    self.currentlist = tmpList
                    self.curr_file = tmpList.cfg

            else:
                params = paramstring
                mode, codedItem = params.split('&',1)
                mode = int(mode.split('=')[1])

                codedItem = codedItem[4:]
                item = decodeUrl(codedItem)

                # switch(mode)
                if mode == Mode.VIEW:
                    tmpList = self.parseView(codedItem)
                    if tmpList:
                        self.currentlist = tmpList
                        self.curr_file = tmpList.cfg
                        count = len(self.currentlist.items)
                        if count == 0:
                            common.showInfo('No stream available')
                        elif count == 1:
                            # Autoplay single video
                            autoplayEnabled = common.getSetting('autoplay') == 'true'
                            if autoplayEnabled:
                                videos = self.currentlist.getVideos()
                                if len(videos) == 1:
                                    self.playVideo(videos[0], True)


                elif mode == Mode.ADDITEM:
                    if self.favouritesManager.addItem():
                        xbmc.executebuiltin('Container.Refresh()')

                elif mode in [Mode.ADDTOFAVOURITES, Mode.REMOVEFROMFAVOURITES, Mode.EDITITEM]:

                    if mode == Mode.ADDTOFAVOURITES:
                        self.favouritesManager.addToFavourites(item)
                    elif mode == Mode.REMOVEFROMFAVOURITES:
                        self.favouritesManager.removeItem(item)
                        xbmc.executebuiltin('Container.Refresh()')
                    elif mode == Mode.EDITITEM:
                        if self.favouritesManager.editItem(item):
                            xbmc.executebuiltin('Container.Refresh()')

                elif mode == Mode.EXECUTE:
                    url = item['url']
                    if url.find('(') > -1:
                        xbmcCommand = parseText(url,'([^\(]*).*')
                        if xbmcCommand.lower() in ['activatewindow', 'runscript', 'runplugin', 'playmedia']:
                            if xbmcCommand.lower() == 'activatewindow':
                                params = parseText(url, '.*\(\s*(.+?)\s*\).*').split(',')
                                for i in range(len(params)-1,-1,-1):
                                    p = params[i]
                                    if p == 'return':
                                        params.remove(p)
                                path = enc.unescape(params[len(params)-1])
                                xbmc.executebuiltin('Container.Update(' + path + ')')
                                return
                            xbmc.executebuiltin(enc.unescape(url))

                elif mode == Mode.PLAY:
                    self.playVideo(item)

                elif mode == Mode.QUEUE:
                    dia = DialogProgress()
                    dia.create('SportsDevil', 'Get videos...' + item['title'])
                    dia.update(0)

                    items = self.getVideos(item, dia)
                    if items:
                        for it in items:
                            item = self.createXBMCListItem(it)
                            uc = sys.argv[0] + '?mode=' + str(Mode.PLAY) + '&url=' + codeUrl(it)
                            item.setProperty('IsPlayable', 'true')
                            item.setProperty('IsFolder','false')
                            xbmc.PlayList(1).add(uc, item)
                        resultLen = len(items)
                        msg = 'Queued ' + str(resultLen) + ' video'
                        if resultLen > 1:
                            msg += 's'
                        dia.update(100, msg)
                        xbmc.sleep(500)
                        dia.update(100, msg,' ',' ')
                    else:
                        dia.update(0, 'No items found',' ')

                    xbmc.sleep(700)
                    dia.close()

                elif mode == Mode.DOWNLOAD:
                    url = urllib.unquote(item['url'])
                    title = item['title']
                    self.downloadVideo(url, title)

        except Exception, e:
            if common.enable_debug:
                traceback.print_exc(file = sys.stdout)
            common.showError('Error running SportsDevil.\n\nReason:\n' + str(e))