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
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