Beispiel #1
0
    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
Beispiel #2
0
 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