def extractIframeValue(iframe, html, referer): file = "" if iframe.find("http:") != 0: iframe = Decoder.extract("<iframe src='", "' ", html).replace( "'", "") #take into account .lower() characters, so is not ' SRC= if iframe.find("http:") != 0: iframe = Decoder.extract(' src="', '"', html).replace('"', "") logger.debug("using iframeUrl: " + iframe) if iframe.find( "filmon." ) > -1: # i prefer this fix to change all logic, really, I boried about this provider and is a 'silly' provider logger.debug("Detected exceptional filmon.com|tv provider: " + iframe) file = Filmoncom.launchScriptLogic(iframe, referer)[0]["url"] else: html2 = Cricfreetv.getContentFromUrl(iframe, "", Cricfreetv.cookie, referer) #print html2 if html2.find("http://www3.sawlive.tv/embed/") > -1: iframe2 = Decoder.extractWithRegex( "http://www3.sawlive.tv/embed/", '"', html2).replace('"', "") logger.debug("detected a sawlive: " + iframe2 + ", from: " + iframe) #file = Live9net.getChannels(iframe2) #Live9net has the sawlive decoder, so it decodes target link file = Decoder.extractSawlive(iframe2, Cricfreetv.cookie, iframe) else: file = Cricfreetv.seekIframeScript(html2, referer, iframe) return file
def extractSeasons(html, url): items = [] #extract <a href='https://hdfull.me/serie/homeland/temporada-1'>1</a> while html.find("<a href='" + url + "/temporada-") > -1: item = {} aHtml = Decoder.extractWithRegex("<a href='" + url + "/temporada-", "</a>", html) html = html[html.find(aHtml) + len(aHtml):] item["permalink"] = Decoder.extractWithRegex( url + "/temporada-", "'", aHtml) item["permalink"] = item["permalink"][0:item["permalink"].find("'" )] item["title"] = Decoder.extract('>', '</a>', aHtml) logger.debug("found title: " + item["title"] + ", link: " + item["permalink"]) if item["title"].find( '<img class="tooltip" original-title="Temporada ') > -1: title = item["title"] item["title"] = Decoder.extract('original-title="', '"', title) item["thumbnail"] = Decoder.extract('" src="', '" />', title) logger.debug("procesed title: " + item["title"] + ", thumbnail: " + item["permalink"]) items.append(item) return items
def getChannels(page='0'): x = [] if str(page) == '0': page = Yomvies.CHANNELS_PAGE logger.debug("loading json data from: " + page) bruteJSON = Yomvies.getContentFromUrl(page, "", Yomvies.cookie, Yomvies.MAIN_URL) logger.debug("parsing string to json...") i = 0 for jsonChannel in bruteJSON.split('{"CodCadenaTv":'): if i > 0: element = {} codTv = Decoder.extract('"', '"', jsonChannel) element["title"] = Decoder.extract('"Nombre":"', '"', jsonChannel) element["thumbnail"] = Decoder.extract( '"Logo":"', '"', jsonChannel).replace("\\", "") m3u8Url = Decoder.extract( '"PuntoReproduccion":"', '"', jsonChannel).replace( "{network}", Yomvies.NETWORK).replace("\\", "") logger.debug("Appending channel: " + element["title"] + ", with url: " + m3u8Url + ", img: " + element["thumbnail"]) headers = 'Referer=' + codTv element["link"] = m3u8Url + "|" + headers x.append(element) i += 1 else: link = Yomvies.extractTargetVideo(page) element = {} element["title"] = page element["link"] = link element["finalLink"] = True x.append(element) return x
def getChannels(page): x = [] logger.debug("page: " + page) if (str(page) == "0"): html = Peliculasbiz.getContentFromUrl(Peliculasbiz.MAIN_URL) menuHtml = Decoder.extract('<ul class="clearfix">', '</ul>', html) for itemHtml in menuHtml.split("<li>"): if "href=" in itemHtml: item = {} item["title"] = Decoder.extract('">', '<', itemHtml) item["link"] = Decoder.extract('href="', '"', itemHtml) x.append(item) search = {} search["title"] = XBMCUtils.getString(11018) search["link"] = ".search" x.append(search) elif page == '.search': #display keyboard, it will wait for result keyboard = XBMCUtils.getKeyboard() keyboard.doModal() text = "" if (keyboard.isConfirmed()): text = keyboard.getText() x = Peliculasbiz.search(text) elif str(page).isdigit(): logger.debug("numeric detected...") link = Peliculasbiz.extractProviderFromLink(page) element = {} element["link"] = link x.append(element) else: x = Peliculasbiz.extractProvidersFromLink(page) return x
def extractFinalRtmpUrl(url, referer): rtmpUrl = "" html = Mamahdcom.getContentFromUrl(url, "", Mamahdcom.cookie, referer) if 'file:\'' in html: file = Decoder.extract("file:'", '\',', html) rtmp = file[0:file.rfind("/") + 1] playpath = file[file.rfind("/") + 1:] swfUrl = "" secureToken = "SECURET0KEN#yw%.?()@W!" if url.find("hdcast.org") > -1: swfUrl = "http://player.hdcast.org/jws/jwplayer.flash.swf" rtmpUrl = rtmp + " playPath=" + playpath + " swfUrl=" + swfUrl + " pageUrl=" + url + " flashver=WIN/2019,0,0,226 live=true timeout=14 token=" + secureToken logger.debug("built final rtmp link: " + rtmpUrl) elif 'allowtransparency="true" src=' in html: logger.debug("using second way...") secondIframe = Decoder.extract('allowtransparency="true" src=', ' ', html).replace("&", "&") logger.debug("found second way url: " + secondIframe + ", referer: " + url) headers = { "User-Agent": Downloader.USER_AGENT, "Accept-Language": "en-US,en;q=0.8,es-ES;q=0.5,es;q=0.3", "Upgrade-Insecure-Requests": "1", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Referer": url } html2 = Mamahdcom.getContentFromUrl(url=secondIframe, headers=headers) logger.debug("html2 is: " + html2) if 'file:"' in html2: rtmpUrl = Decoder.extract('file:"', '",', html2) logger.debug("using m3u8 for: " + rtmpUrl) return rtmpUrl
def extractLinksFromPage(page): x = [] html = Pepecine.getContentFromUrl(url=page, referer=Pepecine.MAIN_URL) linksContent = Decoder.extract( '<div id="test">', '<video id="trailer" class="video-js vjs-default-skin vjs-big-play-centered" controls preload="auto" width="100%" height="500px"> </video>', html) i = 0 for linkContent in linksContent.split( '<ul style="display : none;padding:0px;"><li style="list-style-type: none;">' ): if i > 0 and '<img data-bind="attr: {src: app.utils.getFavicon(\'' in linkContent: link = Decoder.extract( '<img data-bind="attr: {src: app.utils.getFavicon(\'', "')}", linkContent) time = Decoder.extract('<td style="width:130px;">', '</td>', linkContent) quality = Decoder.extract( '<td style="width:110px;background-color:#B1FFC5;">', '</td>', linkContent) element = {} element["link"] = link element["title"] = quality + " - " + time + " - " + link element["finalLink"] = True x.append(element) i += 1 return x
def extractElements(table): x = [] for fieldHtml in table.split('<li>'): if fieldHtml.find("<a href=") > -1: element = {} element["link"] = Decoder.extract('<a href="', '"', fieldHtml) title = Decoder.extract('alt="', '">', fieldHtml) if len(title) == 0 and len( element["link"] ) > 0: #provider probably has removed the alt content to 'destroy' scripts xD link = element["link"] title = Decoder.extract("channel/", "/", link) logger.debug("alternative title: " + title) element["title"] = Decoder.extract('/channel/', '-live', element["link"]).replace( "-", " ") element["thumbnail"] = Decoder.extract('src="', '" ', fieldHtml) logger.debug("found title: " + element["title"] + ", link: " + element["link"] + ", thumbnail: " + element["thumbnail"]) if len(element["title"]) > 0: x.append(element) return x
def extractContentFromLink(page, cookie=''): x = [] html = Elitetorrent.getContentFromUrl(url=page, cookie=cookie, referer=Elitetorrent.MAIN_URL) if '<ul class="miniboxs miniboxs-ficha">' in html: logger.debug("thumbnails parts...") content = Decoder.extract('<ul class="miniboxs miniboxs-ficha">', '</ul>', html) i = 0 for line in content.split("<li>"): if i > 0: link = Elitetorrent.MAIN_URL + Decoder.extract( '<a href="', '"', line) img = Elitetorrent.MAIN_URL + "/" + Decoder.extract( '<img src="', '"', line) title = Decoder.extract(' alt="', '"', line) element = {} element["link"] = link element["thumbnail"] = img element["title"] = title if len(title) > 0: x.append(element) i += 1 return x
def getChannels(page): x = [] if str(page) == '0': page = Live9net.MAIN_URL html = Live9net.getContentFromUrl(page, "", Live9net.cookie, "") #print html if html.find('ESPN</') > -1: #it's a list, needs decode table = Decoder.extract('ESPN</', '<div>', html) x = Live9net.extractElements(table) logger.debug("live9 channels logic done!") else: iframeUrl = Decoder.extract('src="', '"', html) logger.debug("iframe url is: " + iframeUrl) html2 = Live9net.getContentFromUrl(iframeUrl, "", Live9net.cookie, page) logger.debug("detecting sawlive links...") if html2.find('src="http://sawlive.tv/') > -1 or html2.find( 'src="http://www3.sawlive') > -1: logger.debug("Detected sawlive link!") if html2.find('src="http://sawlive.tv/') > -1: scriptSrc = Decoder.extractWithRegex( 'http://sawlive', '"></script>', html2).replace('"></script>', "") else: scriptSrc = Decoder.extractWithRegex( 'http://www3.sawlive', '"></script>', html2).replace('"></script>', "") finalRtmpUrl = Decoder.extractSawlive(scriptSrc, iframeUrl) element = {} element["link"] = finalRtmpUrl element["title"] = "Watch channel" element["permalink"] = True logger.debug("finished append element!") x.append(element) return x
def getChannels(page): x = [] logger.debug("using Ramalin...") if str(page) == '0' or "/page/" in page: figure = "2" if str(page) == '0': page = Ramalin.MAIN_URL else: figure = str( int(page[page.find("/page/") + len("/page/"):]) + 1) html = Ramalin.getContentFromUrl(page, "", Ramalin.cookie, "") table = Decoder.extract('<ul class="article-list">', '</ul>', html) x = Ramalin.extractElements(table) element = {} element["title"] = "Next" element["link"] = "http://www.ramalin.com/page/" + figure x.append(element) else: html = Ramalin.getContentFromUrl(page, "", Ramalin.cookie, Ramalin.MAIN_URL) logger.debug(html) table = Decoder.rExtract('#EXTM3U<br />"', '<!--Ad Injection:bottom-->', html[html.find("<body"):]) logger.debug("using: " + table) x = Ramalin.extractLinks(table) return x
def getChannels(page): x = [] logger.debug("using tvshowme...") if str(page) == '0': page = Tvshowme.MAIN_URL html = Tvshowme.getContentFromUrl(page, "", Tvshowme.cookie, "") table = Decoder.extract('<ul>', '</ul>', html) x = Tvshowme.extractElements(table) elif page == "search": #display keyboard, it will wait for result keyboard = XBMCUtils.getKeyboard() keyboard.doModal() text = "" if (keyboard.isConfirmed()): text = keyboard.getText() page = "http://www.tvshow.me/?s=" + urllib.quote(text) html = Tvshowme.getContentFromUrl(url=page) logger.debug(html) table = Decoder.extract('<div id="content"', '<h3 class="assistive-text">', html) logger.debug("table is: " + table) x = Tvshowme.extractLinks2(table) else: html = Tvshowme.getContentFromUrl(page, "", Tvshowme.cookie, Tvshowme.MAIN_URL) logger.debug(html) table = Decoder.extract('<div id="content"', '</article>', html) x = Tvshowme.extractLinks(table) return x
def extractIframe(html, referer): iframeUrl = '' if '<iframe frameborder="0" marginheight="0" allowfullscreen="true" marginwidth="0" height="555" src="' in html: iframeUrl = Decoder.extract( '<iframe frameborder="0" marginheight="0" allowfullscreen="true" marginwidth="0" height="555" src="', '"', html) elif '<iframe frameborder="0" marginheight="0" marginwidth="0" height="490" src="' in html: iframeUrl = Decoder.extract( '<iframe frameborder="0" marginheight="0" marginwidth="0" height="490" src="', '"', html) if "'" in iframeUrl: iframeUrl = iframeUrl[0:iframeUrl.find("'")] if "/update/" in iframeUrl: #get all urls and check if they hasn't /update/ for content in html.split(".php"): link = content[content.rfind('"') + 1:] + ".php" if "http://" in link and "/update/" not in link and "/update/" in iframeUrl: logger.debug("link has been updated from: " + iframeUrl + ", to: " + link) iframeUrl = link logger.debug("level 1, iframeUrl: " + iframeUrl + ", cookie: " + Cricfreetv.cookie) if iframeUrl != '': html = Cricfreetv.getContentFromUrl(iframeUrl, "", Cricfreetv.cookie, referer) file = Cricfreetv.seekIframeScript(html, referer, iframeUrl) item = {} item["title"] = referer item["link"] = file return item
def extractElements(table): x = [] for fieldHtml in table.split(' href="'): if fieldHtml.find("<li>") > -1 or fieldHtml.find( ' <img src="') > -1: element = {} element["link"] = Zoptvcom.MAIN_URL + fieldHtml[0:fieldHtml. find('"')] if fieldHtml.find(' <img src="') > -1: element["title"] = Decoder.extract("<span>", "</span>", fieldHtml) element["thumbnail"] = Zoptvcom.MAIN_URL + Decoder.extract( '<img src="', '"> <span>', fieldHtml) logger.debug("found thumbnail: " + element["thumbnail"]) else: element["title"] = fieldHtml[fieldHtml.find('">') + 2:].replace( "<li>", "").replace( "</li>", "").replace( "</a>", "").replace( "<a", "" ).rstrip( os.linesep) logger.debug("found title: " + element["title"] + ", link: " + element["link"]) if len(element["title"]) > 0: x.append(element) return x
def extractProvidersFromLink(page): x = [] html = MejorTorrent.getContentFromUrl(url=page,referer=MejorTorrent.MAIN_URL) logger.debug("html is: "+html) if '<b>Selecciona los que quieres descargar</b>' in html: tableHtml = Decoder.extract('<b>Selecciona los que quieres descargar</b>','<b>Marcar/Desmarcar Todos</b>',html) logger.debug("TABLE HTML IS: "+tableHtml) if "<input type='hidden' name='tabla' value='" in html: table = Decoder.extract("<input type='hidden' name='tabla' value='", "'", html) elif "name='tabla' value='" in html: table = Decoder.extract("name='tabla' value='", "'", html) logger.debug("table is: "+table) i=0 for htmlLine in tableHtml.split("<td bgcolor='#C8DAC8' style='border-bottom:1px solid black;'>"): if i>0: if '<a ' in htmlLine: text = Decoder.extract("'>","<",htmlLine) else: text = htmlLine[:htmlLine.find("<")] logger.debug("target line html is: "+text) #text = Decoder.removeHTML(text) id = Decoder.extract(" value='","'",htmlLine) link = "http://www.mejortorrent.com/secciones.php?sec=descargas&ap=contar&tabla=%s&id=%s&link_bajar=1" % (table,id) element = {} element["title"] = text element["link"] = link element["finalLink"] = True logger.debug("appending: "+text+", link: "+link) x.append(element) i+=1 else: #download x = MejorTorrent.extractDownloadItem(html) return x
def getSections(): x = [] html = RTVEAlaCarta.getContentFromUrl(url=RTVEAlaCarta.A_LA_CARTA) content = Decoder.extract('<div class="wrapper-canales mark">','</ul></div>',html) for line in content.split('"><a '): if 'href=' in line: link = Decoder.extract('href="','"',line) if '/alacarta' in link: link = RTVEAlaCarta.MAIN_URL+link title = Decoder.extract('href="','</a',line) title = title.replace('<strong>','') title = title.replace('</strong>','') title = title[title.rfind(">")+1:] logger.debug("Appending '"+title+"', '"+link+"'") element = {} element["title"] = title sublink = '' if RTVEAlaCarta.A_LA_CARTA in link: sublink = link[len(RTVEAlaCarta.A_LA_CARTA):] logger.debug("sublink 1 is: "+sublink) sublink = Decoder.extract('/',"/",sublink) logger.debug("sublink 2 is: " + sublink) link=RTVEAlaCarta.A_LA_CARTA+"programas/"+sublink+"/todos/1/" logger.debug("new link is: "+link+", from: "+sublink) element["link"] = link if len(sublink)>0: x.append(element) return x
def extractIframeChannel(contentHtml, referer): logger.debug("proccessing level 2, cookie: " + Cineestrenostv.cookie) iframeUrl2 = "dummy url" if contentHtml.find( '<iframe scrolling="no" marginwidth="0" marginheight="0" frameborder="0" width="653" height="403" src="' ) > -1: iframeUrl2 = Decoder.extract( '<iframe scrolling="no" marginwidth="0" marginheight="0" frameborder="0" width="653" height="403" src="', '"></iframe>', contentHtml ).replace( "ñ", "%C3%B1" ) #same case with different width and height: TODO: change to regex!! elif contentHtml.find( '<iframe scrolling="no" marginwidth="0" marginheight="0" frameborder="0" width="650" height="400" src="' ) > -1: iframeUrl2 = Decoder.extract( '<iframe scrolling="no" marginwidth="0" marginheight="0" frameborder="0" width="650" height="400" src="', '"></iframe>', contentHtml).replace( "ñ", "%C3%B1") #normal cases, standar width and height elif '<iframe scrolling="no" marginwidth="0" marginheight="0" frameborder="0" allowfullscreen width="653" height="403" src="' in contentHtml: iframeUrl2 = Decoder.extract( '<iframe scrolling="no" marginwidth="0" marginheight="0" frameborder="0" allowfullscreen width="653" height="403" src="', '"></iframe>', contentHtml).replace( "ñ", "%C3%B1") # normal cases, standar width and height if iframeUrl2 != "dummy url": html3 = Cineestrenostv.getContentFromUrl(iframeUrl2, "", "", referer) return Cineestrenostv.mainLogicExtractIframeChannel( html3, iframeUrl2) else: return Cineestrenostv.mainLogicExtractIframeChannel( contentHtml, referer)
def decodeY2Mate(link): url = "http://y2mate.com/analyze/ajax" data = "url=" + urllib.quote(link) + "&ajax=1" headers = {} headers["Host"] = "y2mate.com" headers["User-Agent"] = Downloader.USER_AGENT headers["Accept"] = "*/*" headers["Accept-Language"] = "en-US,en;q=0.8,es-ES;q=0.5,es;q=0.3" headers["Referer"] = "http://y2mate.com" headers["Connection"] = "keep-alive" headers["Content-Type"] = "application/x-www-form-urlencoded" headers["charset"] = "UTF-8" headers["X-Requested-With"] = "XMLHttpRequest" headers["DNT"] = "1" Downloader.TIMEOUT = 30 html = Downloader.getContentFromUrl(url=url, data=data, headers=headers) logger.debug("html is: " + html) selectedLink = Decoder.extract('data-vlink="', '"', html) logger.debug("decoded link is: " + selectedLink) #now try to get better quality try: logger.debug("trying better quality...") secondLink = Decoder.extract('<th>Download</th>', "<small>m-HD</small>", html) logger.debug("link is inside: " + secondLink) secondLink = Decoder.extract('data-vlink="', '"', secondLink) logger.debug("new target link is: " + secondLink) selectedLink = secondLink except: logger.debug( "could not obtain better quality, using default link: " + link) return selectedLink
def searchLists(param): url = "https://www.googleapis.com/customsearch/v1element?" \ "key=AIzaSyCVAXiUzRYsML1Pv6RwSG1gunmMikTzQqY" \ "&rsz=filtered_cse" \ "&num=20" \ "&hl=en" \ "&prettyPrint=false" \ "&source=gcsc" \ "&gss=.com" \ "&sig=8bdfc79787aa2b2b1ac464140255872c" \ "&cx=013305635491195529773:0ufpuq-fpt0" url += "&q="+param+"&sort=date&googlehost=www.google.com&callback=google.search.Search.apiary846" results = Pastebin.getContentFromUrl(url) x = [] jsonString = Decoder.extract(',"results":',']});',results) logger.debug(jsonString) for jsonResult in results.split('{"GsearchResultClass"'): element = {} link = Decoder.extract('"url":"','","',jsonResult) if "pastebin.com" in link and '/raw/' not in link: link = link[:link.rfind('/')]+"/raw/"+link[link.rfind('/')+1:] title = Decoder.extract('"title":"','","titleNoFormatting"',jsonResult) if "http" in link: logger.debug("appending result: "+title+", url: "+link) element["title"] = title element["link"] = link x.append(element) return x
def getChannels(): x = [] url = StreamingSports365.HTML_CHANNELS logger.debug("html channels url is: " + url) bruteResult = StreamingSports365.getContentFromUrl( url=url, referer=StreamingSports365.MAIN_URL) logger.debug("html is: " + bruteResult) htmlResults = Decoder.extract( '<table class="uk-table uk-table-hover uk-table-striped">', "</table>", bruteResult) for item in htmlResults.split("<tr>"): if "<td>acestream://" in item: name = "" if '"><strong>' in item: name = Decoder.extract('"><strong>', '</strong>', item) else: name = Decoder.extract('html">', '<', item) link = "acestream://" + Decoder.extract( '<td>acestream://', '</td>', item) logger.info("Added: " + name + ", url: " + link) element = {} element["title"] = name element["link"] = link x.append(element) return x
def getChannels(page): x = [] start = False if str(page) == '0': start = True page = Sports4u.MAIN_URL html = Sports4u.getContentFromUrl(page, "", Sports4u.cookie, "") #print html if start and 'live-channels-list">' in html: #it's a list, needs decode table = Decoder.extract('live-channels-list">', '</li><br>', html) logger.debug("using menu table: " + table) x = Sports4u.extractElements(table) logger.debug("channel list logic done!") else: iframeUrl = Decoder.extract( '<iframe frameborder="0" marginheight="0" marginwidth="0" height="490" ', '"></iframe>', html) iframeUrl = Decoder.extract('src="', '"', iframeUrl) logger.debug("iframeUrl is: " + iframeUrl) html2 = Sports4u.getContentFromUrl(url=iframeUrl, referer=page) logger.debug("html is: " + html2) file = Cricfreetv.seekIframeScript(html2, page, iframeUrl) logger.debug("Finished file logic, obtained file: " + file) element = {} element["link"] = file element["title"] = "Watch streaming" x.append(element) return x
def extractContentFromLink(page): x = [] html = MejorTorrent.getContentFromUrl(url=page,referer=MejorTorrent.MAIN_URL) if "<td height='20' width='440' colspan='2'>" in html: if "' class='paginar'> << Anterior </a>" in html: prevLink = MejorTorrent.MAIN_URL+Decoder.rExtract("<a href='/","' class='paginar'> << Anterior </a>",html) element = {} element["link"] = prevLink element["title"] = "Anterior" x.append(element) content = Decoder.extract("<td height='20' width='440' colspan='2'>","<center><span style='font-size:15px; font-family:arial;'><b>Páginas:</b>",html) i = 0 for line in content.split("<td><div align='justify'><center>"): if i>0: img = (MejorTorrent.MAIN_URL+Decoder.extract('<img src="', '"', line)).replace(".com//",".com/") link = (MejorTorrent.MAIN_URL + Decoder.extract('<a href="', '"', line)).replace(".com//",".com/") logger.debug("link is: "+link) element = {} element["link"] = link element["thumbnail"] = img.replace(" ","%20") element["title"] = img[img.rfind("/")+1:img.find(".jpg")] #if len(title)>0: x.append(element) i+=1 if "' class='paginar'> Siguiente >> </a>" in html: nextLink = MejorTorrent.MAIN_URL+Decoder.rExtract("<a href='/","' class='paginar'> Siguiente >> </a>",html) element = {} element["link"] = nextLink element["title"] = "Siguiente" x.append(element) else: #download link x = MejorTorrent.extractDownloadItem(html) return x
def getWidthAndHeightParams(html): subUrl = "" if html.find("; v_width=") > -1: width = Decoder.extract("; v_width=", ";", html) height = Decoder.extract("; v_height=", ";", html) subUrl = "&vw=" + width + "&vh=" + height logger.debug("width-height subUrl now is: " + subUrl) return subUrl
def getChannels(page): x = [] if str(page) == '0': try: page=Arenavisionin.MAIN_URL+"guide" html = Arenavisionin.getContentFromUrl(page,"",'beget=begetok; has_js=1',Arenavisionin.MAIN_URL) #guideUrl = Decoder.rExtract('"','">EVENTS GUIDE</a></li>',html) #html = Arenavisionin.getContentFromUrl(page+guideUrl,"",'beget=begetok; has_js=1',Arenavisionin.MAIN_URL) except: page = Arenavisionin.MAIN_URL_RU+"guide" html = Arenavisionin.getContentFromUrl(page, "", 'beget=begetok; has_js=1', Arenavisionin.MAIN_URL_RU) #guideUrl = Decoder.rExtract('"', '">EVENTS GUIDE</a></li>', html) #html = Arenavisionin.getContentFromUrl(page+guideUrl, "", 'beget=begetok; has_js=1', Arenavisionin.MAIN_URL_RU) pass html = Decoder.extract('<table align="center" cellspacing="1" class="auto-style1" style="width: 100%; float: left"><tr><th class="auto-style4" style="width: 190px; height: 39px"><strong>DAY</strong></th>',"</tr></table></div></div></div>",html) x = Arenavisionin.extractElements(html) else: if page.find("-")>-1: #put a context menu and the user should decice, if not use the first one (default action) dialog = XBMCUtils.getDialog() cmenu = [] for contextItem in page.split("-"): #if len(contextItem)>0: cmenu.append(contextItem) result = dialog.select(XBMCUtils.getString(11016), cmenu) #choose logger.debug("result was: "+str(result)) if result == None or result==-1: target = page[:page.find("-")] page = target else: logger.debug("has choosed "+str(result)+": "+cmenu[result]) page = (cmenu[result]) html = Arenavisionin.getContentFromUrl(Arenavisionin.MAIN_URL, "", 'beget=begetok; has_js=1', Arenavisionin.MAIN_URL) link = Decoder.rExtract("<a href=\"","title=\"\">ArenaVision "+page+"</a>",html) logger.debug("html is: "+html) link = link[:link.find('"')] logger.debug("provisional link is: "+link) else: if "av" not in page: page = "av"+page link = "http://www.arenavision.us/"+page try: html = Arenavisionin.getContentFromUrl(link,"",'beget=begetok; has_js=1',Arenavisionin.MAIN_URL) logger.debug("second html is: "+html) except: logger.error("sonething goes wrong with link: "+link) pass if html.find("acestream://")>-1: link2 = Decoder.extractWithRegex("acestream://",'"',html).replace('"',"") else: link2 = Decoder.extractWithRegex("sop://",'"',html).replace('"',"") element = {} element["title"] = page element["link"] = link2 x.append(element) return x
def getChannels(page): x = [] if str(page) == "0": html = Cricfreetv.getContentFromUrl(Cricfreetv.MAIN_URL) logger.debug("total html is: " + html) element = {} element["link"] = '1' element["title"] = 'Display by event' x.append(element) if html.find("<div id='cssmenu'>") > -1: cssMenu = Decoder.extract("<div id='cssmenu'>", '</ul>', html) logger.debug("html menu: " + cssMenu) for htmlElement in cssMenu.split('<li'): if htmlElement.find('<a href="') > -1: element = {} link = Decoder.extract('<a href="', '" target="_parent"', htmlElement) if htmlElement.find( '<span class="channels-icon ') > -1: title = Decoder.extract( '<span class="channels-icon ', '"></span>', htmlElement) elif htmlElement.find('<span class="chclass3">') > -1: title = Decoder.extract('<span class="chclass3">', '</span>', htmlElement) element["title"] = title element["link"] = link logger.debug("found element: " + title + ", url: " + link) if title != 'ch1toch20' and title != 'No Stream': x.append(element) elif str(page) == '1': #event html = Cricfreetv.getContentFromUrl(Cricfreetv.MAIN_URL) html = Decoder.extract('<div class="panel-body">', "</section>", html) logger.debug("using html for menu: " + html) for htmlElement in html.split('<span class="sport-icon'): if htmlElement.find('<td>') > -1: name = Decoder.extract('<td>', "</td>", htmlElement).replace("<br>", " - ") event = Decoder.extract(' target="_blank">', '</a></td>', htmlElement) time = Decoder.extract('px">', "</td>", htmlElement) href = Decoder.extract(' href="', '"', htmlElement) element = {} element["title"] = time + " - " + name + " - " + event element["link"] = href logger.debug("time: " + time) logger.debug("name: " + name) logger.debug("event: " + event) if "http" in href: logger.debug("appending: " + element["title"] + ", link: " + href) x.append(element) else: html = Cricfreetv.getContentFromUrl(page) logger.debug(html) x.append(Cricfreetv.extractIframe(html, page)) return x
def getWidthAndHeightParams(html): subUrl = "" if html.find("; width='") > -1: width = Decoder.extract("; width='", "'", html) height = Decoder.extract("; height='", "'", html) subUrl = "&width=" + width + "&height=" + height elif html.find("; v_height=") > -1: width = Decoder.extract("; v_width=", ";", html) height = Decoder.extract("; v_height=", ";", html) subUrl = "&vw=" + width + "&vh=" + height return subUrl
def extractDownloadItem(html): x = [] refinedHtml = Decoder.extract('<b>Torrent:</b>', "</a>", html) link = "http://www.mejortorrent.com/secciones.php" + Decoder.extract("<a href='secciones.php", "'", refinedHtml) text = Decoder.extract("<title>", "</title>", html).replace("Torrent Descargar Bajar Gratis", "") element = {} element["title"] = text element["link"] = link element["finalLink"] = True logger.debug("appending: "+text+", link: "+link) x.append(element) return x
def extractElement(htmlElement): element = {} title = Decoder.extract(" title=\"", "\"", htmlElement).replace("Descargar ", "") link = Decoder.extract("href=\"", "\"", htmlElement) img = Decoder.extract("<img src=\"", "\"", htmlElement) element["title"] = title element["link"] = link element["thumbnail"] = img if '/series-hd/' not in link and '/series/' not in link: # have to search again, sorry element["finalLink"] = True return element
def extractElements(table): x = [] for fieldHtml in table.split('<li>'): if fieldHtml.find("<a href=")>-1: element = {} element["link"] = Decoder.extract('<a href="','"',fieldHtml) element["title"] = Decoder.extract('alt="','">',fieldHtml) element["thumbnail"] = Decoder.extract('src="','" ',fieldHtml) logger.debug("found title: "+element["title"]+", link: "+element["link"]+", thumbnail: "+element["thumbnail"]) if len(element["title"])>0: x.append(element) return x
def extractItems(html): x = [] jsonList = json.loads(html) for jsonElement in jsonList: element = {} title = Decoder.extract("target='_self'>", "<", jsonElement) link = Decoder.extract("href='", "'", jsonElement) img = Decoder.extract("<img src='", "'", jsonElement) element["title"] = title element["link"] = link element["thumbnail"] = img x.append(element) return x
def extractElements(table): x = [] for value in table.split('\n'): if value.find("acestream://") > -1: element = {} element["title"] = unicode(Decoder.extract("// ", '(', value), errors='replace') element["link"] = Decoder.extractWithRegex( "acestream:", '\"', value).replace('"', "") logger.debug("append: " + element["title"] + ", link: " + element["link"]) x.append(element) return x