def loadFromCache(murl, channel, cacheFilePath): channels = jsonutil.readJson(cacheFilePath)['channels'] channelData = channels[channel] tvShows = channelData['currentTVShows'] for tvShow in tvShows: main.addTVInfo(tvShow['name'], tvShow['url'], constants.DESIRULEZ_LISTEPISODES, tvShow['iconimage'], tvShow['name'], '') if not re.search('past', murl, re.I): main.addTVInfo('[COLOR red]' + channel + ' Past Shows[/COLOR]', channelData['pastTVShowURL'], constants.DESIRULEZ_LISTSHOWS, '', 'Past Shows', '')
def LISTEPISODES(tvshowname, url): link = main.OPENURL(url) link = link.decode("iso-8859-1").encode("utf-8") result = common.parseDOM(link, "h3", attrs={"class": "title threadtitle_unread"}) result += common.parseDOM(link, "h3", attrs={"class": "threadtitle"}) dialogWait = xbmcgui.DialogProgress() ret = dialogWait.create("Please wait until [" + tvshowname + "] Episodes are cached.") totalLinks = len(result) loadedLinks = 0 remaining_display = "Episodes loaded :: [B]" + str(loadedLinks) + " / " + str(totalLinks) + "[/B]." dialogWait.update(0, "[B]Will load instantly from now on[/B]", remaining_display) xbmc.executebuiltin("XBMC.Dialog.Close(busydialog,true)") for item in result: name = common.parseDOM(item, "a", attrs={"class": "title"}) name += common.parseDOM(item, "a", attrs={"class": "title threadtitle_unread"}) if name: name = name[0] url = common.parseDOM(item, "a", ret="href") if url: url = url[0] if "Online" not in name: continue name = name.replace(tvshowname, "").replace("Watch Online", "").replace("Video", "") name = main.removeNonASCII(name) main.addTVInfo(name, MainUrl + url, constants.DESIRULEZ_VIDEOLINKS, "", tvshowname, "") loadedLinks = loadedLinks + 1 percent = (loadedLinks * 100) / totalLinks remaining_display = "Episodes loaded :: [B]" + str(loadedLinks) + " / " + str(totalLinks) + "[/B]." dialogWait.update(percent, "[B]Will load instantly from now on[/B]", remaining_display) if dialogWait.iscanceled(): return False result = common.parseDOM(link, "div", attrs={"class": "threadpagenav"}) if result: result = result[0] result = common.parseDOM(result, "span") for item in result: name = common.parseDOM(item, "a") if name: name = name[0] url = common.parseDOM(item, "a", ret="href") if url: url = url[0] if not re.search("javascript", url, re.I): main.addTVInfo("-> Page " + str(name), MainUrl + url, constants.DESIRULEZ_LISTEPISODES, "", tvshowname, "") dialogWait.close() del dialogWait xbmcplugin.setContent(int(sys.argv[1]), "TV Shows") main.setEpisodeView()
def loadFromCache(murl, channel, cacheFilePath): channels = jsonutil.readJson(cacheFilePath)["channels"] channelData = channels[channel] tvShows = channelData["currentTVShows"] for tvShow in tvShows: main.addTVInfo( tvShow["name"], tvShow["url"], constants.DESIRULEZ_LISTEPISODES, tvShow["iconimage"], tvShow["name"], "" ) if not re.search("past", murl, re.I): main.addTVInfo( "[COLOR red]" + channel + " Past Shows[/COLOR]", channelData["pastTVShowURL"], constants.DESIRULEZ_LISTSHOWS, "", "Past Shows", "", )
def LISTEPISODES(tvshowname, url): link = main.OPENURL(url) link = link.decode('iso-8859-1').encode('utf-8') result = common.parseDOM(link, "h3", attrs={"class": "title threadtitle_unread"}) result += common.parseDOM(link, "h3", attrs={"class": "threadtitle"}) dialogWait = xbmcgui.DialogProgress() ret = dialogWait.create('Please wait until [' + tvshowname + '] Episodes are cached.') totalLinks = len(result) loadedLinks = 0 remaining_display = 'Episodes loaded :: [B]' + str( loadedLinks) + ' / ' + str(totalLinks) + '[/B].' dialogWait.update(0, '[B]Will load instantly from now on[/B]', remaining_display) xbmc.executebuiltin("XBMC.Dialog.Close(busydialog,true)") for item in result: name = common.parseDOM(item, "a", attrs={"class": "title"}) name += common.parseDOM(item, "a", attrs={"class": "title threadtitle_unread"}) if name: name = name[0] url = common.parseDOM(item, "a", ret="href") if url: url = url[0] if "Online" not in name: continue name = name.replace(tvshowname, '').replace('Watch Online', '').replace('Video', '') name = main.removeNonASCII(name) main.addTVInfo(name, MainUrl + url, constants.DESIRULEZ_VIDEOLINKS, '', tvshowname, '') loadedLinks = loadedLinks + 1 percent = (loadedLinks * 100) / totalLinks remaining_display = 'Episodes loaded :: [B]' + str( loadedLinks) + ' / ' + str(totalLinks) + '[/B].' dialogWait.update(percent, '[B]Will load instantly from now on[/B]', remaining_display) if dialogWait.iscanceled(): return False result = common.parseDOM(link, "div", attrs={"class": "threadpagenav"}) if result: result = result[0] result = common.parseDOM(result, "span") for item in result: name = common.parseDOM(item, "a") if name: name = name[0] url = common.parseDOM(item, "a", ret="href") if url: url = url[0] if not re.search('javascript', url, re.I): main.addTVInfo('-> Page ' + str(name), MainUrl + url, constants.DESIRULEZ_LISTEPISODES, '', tvshowname, '') dialogWait.close() del dialogWait xbmcplugin.setContent(int(sys.argv[1]), 'TV Shows') main.setEpisodeView()