def _parseParameters(self): mode = int(self.addon.queries['mode']) queryString = self.addon.queries['item'] item = ListItem.create() if mode in [Mode.CHROME, Mode.ADDTOFAVOURITES, Mode.REMOVEFROMFAVOURITES, Mode.EDITITEM]: item.infos = self.addon.parse_query(urllib.unquote(queryString),{}) else: item.infos = self.addon.parse_query(queryString,{}) return [mode, item]
def _parseParameters(self): mode = int(self.addon.queries['mode']) queryString = self.addon.queries['item'] item = ListItem.create() if mode in [Mode.ADDTOFAVOURITES, Mode.REMOVEFROMFAVOURITES, Mode.EDITITEM]: item.infos = self.addon.parse_query(urllib.unquote(queryString),{}) else: item.infos = self.addon.parse_query(queryString,{}) return [mode, item]
def _parseParameters(self): mode = int(self.addon.queries['mode']) queryString = self.addon.queries['item'] item = ListItem.create() if mode in [Mode.CHROME, Mode.ADDTOFAVOURITES, Mode.REMOVEFROMFAVOURITES, Mode.EDITITEM, Mode.WEBDRIVER]: item.infos = self.addon.parse_query(urllib.unquote(queryString),{}) else: item.infos = self.addon.parse_query(queryString,{}) item.infos = dict((k.decode('utf8'), v.decode('utf8')) for k, v in item.infos.items()) return [mode, item]
def _parseParameters(self): mode = int(self.addon.queries['mode']) queryString = self.addon.queries['item'] item = ListItem.create() if mode in [Mode.CHROME, Mode.ADDTOFAVOURITES, Mode.REMOVEFROMFAVOURITES, Mode.EDITITEM]: item.infos = self.addon.parse_query(urllib.unquote(queryString),{}) else: item.infos = self.addon.parse_query(queryString,{}) item.infos = dict((k.decode('utf8'), v.decode('utf8')) for k, v in item.infos.items()) return [mode, item]
def _parseParameters(self, params): # ugly workaround for OpenELEC (sorts query parameters alphabetically) myparameters = params.split('&') mode = filter(lambda x: x.startswith('mode='), myparameters) codedItem = filter(lambda x: x.startswith('url='), myparameters) myparameters.remove(mode[0]) myparameters.remove(codedItem[0]) myparameters.append(codedItem[0][4:]) mode = int(mode[0].split('=')[1]) item = ListItem.fromUrl('&'.join(myparameters)) return [mode, item]
def queueAllVideos(self, item): 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 = self.base + '?mode=' + str(Mode.PLAY) + '&url=' + ListItem.toUrl(it) xbmc.PlayList(xbmc.PLAYLIST_VIDEO).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()
def parseView(self, lItem): def endOfDirectory(succeeded=True): if self.handle > -1: xbmcplugin.endOfDirectory(handle=self.handle, succeeded=succeeded, cacheToDisc=True) else: common.log('Handle -1') if not lItem: endOfDirectory(False) return None if lItem['type'] == 'search': search_phrase = self.getSearchPhrase() if not search_phrase: common.log("search canceled") endOfDirectory(False) return None else: lItem['type'] = 'rss' lItem['url'] = lItem['url'] % ( urllib.quote_plus(search_phrase)) url = lItem['url'] if url == common.Paths.customModulesFile: self.customModulesManager.getCustomModules() tmpList = None result = self.parser.parse(lItem) if result.code == ParsingResult.Code.SUCCESS: tmpList = result.list elif result.code == ParsingResult.Code.CFGFILE_NOT_FOUND: common.showError("No encuentro el fichero Cfg") endOfDirectory(False) return None elif result.code == ParsingResult.Code.CFGSYNTAX_INVALID: common.showError("sintaxis invalida en Cfg") endOfDirectory(False) return None elif result.code == ParsingResult.Code.WEBREQUEST_FAILED: common.showError("Ha fallado la llamada a la Web") if len(result.list.items) > 0: tmpList = result.list else: endOfDirectory(False) return None # if it's the main menu, add folder 'Favourites' and 'Custom Modules if url == self.MAIN_MENU_FILE: tmp = ListItem.create() tmp['title'] = ' [COLOR blue]ViendoKodi[/COLOR] [COLOR red]Streaming[/COLOR]' tmp['type'] = 'say' tmp['url'] = '' tmp['icon'] = os.path.join(common.Paths.imgDir, 'icon.png') tmpList.items.insert(0, tmp) tmp = ListItem.create() tmp['title'] = '[COLOR red][B] [/B][/COLOR]' tmp['type'] = 'say' tmp['url'] = '' tmp['icon'] = os.path.join(common.Paths.imgDir, 'icon.png') tmpList.items.insert(1, tmp) #tmp = ListItem.create() #tmp['title'] = '[COLOR red]Custom Modules[/COLOR]' #tmp['type'] = 'rss' #tmp['url'] = os.path.join(common.Paths.customModulesDir, 'custom.cfg') #tmpList.items.insert(0, tmp) # if it's the favourites menu, add item 'Add item' elif url == common.Paths.favouritesFile or url.startswith( 'favfolders'): if url.startswith('favfolders'): url = os.path.normpath( os.path.join(common.Paths.favouritesFolder, url)) tmp = ListItem.create() tmp['title'] = 'Add item...' tmp['type'] = 'command' tmp['icon'] = os.path.join(common.Paths.imgDir, 'bookmark_add.png') action = 'RunPlugin(%s)' % (self.base + '?mode=' + str(Mode.ADDITEM) + '&url=' + url) tmp['url'] = action tmpList.items.append(tmp) # Create menu or play, if it's a single video and autoplay is enabled count = len(tmpList.items) if (count == 0 and not url.startswith('favfolders')): common.showInfo('No stream available') #Directory with 0 items endOfDirectory(False) elif not (common.getSetting('autoplay') == 'true' and count == 1 and len(tmpList.getVideos()) == 1): # sort methods sortKeys = tmpList.sort.split('|') setSortMethodsForCurrentXBMCList(self.handle, sortKeys) # Add items to XBMC list for m in tmpList.items: self.addListItem(m, len(tmpList.items)) #Directory with >1 items endOfDirectory(True) else: #Directory with 0 items endOfDirectory(False) return tmpList
def run(self, argv=None): self.addon = Addon('plugin.video.SportsDevil', argv) common.log('SportsDevil running') base = argv[0] handle = int(argv[1]) parameter = argv[2] self.base = base self.handle = handle paramstring = urllib.unquote_plus(parameter) common.log(paramstring) try: # if addon is started listItemPath = xbmcUtils.getListItemPath() if not listItemPath.startswith(self.base): if not('mode=' in paramstring and not 'mode=1&' in paramstring): xbmcplugin.setPluginFanart(self.handle, common.Paths.pluginFanart) self.clearCache() # Main Menu if len(paramstring) <= 2: mainMenu = ListItem.create() mainMenu['url'] = self.MAIN_MENU_FILE tmpList = self.parseView(mainMenu) if tmpList: self.currentlist = tmpList else: [mode, item] = self._parseParameters() # switch(mode) if mode == Mode.VIEW: tmpList = self.parseView(item) if tmpList: self.currentlist = tmpList count = len(self.currentlist.items) if 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: tmp = os.path.normpath(paramstring.split('url=')[1]) if tmp: suffix = tmp.split(os.path.sep)[-1] tmp = tmp.replace(suffix,'') + urllib.quote_plus(suffix) if self.favouritesManager.add(tmp): xbmc.executebuiltin('Container.Refresh()') elif mode in [Mode.ADDTOFAVOURITES, Mode.REMOVEFROMFAVOURITES, Mode.EDITITEM]: if mode == Mode.ADDTOFAVOURITES: self.favouritesManager.addItem(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: self.executeItem(item) elif mode == Mode.PLAY: self.playVideo(item) elif mode == Mode.SLPROXY: self.playSLProxy(item) elif mode == Mode.WEBDRIVER: url = urllib.quote(item['url']) title = item['title'] self.playWebDriver(url, title) elif mode == Mode.QUEUE: self.queueAllVideos(item) elif mode == Mode.CHROME: url = urllib.quote(item['url']) title = item['title'] self.launchChrome(url, title) elif mode == Mode.INSTALLADDON: success = install(item['url']) if success: xbmc.sleep(100) if xbmcUtils.getCurrentWindowXmlFile() == 'DialogAddonSettings.xml': # workaround to update settings dialog common.setSetting('', '') except Exception, e: common.showError('Error running SportsDevil') common.log('Error running SportsDevil. Reason:' + str(e))
def parseView(self, lItem): def endOfDirectory(succeeded=True): xbmcplugin.endOfDirectory(handle=self.handle, succeeded=succeeded, cacheToDisc=True) if not lItem: endOfDirectory(False) return None if lItem['type'] == 'search': search_phrase = self.getSearchPhrase() if not search_phrase: common.log("search canceled") endOfDirectory(False) return None else: lItem['type'] = 'rss' lItem['url'] = lItem['url'] % ( urllib.quote_plus(search_phrase)) url = lItem['url'] if url == common.Paths.customModulesFile: self.customModulesManager.getCustomModules() tmpList = None result = self.parser.parse(lItem) if result.code == ParsingResult.Code.SUCCESS: tmpList = result.list else: if result.code == ParsingResult.Code.CFGFILE_NOT_FOUND: common.showError("Cfg file not found") elif result.code == ParsingResult.Code.CFGSYNTAX_INVALID: common.showError("Cfg syntax invalid") elif result.code == ParsingResult.Code.WEBREQUEST_FAILED: common.showError("Web request failed") endOfDirectory(False) return None # if it's the main menu, add folder 'Favourites' and 'Custom Modules if url == self.MAIN_MENU_FILE: tmp = ListItem.create() tmp['title'] = 'Favourites' tmp['type'] = 'rss' tmp['icon'] = os.path.join(common.Paths.imgDir, 'bookmark.png') tmp['url'] = str(common.Paths.favouritesFile) tmpList.items.insert(0, tmp) tmp = ListItem.create() tmp['title'] = '[COLOR red]Custom Modules[/COLOR]' tmp['type'] = 'rss' tmp['url'] = os.path.join(common.Paths.customModulesDir, 'custom.cfg') tmpList.items.insert(0, tmp) # if it's the favourites menu, add item 'Add item' elif url == common.Paths.favouritesFile or url.startswith( 'favfolders'): if url.startswith('favfolders'): url = os.path.normpath( os.path.join(common.Paths.favouritesFolder, url)) tmp = ListItem.create() tmp['title'] = 'Add item...' tmp['type'] = 'command' tmp['icon'] = os.path.join(common.Paths.imgDir, 'bookmark_add.png') action = 'RunPlugin(%s)' % (self.base + '?mode=' + str(Mode.ADDITEM) + '&url=' + url) tmp['url'] = action tmpList.items.append(tmp) # if it's the custom modules menu, add item 'more...' elif url == common.Paths.customModulesFile: tmp = ListItem.create() tmp['title'] = 'more...' tmp['type'] = 'command' #tmp['icon'] = os.path.join(common.Paths.imgDir, 'bookmark_add.png') action = 'RunPlugin(%s)' % (self.base + '?mode=' + str( Mode.DOWNLOADCUSTOMMODULE) + '&url=') tmp['url'] = action tmpList.items.append(tmp) # Create menu or play, if it's a single video and autoplay is enabled proceed = False count = len(tmpList.items) if count == 0: if url.startswith('favfolders'): proceed = True else: common.showInfo('No stream available') elif count > 0 and not (common.getSetting('autoplay') == 'true' and count == 1 and len(tmpList.getVideos()) == 1): # sort methods sortKeys = tmpList.sort.split('|') setSortMethodsForCurrentXBMCList(self.handle, sortKeys) # Add items to XBMC list for m in tmpList.items: self.addListItem(m, len(tmpList.items)) proceed = True endOfDirectory(proceed) common.log('End of directory') return tmpList
def showListOptions(self,argv=None): params = self.parser.getParams() mode = self.parser.getIntParam(params, "mode") name = self.parser.getParam(params, "name") service = self.parser.getParam(params, "service") self.addon = Addon(scriptID, argv) #print("MMMMMMMM",mode,params) mymodes = [common.Mode2.VIEW ,common.Mode2.PLAY, common.Mode2.ADDTOFAVOURITES, common.Mode2.EXECUTE] mymodes2 = [common.Mode3.VIEW ,common.Mode3.PLAY] base = argv[0] handle = int(argv[1]) parameter = argv[2] self.base = base self.handle = handle paramstring = urllib.unquote_plus(parameter) self.log.info(paramstring) self.log.info('Base: '+ base) self.log.info('Handle: '+ str(handle)) self.log.info('Parameter: '+ parameter) self.log.info('LEN: ' + str(len(paramstring))) self.log.info('mode: ' + str(mode)) if mode == None and name == None and service == None: self.log.info('Wyświetlam kategorie') self.CATEGORIES() #self.LIST(MENU_TABLE) elif mode == 1: self.LIST(TV_ONLINE_TABLE) elif mode == 4: self.LIST(FUN_ONLINE_TABLE) elif mode == 2: self.LIST(FILM_ONLINE_TABLE) elif mode == 3: self.LIST(SERIALE_ONLINE_TABLE) elif mode == 5: self.LIST(DOC_ONLINE_TABLE) elif mode == 6: self.LIST(VOD_ONLINE_TABLE) elif mode == 7: self.LIST(BAJKI_ONLINE_TABLE) elif mode == 20: self.log.info('Wyświetlam ustawienia') self.settings.showSettings() elif mode == 30: self.LIBRTMP() #elif mode == 30 and category=='update': # self.DLLIBRTMP(name,murl) elif mode in mymodes: #try: # if addon is started listItemPath = xbmcUtils.getListItemPath() if not listItemPath.startswith(self.base): if not('mode=' in paramstring and not 'mode=110&' in paramstring): xbmcplugin.setPluginFanart(self.handle, common.Paths.pluginFanart) #if common.getSetting('autoupdate') == 'true': # self.update() # Main Menu if len(paramstring) <= 9: mainMenu = ListItem.create() mainMenu['url'] = self.MAIN_MENU_FILE tmpList = self.parseView(mainMenu) if tmpList: self.currentlist = tmpList else: [mode, item] = self._parseParameters() #print("MMMMMMMM",mode,mydump(item)) # switch(mode) if mode == common.Mode2.VIEW: tmpList = self.parseView(item) #print("MMMMMMMM",item,vars(item)) if tmpList: self.currentlist = tmpList count = len(self.currentlist.items) if count == 1: # Autoplay single video autoplayEnabled = ptv.getSetting('autoplay') == 'true' if autoplayEnabled: videos = self.currentlist.getVideos() if len(videos) == 1: self.playVideo(videos[0], True) elif mode == common.Mode2.ADDITEM: tmp = os.path.normpath(paramstring.split('url=')[1]) if tmp: suffix = tmp.split(os.path.sep)[-1] tmp = tmp.replace(suffix,'') + urllib.quote_plus(suffix) if self.favouritesManager.add(tmp): xbmc.executebuiltin('Container.Refresh()') elif mode in [common.Mode2.ADDTOFAVOURITES, common.Mode2.REMOVEFROMFAVOURITES, common.Mode2.EDITITEM]: if mode == common.Mode2.ADDTOFAVOURITES: self.favouritesManager.addItem(item) elif mode == common.Mode2.REMOVEFROMFAVOURITES: self.favouritesManager.removeItem(item) xbmc.executebuiltin('Container.Refresh()') elif mode == common.Mode2.EDITITEM: if self.favouritesManager.editItem(item): xbmc.executebuiltin('Container.Refresh()') elif mode == common.Mode2.EXECUTE: self.executeItem(item) elif mode == common.Mode2.PLAY: self.playVideo(item) #except Exception, e: # common.showError('Error running Mrknow') # self.log.info('Error running Mrknow. m1 Reason:' + str(e)) elif mode in mymodes2: try: # if addon is started listItemPath = xbmcUtils.getListItemPath() if not listItemPath.startswith(self.base): if not('mode=' in paramstring and not 'mode=210&' in paramstring): xbmcplugin.setPluginFanart(self.handle, common.Paths.pluginFanart) #if common.getSetting('autoupdate') == 'true': # self.update() # Main Menu if len(paramstring) <= 9: mainMenu = ListItem.create() mainMenu['url'] = self.SPORT_MENU_FILE tmpList = self.parseView(mainMenu) if tmpList: self.currentlist = tmpList else: [mode, item] = self._parseParameters() #print("MMMMMMMM",mode,mydump(item)) # switch(mode) if mode == common.Mode2.VIEW: tmpList = self.parseView(item) #print("MMMMMMMM",item,vars(item)) if tmpList: self.currentlist = tmpList count = len(self.currentlist.items) if count == 1: # Autoplay single video autoplayEnabled = ptv.getSetting('autoplay') == 'true' if autoplayEnabled: videos = self.currentlist.getVideos() if len(videos) == 1: self.playVideo(videos[0], True) except Exception, e: common.showError('Error running Mrknow') self.log.info('Error running Mrknow. m2 Reason:' + str(e))
def run(self, paramstring): common.log('SportsDevil running') try: # Main Menu if len(paramstring) <= 2: mainMenu = ListItem.fromUrl(self.MAIN_MENU_FILE) tmpList = self.parseView(mainMenu) if tmpList: self.currentlist = tmpList # if addon is started currFolder = xbmcUtils.getCurrentFolderPath() if not currFolder.startswith(self.base): xbmcplugin.setPluginFanart(self.handle, common.Paths.pluginFanart) self.clearCache() if common.getSetting('autoupdate') == 'true': self.update() else: params = paramstring[1:] [mode, item] = self._parseParameters(params) # switch(mode) if mode == Mode.VIEW: tmpList = self.parseView(item) if tmpList: self.currentlist = tmpList count = len(self.currentlist.items) if 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: self.executeItem(item) elif mode == Mode.PLAY: self.playVideo(item) elif mode == Mode.QUEUE: self.queueAllVideos(item) elif mode == Mode.DOWNLOAD: url = urllib.unquote(item['url']) title = item['title'] self.downloadVideo(url, title) elif mode == Mode.REMOVEFROMCUSTOMMODULES: self.removeCustomModule(item) elif mode == Mode.UPDATE: self.update() elif mode == Mode.DOWNLOADCUSTOMMODULE: self.downloadCustomModule() except Exception, e: if common.enable_debug: traceback.print_exc(file = sys.stdout) common.showError('Error running SportsDevil.\n\nReason:\n' + str(e))
def addListItem(self, lItem, totalItems): def createContextMenuItem(label, mode, codedItem): action = 'XBMC.RunPlugin(%s)' % (self.base + '?mode=' + str(mode) + '&url=' + codedItem) return (label, action) contextMenuItems = [] definedIn = lItem['definedIn'] codedItem = urllib.quote_plus(ListItem.toUrl(lItem)) # Jump to MainMenu # if definedIn and definedIn != self.MAIN_MENU_FILE: # action = 'Container.Update(%s, replace)' % (self.base) # contextMenuItem = ('Jump to Mainmenu', action) # contextMenuItems.append(contextMenuItem) if definedIn: # Queue contextMenuItem = createContextMenuItem('Queue', Mode.QUEUE, codedItem) contextMenuItems.append(contextMenuItem) if definedIn.endswith('favourites.cfg') or definedIn.startswith("favfolders/"): # Remove from favourites contextMenuItem = createContextMenuItem('Remove', Mode.REMOVEFROMFAVOURITES, codedItem) contextMenuItems.append(contextMenuItem) # Edit label contextMenuItem = createContextMenuItem('Edit', Mode.EDITITEM, codedItem) contextMenuItems.append(contextMenuItem) else: if definedIn.endswith('custom.cfg'): # Remove from custom modules contextMenuItem = createContextMenuItem('Remove module', Mode.REMOVEFROMCUSTOMMODULES, codedItem) contextMenuItems.append(contextMenuItem) if lItem['title'] != "Favourites": # Add to favourites contextMenuItem = createContextMenuItem('Add to SportsDevil favourites', Mode.ADDTOFAVOURITES, codedItem) contextMenuItems.append(contextMenuItem) liz = self.createXBMCListItem(lItem) m_type = lItem['type'] if not m_type: m_type = 'rss' if m_type == 'video': u = self.base + '?mode=' + str(Mode.PLAY) + '&url=' + codedItem if lItem['IsDownloadable']: contextMenuItem = createContextMenuItem('Download', Mode.DOWNLOAD, codedItem) contextMenuItems.append(contextMenuItem) isFolder = False elif m_type.find('command') > -1: u = self.base + '?mode=' + str(Mode.EXECUTE) + '&url=' + codedItem isFolder = False else: u = self.base + '?mode=' + str(Mode.VIEW) + '&url=' + codedItem isFolder = True liz.addContextMenuItems(contextMenuItems) xbmcplugin.addDirectoryItem(handle = self.handle, url = u, listitem = liz, isFolder = isFolder, totalItems = totalItems)
def _parseParameters(self): mode = int(self.addon.queries['mode']) queryString = self.addon.queries['item'] item = ListItem.create() item.infos = self.addon.parse_query(queryString,{}) return [mode, item]
def run(self, argv=None): self.addon = Addon('plugin.video.ViendoKodiStreaming', argv) common.log('ViendoKodiStreaming running') base = argv[0] handle = int(argv[1]) parameter = argv[2] self.base = base self.handle = handle paramstring = urllib.unquote_plus(parameter) common.log(paramstring) try: # if addon is started listItemPath = xbmcUtils.getListItemPath() if not listItemPath.startswith(self.base): if not ('mode=' in paramstring and not 'mode=1&' in paramstring): xbmcplugin.setPluginFanart(self.handle, common.Paths.pluginFanart) self.clearCache() #if common.getSetting('autoupdate') == 'true': # self.update() # Main Menu if '98VKS' in paramstring: nametorrent = os.path.normpath(paramstring.split('url=')[1]) if nametorrent == 'quasar': addonTorrent = 'item_info_build=plugin://plugin.video.quasar/play?uri=%s' elif nametorrent == 'pulsar': addonTorrent = 'item_info_build=plugin://plugin.video.pulsar/play?uri=%s' elif nametorrent == 'kmediatorrent': addonTorrent = 'item_info_build=plugin://plugin.video.kmediatorrent/play/%s' elif nametorrent == "torrenter": addonTorrent = 'item_info_build=plugin://plugin.video.torrenter/?action=playSTRM&url=%s¬_download_only=True' elif nametorrent == "yatp": addonTorrent = 'item_info_build=plugin://plugin.video.yatp/?action=play&torrent=%s' else: addonTorrent = 'item_info_build=plugin://plugin.video.xbmctorrent/play/%s' cFichero = common.Paths.catchersDir + '/' + 'torrent.txt' outfile = open(cFichero, 'w') # Indicamos el valor 'w'. outfile.write('item_info_name=url\n' + 'item_info_from=@PARAM1@\n' + addonTorrent + '\n') outfile.close() common.showInfo( '[COLOR red]NO INSTALAR[/COLOR] conjuntamente los addon pulsar y quasar.\nYa que tendremos problemas de compatibilidad y no funcionará ninguno. [COLOR lime] \nPara los torrent se utilizará: [/COLOR] ' + nametorrent) elif len(paramstring) <= 2: mainMenu = ListItem.create() mainMenu['url'] = self.MAIN_MENU_FILE tmpList = self.parseView(mainMenu) if tmpList: self.currentlist = tmpList else: [mode, item] = self._parseParameters() # switch(mode) if mode == Mode.VIEW: tmpList = self.parseView(item) if tmpList: self.currentlist = tmpList count = len(self.currentlist.items) if 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: tmp = os.path.normpath(paramstring.split('url=')[1]) if tmp: suffix = tmp.split(os.path.sep)[-1] tmp = tmp.replace(suffix, '') + urllib.quote_plus(suffix) if self.favouritesManager.add(tmp): xbmc.executebuiltin('Container.Refresh()') elif mode in [ Mode.ADDTOFAVOURITES, Mode.REMOVEFROMFAVOURITES, Mode.EDITITEM ]: if mode == Mode.ADDTOFAVOURITES: self.favouritesManager.addItem(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: self.executeItem(item) elif mode == Mode.PLAY: self.playVideo(item) elif mode == Mode.WEBDRIVER: url = urllib.quote(item['url']) title = item['title'] self.playWebDriver(url, title) elif mode == Mode.QUEUE: self.queueAllVideos(item) elif mode == Mode.CHROME: url = urllib.quote(item['url']) title = item['title'] self.launchChrome(url, title) elif mode == Mode.SAY: #title = item['title'] url = "" elif mode == Mode.INSTALLADDON: success = install(item['url']) if success: xbmc.sleep(100) if xbmcUtils.getCurrentWindowXmlFile( ) == 'DialogAddonSettings.xml': # workaround to update settings dialog common.setSetting('', '') except Exception, e: common.showError('Error running ViendoKodiStreaming') common.log('Error running ViendoKodiStreaming. Reason:' + str(e))
def showListOptions(self,argv=None): params = self.parser.getParams() mode = self.parser.getIntParam(params, "mode") name = self.parser.getParam(params, "name") service = self.parser.getParam(params, "service") self.addon = Addon(scriptID, argv) print("MMMMMMMM",mode,params) mymodes = [common.Mode2.VIEW ,common.Mode2.PLAY, common.Mode2.ADDTOFAVOURITES, common.Mode2.EXECUTE] base = argv[0] handle = int(argv[1]) parameter = argv[2] self.base = base self.handle = handle paramstring = urllib.unquote_plus(parameter) #self.log.info(paramstring) #self.log.info('Base: '+ base) #self.log.info('Handle: '+ str(handle)) #self.log.info('Parameter: '+ parameter) #self.log.info('LEN: ' + str(len(paramstring))) #self.log.info('mode: ' + str(mode)) if mode == None and name == None and service == None: self.log.info('Wyświetlam kategorie') self.CATEGORIES() #self.LIST(MENU_TABLE) elif mode == 1: self.LIST(TV_ONLINE_TABLE) elif mode == 4: self.LIST(FUN_ONLINE_TABLE) elif mode == 19: self.LIST(SPORT_ONLINE_TABLE) elif mode == 2: self.LIST(FILM_ONLINE_TABLE) elif mode == 3: self.LIST(SERIALE_ONLINE_TABLE) elif mode == 20: self.log.info('Wyświetlam ustawienia') self.settings.showSettings() elif mode == 30: self.LIBRTMP() #elif mode == 30 and category=='update': # self.DLLIBRTMP(name,murl) elif mode in mymodes: try: # if addon is started listItemPath = xbmcUtils.getListItemPath() if not listItemPath.startswith(self.base): if not('mode=' in paramstring and not 'mode=110&' in paramstring): xbmcplugin.setPluginFanart(self.handle, common.Paths.pluginFanart) #if common.getSetting('autoupdate') == 'true': # self.update() # Main Menu if len(paramstring) <= 9: mainMenu = ListItem.create() mainMenu['url'] = self.MAIN_MENU_FILE tmpList = self.parseView(mainMenu) if tmpList: self.currentlist = tmpList else: [mode, item] = self._parseParameters() print("MMMMMMMM",mode,mydump(item)) # switch(mode) if mode == common.Mode2.VIEW: tmpList = self.parseView(item) print("MMMMMMMM",item,vars(item)) if tmpList: self.currentlist = tmpList count = len(self.currentlist.items) if count == 1: # Autoplay single video autoplayEnabled = ptv.getSetting('autoplay') == 'true' if autoplayEnabled: videos = self.currentlist.getVideos() if len(videos) == 1: self.playVideo(videos[0], True) elif mode == common.Mode2.ADDITEM: tmp = os.path.normpath(paramstring.split('url=')[1]) if tmp: suffix = tmp.split(os.path.sep)[-1] tmp = tmp.replace(suffix,'') + urllib.quote_plus(suffix) if self.favouritesManager.add(tmp): xbmc.executebuiltin('Container.Refresh()') elif mode in [common.Mode2.ADDTOFAVOURITES, common.Mode2.REMOVEFROMFAVOURITES, common.Mode2.EDITITEM]: if mode == common.Mode2.ADDTOFAVOURITES: self.favouritesManager.addItem(item) elif mode == common.Mode2.REMOVEFROMFAVOURITES: self.favouritesManager.removeItem(item) xbmc.executebuiltin('Container.Refresh()') elif mode == common.Mode2.EDITITEM: if self.favouritesManager.editItem(item): xbmc.executebuiltin('Container.Refresh()') elif mode == common.Mode2.PLAY: self.playVideo(item) except Exception, e: common.showError('Error running Mrknow') self.log.info('Error running Mrknow. Reason:' + str(e))
def parseView(self, lItem): def endOfDirectory(succeeded=True): xbmcplugin.endOfDirectory(handle=self.handle, succeeded=succeeded, cacheToDisc=True) if not lItem: endOfDirectory(False) return None if lItem['type'] == 'search': search_phrase = self.getSearchPhrase() if not search_phrase: common.log("search canceled") endOfDirectory(False) return None else: lItem['type'] = 'rss' lItem['url'] = lItem['url'] % (urllib.quote_plus(search_phrase)) url = lItem['url'] if url == common.Paths.customModulesFile: self.customModulesManager.getCustomModules() tmpList = None result = self.parser.parse(lItem) if result.code == ParsingResult.Code.SUCCESS: tmpList = result.list else: if result.code == ParsingResult.Code.CFGFILE_NOT_FOUND: common.showError("Cfg file not found") elif result.code == ParsingResult.Code.CFGSYNTAX_INVALID: common.showError("Cfg syntax invalid") elif result.code == ParsingResult.Code.WEBREQUEST_FAILED: common.showError("Web request failed") endOfDirectory(False) return None # if it's the main menu, add folder 'Favourites' and 'Custom Modules if url == self.MAIN_MENU_FILE: tmp = ListItem.create() tmp['title'] = '[COLOR green]Favourites[/COLOR]' tmp['type'] = 'rss' tmp['icon'] = os.path.join(common.Paths.imgDir, 'bookmark.png') tmp['url'] = str(common.Paths.favouritesFile) tmpList.items.insert(0, tmp) tmp = ListItem.create() tmp['title'] = '[COLOR red]Custom Modules[/COLOR]' tmp['type'] = 'rss' tmp['url'] = os.path.join(common.Paths.customModulesDir, 'custom.cfg') tmpList.items.insert(0, tmp) # if it's the favourites menu, add item 'Add item' elif url == common.Paths.favouritesFile or url.startswith('favfolders'): if url.startswith('favfolders'): url = os.path.normpath(os.path.join(common.Paths.favouritesFolder, url)) tmp = ListItem.create() tmp['title'] = 'Add item...' tmp['type'] = 'command' tmp['icon'] = os.path.join(common.Paths.imgDir, 'bookmark_add.png') action = 'RunPlugin(%s)' % (self.base + '?mode=' + str(Mode.ADDITEM) + '&url=' + url) tmp['url'] = action tmpList.items.append(tmp) # if it's the custom modules menu, add item 'more...' elif url == common.Paths.customModulesFile: tmp = ListItem.create() tmp['title'] = 'more...' tmp['type'] = 'command' #tmp['icon'] = os.path.join(common.Paths.imgDir, 'bookmark_add.png') action = 'RunPlugin(%s)' % (self.base + '?mode=' + str(Mode.DOWNLOADCUSTOMMODULE) + '&url=') tmp['url'] = action tmpList.items.append(tmp) # Create menu or play, if it's a single video and autoplay is enabled proceed = False count = len(tmpList.items) if count == 0: if url.startswith('favfolders'): proceed = True else: common.showInfo('No stream available') elif count > 0 and not (common.getSetting('autoplay') == 'true' and count == 1 and len(tmpList.getVideos()) == 1): # sort methods sortKeys = tmpList.sort.split('|') setSortMethodsForCurrentXBMCList(self.handle, sortKeys) # Add items to XBMC list for m in tmpList.items: self.addListItem(m, len(tmpList.items)) proceed = True endOfDirectory(proceed) common.log('End of directory') return tmpList
def run(self, argv=None): self.addon = Addon('plugin.video.ViendoKodiStreaming', argv) common.log('ViendoKodiStreaming running') base = argv[0] handle = int(argv[1]) parameter = argv[2] self.base = base self.handle = handle paramstring = urllib.unquote_plus(parameter) common.log(paramstring) try: # if addon is started listItemPath = xbmcUtils.getListItemPath() if not listItemPath.startswith(self.base): if not('mode=' in paramstring and not 'mode=1&' in paramstring): xbmcplugin.setPluginFanart(self.handle, common.Paths.pluginFanart) self.clearCache() #if common.getSetting('autoupdate') == 'true': # self.update() # Main Menu if '98VKS' in paramstring: nametorrent = os.path.normpath(paramstring.split('url=')[1]) if nametorrent == 'quasar': addonTorrent = 'item_info_build=plugin://plugin.video.quasar/play?uri=%s' elif nametorrent == 'pulsar': addonTorrent = 'item_info_build=plugin://plugin.video.pulsar/play?uri=%s' elif nametorrent == 'kmediatorrent': addonTorrent = 'item_info_build=plugin://plugin.video.kmediatorrent/play/%s' elif nametorrent == "torrenter": addonTorrent = 'item_info_build=plugin://plugin.video.torrenter/?action=playSTRM&url=%s¬_download_only=True' elif nametorrent == "yatp": addonTorrent = 'item_info_build=plugin://plugin.video.yatp/?action=play&torrent=%s' else: addonTorrent = 'item_info_build=plugin://plugin.video.xbmctorrent/play/%s' cFichero = common.Paths.catchersDir + '/'+'torrent.txt' outfile = open(cFichero, 'w') # Indicamos el valor 'w'. outfile.write('item_info_name=url\n' + 'item_info_from=@PARAM1@\n' + addonTorrent + '\n' ) outfile.close() common.showInfo('Para los torrent se utilizará ' + nametorrent ) elif len(paramstring) <= 2: mainMenu = ListItem.create() mainMenu['url'] = self.MAIN_MENU_FILE tmpList = self.parseView(mainMenu) if tmpList: self.currentlist = tmpList else: [mode, item] = self._parseParameters() # switch(mode) if mode == Mode.VIEW: tmpList = self.parseView(item) if tmpList: self.currentlist = tmpList count = len(self.currentlist.items) if 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: tmp = os.path.normpath(paramstring.split('url=')[1]) if tmp: suffix = tmp.split(os.path.sep)[-1] tmp = tmp.replace(suffix,'') + urllib.quote_plus(suffix) if self.favouritesManager.add(tmp): xbmc.executebuiltin('Container.Refresh()') elif mode in [Mode.ADDTOFAVOURITES, Mode.REMOVEFROMFAVOURITES, Mode.EDITITEM]: if mode == Mode.ADDTOFAVOURITES: self.favouritesManager.addItem(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: self.executeItem(item) elif mode == Mode.PLAY: self.playVideo(item) elif mode == Mode.WEBDRIVER: url = urllib.quote(item['url']) title = item['title'] self.playWebDriver(url, title) elif mode == Mode.QUEUE: self.queueAllVideos(item) elif mode == Mode.DOWNLOAD: url = urllib.unquote(item['url']) title = item['title'] self.downloadVideo(url, title) elif mode == Mode.CHROME: url = urllib.quote(item['url']) title = item['title'] self.launchChrome(url, title) elif mode == Mode.REMOVEFROMCUSTOMMODULES: self.removeCustomModule(item) #elif mode == Mode.UPDATE: # self.update() elif mode == Mode.SAY: #title = item['title'] url = "" elif mode == Mode.DOWNLOADCUSTOMMODULE: self.downloadCustomModule() elif mode == Mode.INSTALLADDON: success = install(item['url']) if success: xbmc.sleep(100) if xbmcUtils.getCurrentWindowXmlFile() == 'DialogAddonSettings.xml': # workaround to update settings dialog common.setSetting('', '') except Exception, e: common.showError('Error running ViendoKodiStreaming') common.log('Error running ViendoKodiStreaming. Reason:' + str(e))
def run(self, argv=None): self.addon = Addon('plugin.video.SportsDevil', argv) common.log('SportsDevil running') base = argv[0] handle = int(argv[1]) parameter = argv[2] self.base = base self.handle = handle paramstring = urllib.unquote_plus(parameter) try: # if addon is started listItemPath = xbmcUtils.getListItemPath() if not listItemPath.startswith(self.base): if not('mode=' in paramstring and not 'mode=1&' in paramstring): xbmcplugin.setPluginFanart(self.handle, common.Paths.pluginFanart) self.clearCache() #if common.getSetting('autoupdate') == 'true': # self.update() # Main Menu if len(paramstring) <= 2: mainMenu = ListItem.create() mainMenu['url'] = self.MAIN_MENU_FILE tmpList = self.parseView(mainMenu) if tmpList: self.currentlist = tmpList else: [mode, item] = self._parseParameters() # switch(mode) if mode == Mode.VIEW: tmpList = self.parseView(item) if tmpList: self.currentlist = tmpList count = len(self.currentlist.items) if 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: tmp = os.path.normpath(paramstring.split('url=')[1]) if tmp: suffix = tmp.split(os.path.sep)[-1] tmp = tmp.replace(suffix,'') + urllib.quote_plus(suffix) if self.favouritesManager.add(tmp): xbmc.executebuiltin('Container.Refresh()') elif mode in [Mode.ADDTOFAVOURITES, Mode.REMOVEFROMFAVOURITES, Mode.EDITITEM]: if mode == Mode.ADDTOFAVOURITES: self.favouritesManager.addItem(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: self.executeItem(item) elif mode == Mode.PLAY: self.playVideo(item) elif mode == Mode.QUEUE: self.queueAllVideos(item) elif mode == Mode.DOWNLOAD: url = urllib.unquote(item['url']) title = item['title'] self.downloadVideo(url, title) elif mode == Mode.REMOVEFROMCUSTOMMODULES: self.removeCustomModule(item) #elif mode == Mode.UPDATE: # self.update() elif mode == Mode.DOWNLOADCUSTOMMODULE: self.downloadCustomModule() elif mode == Mode.INSTALLADDON: success = install(item['url']) if success: xbmc.sleep(100) if xbmcUtils.getCurrentWindowXmlFile() == 'DialogAddonSettings.xml': # workaround to update settings dialog common.setSetting('', '') except Exception, e: common.showError('Error running SportsDevil') common.log('Error running SportsDevil. Reason:' + str(e))
def _parseParameters(self): mode = int(self.addon.queries['mode']) queryString = self.addon.queries['item'] item = ListItem.create() item.infos = self.addon.parse_query(queryString, {}) return [mode, item]