def download(self, url, destination=PACKAGE_DIR): try: dlg = DialogProgress() dlg.create('ViendoKodiStreaming - Installing external addon') destination = xbmc.translatePath(destination) + os.path.basename(url) def _report_hook(count, blocksize, totalsize): percent = int(float(count * blocksize * 100) / totalsize) dlg.update(percent, url, destination) fp, _ = urllib.urlretrieve(url, destination, _report_hook) return fp except: print_exc() dlg.close() return ""
def doUpdates(typeName, updates): count = len(updates) head = "SportsDevil Updates - %s" % typeName msg = common.translate(30277) if count == 1: msg = common.translate(30276) question = ("%s %s: " % (count, msg)) + ', '.join( map(lambda u: u.split('/')[-1], updates.keys())) + '\n' question += common.translate(30278) updates = updates.values() countFailed = 0 dlg = DialogQuestion() dlg.head = head if dlg.ask(question): dlg = DialogProgress() firstline = common.translate(30279) dlg.create(head, firstline, " ") for i in range(0, count): update = updates[i] percent = int((i + 1.0) * 100 / count) dlg.update(percent, firstline, update.name) if not update.do(): countFailed += 1 msg = " " if countFailed > 0: msg = "%s %s" % (countFailed, common.translate(30280)) dlg.update(100, msg, " ") xbmc.sleep(500) dlg.close()
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) queries = {'mode': str(Mode.PLAY), 'url': self.addon.build_plugin_url(it.infos)} uc = self.addon.build_plugin_url(queries) 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 queueAllVideos(self, item): dia = DialogProgress() dia.create('ViendoKodiStreaming', 'Get videos...' + item['title']) dia.update(0) items = self.getVideos(item, dia) if items: for it in items: item = self.createXBMCListItem(it) queries = { 'mode': str(Mode.PLAY), 'url': self.addon.build_plugin_url(it.infos) } uc = self.addon.build_plugin_url(queries) 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 queueAllVideos(self, item): dia = DialogProgress() dia.create("Dragon Streams", "Get videos..." + item["title"]) dia.update(0) items = self.getVideos(item, dia) if items: for it in items: item = self.createXBMCListItem(it) queries = {"mode": str(Mode.PLAY), "url": self.addon.build_plugin_url(it.infos)} uc = self.addon.build_plugin_url(queries) 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 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 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))