def mainLogicExtractIframeChannel(html3, iframeUrl2): element = {} if html3.find( '<script type="text/javascript" src="http://tv.verdirectotv.org/channel.php?file=' ) > -1: element = Cineestrenostv.extractScriptVerdirectotv( html3, iframeUrl2) elif html3.find( '<script type="text/javascript" src="http://www.sunhd.info/channelsa.php?file=' ) > -1: element = Cineestrenostv.extractScriptSunhdinfo(html3, iframeUrl2) elif html3.find( '<script type="text/javascript" src="http://www.ponlatv.com/channel.php?file=' ) > -1: element = Cineestrenostv.extractScriptPonlatv(html3, iframeUrl2) elif html3.find("http://vercanalestv.com/tv/") > -1: #vercanalestv iframeUrl = Decoder.extractWithRegex("http://vercanalestv.com/tv/", '"', html3) logger.debug("obtained iframeUrl: " + iframeUrl) html2 = Cineestrenostv.getContentFromUrl( iframeUrl[0:len(iframeUrl) - 1], "", Cineestrenostv.cookie, "") if html2.find( '<iframe scrolling="no" marginwidth="0" marginheight="0" frameborder="0" width="650" height="400" src="' ) > -1: element = Cineestrenostv.extractIframeChannel(html2, iframeUrl) else: logger.error("Something unexpected happened with url: " + iframeUrl) #print "ERROR: "+html2 elif html3.find( "http://www.dinostream.pw/channel.php?file=" ) > -1: #dinostream.pw has an iframe inside, so get iframe content and proccess it logger.debug("processing dinostream channel...") element = Cineestrenostv.extractScriptDinostream(html3, iframeUrl2) elif html3.find( "<script type='text/javascript' src='http://www.embeducaster.com/static/scripts/ucaster.js'></script>" ) > -1: #ucaster cases if html3.find( "<script type='text/javascript'> width=650, height=400, channel='" ) > -1: channel = Decoder.extract( "<script type='text/javascript'> width=650, height=400, channel='", "'", html3) else: channel = Decoder.extract( "<script type='text/javascript'> width=", "',", html3) channel = channel[channel.find("channel='") + len("channel='"):] logger.debug("ucaster channel: " + channel) if html3.find( '<script type="text/javascript" src="http://tv.verdirectotv.org/channel.php?file=' ) > -1: element = Cineestrenostv.extractScriptVerdirectotv( html3, iframeUrl2) else: ucasterUrl = 'http://www.embeducaster.com/embedplayer/' + channel + '/1/620/430' html4 = Cineestrenostv.getContentFromUrl( ucasterUrl, "", Cineestrenostv.cookie, iframeUrl2) playerUrl = Decoder.decodeUcaster(html4, iframeUrl2) logger.debug("lifeflash - player url is: " + playerUrl) element["title"] = "Watch streaming" element["permalink"] = True element["link"] = playerUrl logger.debug(channel + ", " + element["link"]) elif html3.find( 'http://www.mipsplayer.com/content/scripts/mipsEmbed.js' ) > -1: #before verdirectotv.com, if not is always called channel = Decoder.extract("channel='", "'", html3) mipsUrl = 'http://www.mipsplayer.com/embedplayer/' + channel + '/1/650/400' logger.debug("mips url is: " + mipsUrl) html4 = Cineestrenostv.getContentFromUrl(mipsUrl, "", Cineestrenostv.cookie, iframeUrl2) playerUrl = Decoder.decodeMipsplayer(html4, iframeUrl2) logger.debug("mipsplayer - player url is: " + playerUrl) element["title"] = "Watch streaming" element["permalink"] = True element["link"] = playerUrl elif 'http://09stream.com/canal' in html3: logger.debug("using 09stream logic...") scriptUrl = Decoder.extractWithRegex("http://09stream.com/canal", '"', html3).replace('"', "") html4 = Cineestrenostv.getContentFromUrl( url=scriptUrl, cookie=Cineestrenostv.cookie, referer=iframeUrl2) element = Cineestrenostv.extractIframeChannel(html4, scriptUrl) elif html3.find("http://verdirectotv.com/tv") > -1: logger.debug("proccessing level 3, cookie: " + Cineestrenostv.cookie) scriptUrl = Decoder.extractWithRegex("http://verdirectotv.com/tv", '"', html3) scriptUrl = scriptUrl[0:len(scriptUrl) - 1] html4 = Cineestrenostv.getContentFromUrl(scriptUrl, "", Cineestrenostv.cookie, iframeUrl2) #logger.debug("verdirectotv html: "+html4) if html4.find("http://www.dinostream.pw/channel.php?file=") > -1: scriptUrl2 = Decoder.extractWithRegex( "http://www.dinostream.pw/channel.php?file=", '&autostart=true"', html4) scriptUrl2 = scriptUrl2[0:len(scriptUrl2) - 1] element = Decoder.extractDinostreamPart(scriptUrl2, scriptUrl) elif html4.find( "<script type='text/javascript' src='http://www.embeducaster.com/static/scripts/ucaster.js'></script>" ) > -1: #ucaster cases channel = Decoder.extract( "<script type='text/javascript'> width=650, height=400, channel='", "'", html4) if html4.find( '<script type="text/javascript" src="http://tv.verdirectotv.org/channel.php?file=' ) > -1: element = Cineestrenostv.extractScriptVerdirectotv( html4, scriptUrl) else: ucasterUrl = 'http://www.embeducaster.com/embedplayer/' + channel + '/1/620/430' html4 = Cineestrenostv.getContentFromUrl( ucasterUrl, "", Cineestrenostv.cookie, scriptUrl) playerUrl = Decoder.decodeUcaster(html4, iframeUrl2) logger.debug("lifeflash - player url is: " + playerUrl) element["title"] = "Watch streaming" element["permalink"] = True element["link"] = playerUrl logger.debug(channel + ", " + element["link"]) elif html4.find( '<iframe scrolling="no" marginwidth="0" marginheight="0" frameborder="0" width="650" height="400" src="' ) > -1: #retry the same logic element = Cineestrenostv.extractIframeChannel( html4, iframeUrl2) elif html4.find( '<script type="text/javascript" src="http://tv.verdirectotv.org/channel.php?file=' ) > -1: element = Cineestrenostv.extractScriptVerdirectotv( html4, scriptUrl) elif html4.find( "<script type='text/javascript' src='http://www.liveflashplayer.net/resources/scripts/" ) > -1: channel = Decoder.extract("channel='", "'", html4) mipsUrl = 'http://www.liveflashplayer.net/embedplayer/' + channel + '/1/620/430' html4 = Cineestrenostv.getContentFromUrl( mipsUrl, "", Cineestrenostv.cookie, scriptUrl) playerUrl = Decoder.decodeLiveFlash(html4, iframeUrl2) logger.debug("lifeflash - player url is: " + playerUrl) element["title"] = "Watch streaming" element["permalink"] = True element["link"] = playerUrl elif html4.find( 'http://www.mipsplayer.com/content/scripts/mipsEmbed.js' ) > -1: channel = Decoder.extract("channel='", "'", html4) mipsUrl = 'http://www.mipsplayer.com/embedplayer/' + channel + '/1/650/400' html4 = Cineestrenostv.getContentFromUrl( mipsUrl, "", Cineestrenostv.cookie, scriptUrl) playerUrl = Decoder.decodeMipsplayer(html4, iframeUrl2) logger.debug("mipsplayer - player url is: " + playerUrl) element["title"] = "Watch streaming" element["permalink"] = True element["link"] = playerUrl elif scriptUrl != iframeUrl2: logger.debug("trying new loop with: " + scriptUrl + ", " + iframeUrl2) element = Cineestrenostv.mainLogicExtractIframeChannel( html4, scriptUrl) else: logger.debug("big data: " + html4) elif html3.find( '<iframe scrolling="no" marginwidth="0" marginheight="0" frameborder="0" width="653" height="403" src="' ) > -1: logger.debug("extracting iframe channel with referer: " + iframeUrl2) element = Cineestrenostv.extractIframeChannel(html3, iframeUrl2) elif html3.find('file: "') > -1 and html3.find( '.m3u8') > -1: #direct link, not needed any logic link = Decoder.extract('file: "', '",', html3) link = link + "|Referer=" + iframeUrl2 logger.debug("detected direct link: " + link) element["title"] = "Watching direct link" element["permalink"] = True element["link"] = link elif html3.find("http://telefivegb.com/") > -1 or html3.find( "http://verlatelegratis.net") > -1: element = Cineestrenostv.extractNewIframeChannel(html3, iframeUrl2) elif html3.find("http://tvpor-internet.com/") > -1 or html3.find( "http://www.malosolandia.com/") > -1: logger.debug("inside here!..") newUrl = "dummy url" #dummy if html3.find("http://tvpor-internet.com/") > -1: logger.debug("inside here1!..") newUrl = Decoder.extractWithRegex('http://tvpor-internet.com/', '"', html3).replace('"', "") elif html3.find("http://www.malosolandia.com/") > -1: logger.debug("inside here2!..") logger.debug("using malosolandia") newUrl = Decoder.extractWithRegex( 'http://www.malosolandia.com/', '.html', html3) else: logger.debug("nothing done!") if newUrl != "dummy url": logger.debug("html is: " + html3) logger.debug("using new url: " + newUrl) html4 = Cineestrenostv.getContentFromUrl( newUrl, "", Cineestrenostv.cookie, iframeUrl2) logger.debug("redirecting using: " + newUrl + ", html: " + html4) element = Cineestrenostv.mainLogicExtractIframeChannel( html4, newUrl) else: logger.debug(html3) elif html3.find("http://www.rtve.es/directo/la-2/") > -1: element["title"] = "La 2" element["permalink"] = True element[ "link"] = "http://hlslive.rtve.es/LA2_LV3_IPH/LA2_LV3_IPH.m3u8" elif html3.find("http://www.rtve.es/directo/canal-24h/") > -1: element["title"] = "24H" element["permalink"] = True element[ "link"] = "http://hlslive.rtve.es/24H_LV3_IPH/24H_LV3_IPH.m3u8" elif html3.find("http://leton.tv/player.php") > -1: logger.debug("detected leton link...") letonUrl = Decoder.extractWithRegex('http://leton.tv/player.php', '"', html3).replace('"', "") letonHtml = Cineestrenostv.getContentFromUrl( letonUrl, "", Cineestrenostv.cookie, iframeUrl2) #print letonHtml playerUrl = Decoder.decodeLetonTv(letonHtml, letonUrl) element["title"] = "Watch streaming" element["permalink"] = True element["link"] = playerUrl elif html3.find( '<iframe scrolling="no" marginwidth="0" marginheight="0" frameborder="0" width="650" height="400" src="' ) > -1: logger.debug( "detected iframe with embed page, doing a new loop again...") iframeUrl3 = Decoder.extract( '<iframe scrolling="no" marginwidth="0" marginheight="0" frameborder="0" width="650" height="400" src="', '"></iframe>', html3) #normal cases, standar width and height if iframeUrl3 != iframeUrl2: html4 = Cineestrenostv.getContentFromUrl( iframeUrl3, "", "", iframeUrl2) return Cineestrenostv.mainLogicExtractIframeChannel( html4, iframeUrl3) else: logger.debug("infinite loop detected, stopped!") elif '<iframe scrolling="no" marginwidth="0" marginheight="0" frameborder="0" allowfullscreen width="650" height="400" src="http://cinestrenos' in html3: logger.debug("other loop inside...") iframeUrl3 = Decoder.extract( '<iframe scrolling="no" marginwidth="0" marginheight="0" frameborder="0" allowfullscreen width="650" height="400" src="', '"', html3) html4 = Cineestrenostv.getContentFromUrl(url=iframeUrl3, referer=iframeUrl2) logger.debug("using new iframe url: " + iframeUrl3) element = Cineestrenostv.extractIframeChannel(html4, iframeUrl3) else: #tries to decode the bussinesslink, TODO, review this part #print html3 playerUrl = Decoder.decodeBussinessApp(html3, iframeUrl2) logger.debug("bussinessapp - player url is: " + playerUrl) element["title"] = "Watch streaming" element["permalink"] = True element["link"] = playerUrl return element
def getChannels(page): x = [] logger.debug("page is: "+page) if str(page) == '0': page=Zonasportsme.MAIN_URL else: logger.debug("decoding page: "+page) page = base64.b64decode(page) logger.debug("decoded page: "+page) logger.debug("launching web petition to page: "+page) html = Zonasportsme.getContentFromUrl(page,"",Zonasportsme.cookie,Zonasportsme.MAIN_URL) if page==Zonasportsme.MAIN_URL: logger.debug("browsing main menu...") menu = Decoder.extract('<ul class="nav" id="main-menu">',"</li></ul></li></ul>",html) x = Zonasportsme.extractElements(menu) else: url = "" #decoder part if 'http://www.ustream.tv/' in html: uStreamUrl = Decoder.extractWithRegex('http://www.ustream.','"',html) url = Decoder.getUstreamLink(uStreamUrl,page) elif 'castamp.com/embed.js' in html: channel = Decoder.extract('channel="','"',html) url = Decoder.getCastcampLink(channel,page) elif 'adca.st/broadcast/player.js' in html: if "<script type='text/javascript'>id='" in html: id2 = Decoder.extract("<script type='text/javascript'>id='", "';", html) logger.debug("using id = " + id2) url4 = "http://bro.adca.st/stream.php?id=" + id2 + "&width=700&height=450&stretching=uniform" html4 = Zonasportsme.getContentFromUrl(url4, "", Zonasportsme.cookie, page) logger.debug("html4: " + html4) curl = Decoder.rExtract('= "', '=";', html4)+'=' fn = Decoder.rExtract('"','.php";',html4) token = Zonasportsme.getContentFromUrl('http://bro.adca.st/'+fn+'.php', "",Zonasportsme.cookie, url4, True) logger.debug("token: " + token) token = Decoder.extract('":"', '"', token) file = base64.decodestring(curl) + token + "|" + Downloader.getHeaders('http://cdn.allofme.site/jw/jwplayer.flash.swf') logger.debug("final url is: " + file) url = file elif 'zony.tv/static/scripts/zony.js' in html: channel = Decoder.extract("channel='","'",html) url = 'http://www.zony.tv/embedplayer/'+channel+'/1/700/400/' html2 = Zonasportsme.getContentFromUrl(url=url,referer=page) logger.debug("html2 is: "+html2) #newParam = Decoder.extract("so.addParam('FlashVars', '", "'", html2) # brute params, needs a sort newParam = Decoder.extractParams(html2) rtmp = "rtmp://146.185.16.62/stream playPath="+newParam+" swfVfy=1 timeout=10 conn=S:OK live=true swfUrl=http://www.zony.tv/static/scripts/fplayer.swf flashver=WIN/2019,0,0,226 pageUrl="+page url = rtmp elif 'http://www.embeducaster.com/static/' in html: channel = Decoder.extract("channel='", "'", html) url = 'http://www.embeducaster.com/embedplayer/' + channel + '/1/700/400/' html2 = Zonasportsme.getContentFromUrl(url=url, referer=page) logger.debug("html2 is: " + html2) url = Decoder.decodeUcaster(html2,url) elif '247bay.tv/static/' in html: channel = Decoder.extract("channel='", "'", html) url = 'http://www.247bay.tv/embedplayer/'+channel+'/2/750/420' url = Decoder.decode247bay(url,page) element = {} element["title"] = "Stream" element["link"] = url element["permaLink"] = True x.append(element) return x