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))
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))
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))