def radiosobterurlstream(name,url):
    #GA("None","Radio - " + name)
    mensagemprogresso.create('TV Portuguesa','A carregar...')
    mensagemprogresso.update(0)
    if re.search('www.radios.pt',url):
        link=abrir_url(url)
        try:
            endereco=re.compile('<param name="url" value="(.+?)"').findall(link)[0]
        except:
            xbmc.executebuiltin("XBMC.Notification(Fightnight Music,Não é possível ouvir esta rádio.,'500000',)")
            return
        idradio=url.replace('http://www.radios.pt/portalradio/Sintonizador/?radio_id=','').replace('&scope=0','')
        thumbnail='http://www.radio.com.pt/APR.ROLI.WEB/Images/Logos/'+ idradio +'.gif'
    else:
        urlfinal='http://www.radioonline.com.pt/ajax/player.php?clear_s_name=' + url
        link= clean(abrir_url(urlfinal))
        try: player=re.compile('soundManager.createSound\({(.+?)autoLoad').findall(link)[0]
        except: player=False
        try:
            endereco=re.compile('url: "(.+?)"').findall(player)[0].replace(';','')
            if re.search('serverURL',player):
                rtmp=re.compile('serverURL: "(.+?)"').findall(player)[0]
                #rtmp=rtmp.replace('rtmp://195.23.102.206','rtmp://195.23.102.209') #tempfix
                rtmp=rtmp.replace(':1936','') #tempfix
                endereco=rtmp + ' playPath=' + endereco

        except:endereco=False
        if not endereco:
            try:endereco=re.compile('<param name="URL" value="(.+?)"').findall(link)[0]
            except:
                try: endereco=re.compile('<object data="(.+?)"').findall(link)[0]
                except: endereco=False

        if not endereco:
            xbmc.executebuiltin("XBMC.Notification(TV Portuguesa,Não é possível ouvir esta rádio.,'500000',)")
            mensagemprogresso.close()
            return

        try:thumbnail=re.compile('<img id="station-logo-player" src="(.+?)"').findall(link)[0]
        except: thumbnail=''
        if re.search('.asx',endereco):
            nomeasx='stream.asx'
            path = xbmc.translatePath(os.path.join(pastaperfil))
            lib=os.path.join(path, nomeasx)
            downloader(endereco,lib)
            texto= openfile(nomeasx)
            endereco = xbmc.PlayList(1)
            endereco.clear()
            streams=re.compile('<ref.+?"(.+?)"/>').findall(texto)
            for musica in streams:
                listitem = xbmcgui.ListItem(name, iconImage="DefaultVideo.png", thumbnailImage=thumbnail)
                listitem.setInfo("music", {"Title":name})
                endereco.add(musica,listitem)
        else: pass
    mensagemprogresso.close()
    listitem = xbmcgui.ListItem(name, iconImage="DefaultVideo.png", thumbnailImage=thumbnail)
    listitem.setInfo("music", {"Title":name})
    xbmc.Player().play(endereco,listitem)
Exemple #2
0
def canais():
    librtmpwindow()
    info_servidores()

    nrcanais = 62
    canaison = []
    empty = 'nada'
    #GA("None","listacanais")
    if selfAddon.getSetting("prog-lista3") == "true":
        mensagemprogresso.create('TV Portuguesa',
                                 'A carregar listas de programação.',
                                 'Por favor aguarde.')
        mensagemprogresso.update(0)
        if mensagemprogresso.iscanceled(): sys.exit(0)
        programas = p_todos()
        mensagemprogresso.close()
    else:
        programas = []

    sintomecomsorte()

    if activado == True:
        addCanal("[B]Lista Completa[/B]", empty, 16,
                 tvporpath + art + 'gravador-ver1.png', nrcanais, '')
    addDir("[B][COLOR white]Informações[/COLOR][/B]", 'nada', 1,
           tvporpath + art + 'defs-ver2.png', 1,
           'Clique aqui para voltar ao menu principal.', True)
    if selfAddon.getSetting("listas-pessoais") == "true":
        addDir("[B][COLOR white]Listas Pessoais[/COLOR][/B]", 'nada', 6,
               tvporpath + art + 'listas-ver2.png', 1,
               'Outras listas de canais criadas pela comunidade.', True)

    if selfAddon.getSetting("radios") == "true":
        addDir("[B][COLOR white]Radios[/COLOR][/B]", 'nada', 19,
               tvporpath + art + 'radios-v1.png', 1,
               'Oiça comodamente radios nacionais.', True)
    if selfAddon.getSetting("eventos") == "true":
        canaison.append('[B][COLOR white]Eventos[/COLOR][/B]')
        changeview()
    if selfAddon.getSetting("praias") == "true":
        addDir("[B][COLOR white]Praias[/COLOR][/B]", 'nada', 26,
               tvporpath + art + 'versao-ver2.png', 1,
               'Webcams das melhores praias nacionais.', True)

    setupCanais(canaison, empty, nrcanais, programas)

    try:
        canaison = ''.join(canaison)
        savefile('canaison', canaison)
    except:
        pass

    vista_canais()
    xbmcplugin.setContent(int(sys.argv[1]), 'livetv')
def canais():
    librtmpwindow()
    info_servidores()

    nrcanais=62
    canaison=[]
    empty='nada'
    #GA("None","listacanais")
    if selfAddon.getSetting("prog-lista3") == "true":
        mensagemprogresso.create('TV Portuguesa', 'A carregar listas de programação.','Por favor aguarde.')
        mensagemprogresso.update(0)
        if mensagemprogresso.iscanceled(): sys.exit(0)
        programas=p_todos()
        mensagemprogresso.close()
    else: programas=[]

    sintomecomsorte()

    if activado==True: addCanal("[B]Lista Completa[/B]",empty,16,tvporpath + art + 'gravador-ver1.png',nrcanais,'')
    addDir("[B][COLOR white]Informações[/COLOR][/B]",'nada',1,tvporpath + art + 'defs-ver2.png',1,'Clique aqui para voltar ao menu principal.',True)
    if selfAddon.getSetting("listas-pessoais") == "true":
        addDir("[B][COLOR white]Listas Pessoais[/COLOR][/B]",'nada',6,tvporpath + art + 'listas-ver2.png',1,'Outras listas de canais criadas pela comunidade.',True)

    if selfAddon.getSetting("radios") == "true": addDir("[B][COLOR white]Radios[/COLOR][/B]",'nada',19,tvporpath + art + 'radios-v1.png',1,'Oiça comodamente radios nacionais.',True)
    if selfAddon.getSetting("eventos") == "true": canaison.append('[B][COLOR white]Eventos[/COLOR][/B]'); changeview()
    if selfAddon.getSetting("praias") == "true": addDir("[B][COLOR white]Praias[/COLOR][/B]",'nada',26,tvporpath + art + 'versao-ver2.png',1,'Webcams das melhores praias nacionais.',True)

    setupCanais(canaison, empty, nrcanais, programas)

    try:
        canaison=''.join(canaison)
        savefile('canaison', canaison)
    except: pass

    vista_canais()
    xbmcplugin.setContent(int(sys.argv[1]), 'livetv')
def pre_resolvers(titles,ligacao,index,nome,tamanho=0,zapping=False):
    marcador='A iniciar pre resolvers'
    try:
        sys.argv[2]=sys.argv[2]+ titles[index]
        if activado==True: mensagemprogresso.update(tamanho,'A criar lista. ' + nome+ ' ' + titles[index],'Por favor aguarde...')

        nomeserver=nome.replace('ç','c').replace('ã','a').replace('ó','o') + ' ' + titles[index]
        linkescolha=ligacao[index]
        if linkescolha:
            if re.search('api.torrent-tv.ru',linkescolha):
                marcador="Pre-catcher: torrent-tv"; print marcador
                if xbmc.getCondVisibility("System.HasAddon(plugin.video.p2p-streams)"):
                    link= clean(abrir_url_cookie(linkescolha))
                    if re.search('SPORTTV 1',nome): hname='Sport TV 1'
                    elif re.search('SPORTTV 2',nome): hname='Sport TV 2'
                    elif re.search('SPORTTV 3',nome): hname='Sport TV 3'
                    elif re.search('SPORTTV 4',nome): hname='Sport TV 4'
                    elif re.search('SPORTTV 5',nome): hname='Sport TV 5'
                    else: hname='non'
                    streamurl='plugin://plugin.video.p2p-streams/?url='+re.compile(hname+'.+?acestream://(.+?)#').findall(link)[0]+'&mode=1&name='+name
                    comecarvideo(streamurl,name,True,zapping)
                else:
                    if activado==False: mensagemok('TV Portuguesa','Precisa de instalar o addon p2p-streams!','Veja aqui como fazer:','http://bit.ly/p2p-instalar')

            elif re.search('estadiofutebol',linkescolha):
                marcador="Pre-catcher: tvdez"; print marcador
                link= abrir_url_cookie(linkescolha,forcedns=True)
                if re.search('televisaofutebol',link):
                    codigo=re.compile('<iframe src="http://www.televisaofutebol.com/([^"]+?)"').findall(link)[0]
                    embed='http://www.televisaofutebol.com/' + codigo
                    ref_data = {'Referer': 'http://www.estadiofutebol.com','User-Agent':user_agent}
                    html= abrir_url_tommy(embed,ref_data)
                    descobrirresolver(embed,nome,html,zapping,nomeserver)
                else:
                    descobrirresolver(linkescolha, nome,False,zapping,nomeserver)

            elif re.search('tugastream',linkescolha):
                marcador="Pre-catcher: tugastream"; print marcador
                link= abrir_url_cookie(linkescolha,forcedns=True)
                descobrirresolver(linkescolha, nome,False,zapping,nomeserver)

            elif re.search('altas-emocoes',linkescolha):
                marcador="Pre-catcher: altas emocoes /sporting"; print marcador
                link= abrir_url(linkescolha)
                frame=re.compile('<a href="/([^"]+?)" target="_blank">SPORTING TV.+?</td>').findall(link)[0]
                ref_data = {'Referer': linkescolha,'User-Agent':user_agent}
                frame1=AltasEmocoesURL + frame
                link= abrir_url_tommy(frame1,ref_data)
                frame2='http://www.livesportshd.eu/' + re.compile('src="http://www.livesportshd.eu/([^"]+?)"').findall(link)[0]
                ref_data = {'Referer': frame1,'User-Agent':user_agent}

                link= abrir_url_tommy(frame2,ref_data)
                #frame=re.compile("src='(.+?)'").findall(link)[0]
                #ref_data = {'Referer': frame2,'User-Agent':user_agent}
                #link= abrir_url_tommy(frame,ref_data)
                descobrirresolver(frame2, nome,link,zapping,nomeserver)

            elif re.search('verlatelegratis',linkescolha):
                marcador="Pre-catcher: verlatelegratis"; print marcador
                temporary=''
                link= abrir_url(linkescolha)
                listacanais=re.compile('<center><iframe.+?src="(.+?)"').findall(link)[0]
                link= abrir_url(listacanais)
                canais=re.compile("javascript:popUp\('(.+?)'").findall(link)
                for temp in canais:
                    if re.search('toro',temp) and re.search('Toros TV',nome):temporary=temp
                    if re.search('pesca',temp) and re.search('Caça e Pesca',nome) :temporary=temp
                if temporary!='':
                    if re.search('http://',temporary): baseurl=temporary
                    else:baseurl='/'.join(listacanais.split('/')[:-1]) + temporary
                    ref_data = {'Referer': listacanais,'User-Agent':user_agent}
                    link= abrir_url_tommy(baseurl,ref_data)
                    urlfinal=re.compile('<iframe.+?src="(.+?)"').findall(link)[0]
                    ref_data = {'Referer': baseurl,'User-Agent':user_agent}
                    link= abrir_url_tommy(urlfinal,ref_data)
                    descobrirresolver(urlfinal, nome,link,zapping,nomeserver)

            elif re.search('meocanaltv',linkescolha):
                marcador="Pre-catcher: meocanaltv"; print marcador
                embed=linkescolha.replace('canais.php?stream=','embed/') + '.php?width=600&height=450'
                ref_data = {'Referer': linkescolha,'User-Agent':user_agent}
                #html= abrir_url_tommy(embed,ref_data)
                from resources.lib import cloudflare
                html=cloudflare.webpage_request(embed)
                if re.search('embed.js',html):
                    html+= abrir_url_tommy(re.compile('src="([^"]+?)embed.js"').findall(html)[0] + 'embed.js',ref_data).decode('string-escape')
                descobrirresolver(embed,nome,html,zapping,nomeserver)

            elif re.search('tvfree',linkescolha):
                marcador="Pre-catcher: tv a cores"; print marcador
                ref_data = {'Referer': TVCoresURL,'User-Agent':user_agent}
                from resources.lib import cloudflare
                link=cloudflare.webpage_request(linkescolha)
                if re.search('antena.tvfree',link) or re.search('iframe id="player"',link):
                    marcador="Pre-catcher: tv a cores - antena"; print marcador
                    try:frame=re.compile('<iframe id="player"[^>]+?src="([^"]+?)"').findall(link)[0]
                    except:frame=re.compile('<iframe src="([^"]+?)" id="innerIframe"').findall(link)[0]
                    #if not re.search('antena.mytvfree',frame): frame= TVCoresURL + frame
                    ref_data = {'Referer': linkescolha,'User-Agent':user_agent}
                    #frame=frame.replace('http://mytvfree.mehttp://antena.mytvfree.me','http://antena.mytvfree.me/')
                    link= abrir_url_tommy(frame,ref_data)
                    descobrirresolver(frame, nome,link,zapping,nomeserver)

                elif re.search('src="/meocanal.php',link):
                    marcador="Pre-catcher: tv a cores - meocanal"; print marcador
                    tempId=re.compile('<iframe src="/meocanal.php\?id=([^"]+?)"').findall(link)[0]
                    frame = "http://www.meocanaltv.com/embed/"+tempId+".php";
                    ref_data = {'Referer': linkescolha,'User-Agent':user_agent}
                    link= abrir_url_tommy(frame,ref_data)
                    if re.search('embed.js',link):
                        link+= abrir_url_tommy(re.compile('src="([^"]+?)embed.js"').findall(link)[0] + 'embed.js',ref_data).decode('string-escape')
                    descobrirresolver(frame, nome,link,zapping,nomeserver)

                else: descobrirresolver(linkescolha, nome,False,zapping,nomeserver)


            elif re.search('gosporttv',linkescolha):
                marcador="Pre-catcher: thesporttv.eu"; print marcador
                link= clean(abrir_url(linkescolha))
                try:
                    linkcod=re.compile("id='(.+?)'.+?</script><script type='text/javascript' src='"+SptveuURL +"/teste/").findall(link)[0]
                    descobrirresolver(SptveuURL+ '/teste/c0d3r.php?id=' + linkcod,nome,'hdm1.tv',zapping,nomeserver)
                except:
                    frame=re.compile('</p>[^<]*<iframe allowtransparency="true" frameborder="0" scrolling="[^"]+?" src="([^"]+?)"').findall(link)[0]
                    frame=frame.replace('sporttvhdmi.com','gosporttv.com')
                    link= clean(abrir_url(frame))
                    if re.search('var urls = new Array',link):
                        framedupla=re.compile('new Array.+?"(.+?)".+?"(.+?)"').findall(link)[0]
                        if framedupla[0]==framedupla[1]: frame=framedupla[0]
                        else:
                            if activado==True: opcao=True
                            else:opcao= xbmcgui.Dialog().yesno("TV Portuguesa", "Escolha um stream da lista dos disponiveis.", "", "","Stream Extra", 'Stream Principal')
                            if opcao: frame=framedupla[0]
                            else: frame=framedupla[1]

                    descobrirresolver(frame, nome,False,zapping,nomeserver)
            elif re.search('lvshd',linkescolha):
                marcador="Pre-catcher: livesoccerhd"; print marcador
                link= abrir_url(linkescolha)
                linkfinal= limparcomentarioshtml(link,linkescolha)
                endereco=re.compile('<iframe.+?src="(.+?)".+?</iframe></div>').findall(link)[0]
                descobrirresolver(endereco, nome,False,zapping,nomeserver)

            elif re.search('redweb',linkescolha):
                marcador="Pre-catcher: redweb"; print marcador
                c=re.compile('c=(.+?)&').findall(linkescolha)[0]
                s=re.compile('s=(.+?)&').findall(linkescolha)[0]
                i=re.compile('i=(.+?)&').findall(linkescolha)[0]
                form_data = {'c':c,'s':s,'i':i}
                ref_data = {'User-Agent':user_agent}
                html= abrir_url_tommy(RedwebURL + '/monitor.php',ref_data,form_data=form_data)
                descobrirresolver(linkescolha, nome,html,zapping,nomeserver)

            elif re.search('tvtuga',linkescolha):
                marcador="Pre-catcher: tvtuga"; print marcador
                ref_data = {'Referer': TVTugaURL,'User-Agent':user_agent}
                link= abrir_url_tommy(linkescolha,ref_data)
                p = re.compile('<meta.*?>')
                link=p.sub('', link)
                descobrirresolver(linkescolha, nome,link,zapping,nomeserver)

            else: descobrirresolver(linkescolha, nome,False,zapping,nomeserver)

    except Exception:
        if activado==False:
            mensagemprogresso.close()
            mensagemok('TV Portuguesa','Servidor não suportado.')
            (etype, value, traceback) = sys.exc_info()
            print etype
            print value
            print traceback
        else:
            try:debug.append(nomeserver + ' - ' + marcador)
            except: pass
def pre_resolvers(titles, ligacao, index, nome, tamanho=0, zapping=False):
    marcador = 'A iniciar pre resolvers'
    try:
        sys.argv[2] = sys.argv[2] + titles[index]
        if activado == True:
            mensagemprogresso.update(
                tamanho, 'A criar lista. ' + nome + ' ' + titles[index],
                'Por favor aguarde...')

        nomeserver = nome.replace('ç', 'c').replace('ã', 'a').replace(
            'ó', 'o') + ' ' + titles[index]
        linkescolha = ligacao[index]
        if linkescolha:
            if re.search('api.torrent-tv.ru', linkescolha):
                marcador = "Pre-catcher: torrent-tv"
                print marcador
                if xbmc.getCondVisibility(
                        "System.HasAddon(plugin.video.p2p-streams)"):
                    link = clean(abrir_url_cookie(linkescolha))
                    if re.search('SPORTTV 1', nome): hname = 'Sport TV 1'
                    elif re.search('SPORTTV 2', nome): hname = 'Sport TV 2'
                    elif re.search('SPORTTV 3', nome): hname = 'Sport TV 3'
                    elif re.search('SPORTTV 4', nome): hname = 'Sport TV 4'
                    elif re.search('SPORTTV 5', nome): hname = 'Sport TV 5'
                    else: hname = 'non'
                    streamurl = 'plugin://plugin.video.p2p-streams/?url=' + re.compile(
                        hname + '.+?acestream://(.+?)#').findall(
                            link)[0] + '&mode=1&name=' + name
                    comecarvideo(streamurl, name, True, zapping)
                else:
                    if activado == False:
                        mensagemok('TV Portuguesa',
                                   'Precisa de instalar o addon p2p-streams!',
                                   'Veja aqui como fazer:',
                                   'http://bit.ly/p2p-instalar')

            elif re.search('estadiofutebol', linkescolha):
                marcador = "Pre-catcher: tvdez"
                print marcador
                link = abrir_url_cookie(linkescolha, forcedns=True)
                if re.search('televisaofutebol', link):
                    codigo = re.compile(
                        '<iframe src="http://www.televisaofutebol.com/([^"]+?)"'
                    ).findall(link)[0]
                    embed = 'http://www.televisaofutebol.com/' + codigo
                    ref_data = {
                        'Referer': 'http://www.estadiofutebol.com',
                        'User-Agent': user_agent
                    }
                    html = abrir_url_tommy(embed, ref_data)
                    descobrirresolver(embed, nome, html, zapping, nomeserver)
                else:
                    descobrirresolver(linkescolha, nome, False, zapping,
                                      nomeserver)

            elif re.search('tugastream', linkescolha):
                marcador = "Pre-catcher: tugastream"
                print marcador
                link = abrir_url_cookie(linkescolha, forcedns=True)
                descobrirresolver(linkescolha, nome, False, zapping,
                                  nomeserver)

            elif re.search('altas-emocoes', linkescolha):
                marcador = "Pre-catcher: altas emocoes /sporting"
                print marcador
                link = abrir_url(linkescolha)
                frame = re.compile(
                    '<a href="/([^"]+?)" target="_blank">SPORTING TV.+?</td>'
                ).findall(link)[0]
                ref_data = {'Referer': linkescolha, 'User-Agent': user_agent}
                frame1 = AltasEmocoesURL + frame
                link = abrir_url_tommy(frame1, ref_data)
                frame2 = 'http://www.livesportshd.eu/' + re.compile(
                    'src="http://www.livesportshd.eu/([^"]+?)"').findall(
                        link)[0]
                ref_data = {'Referer': frame1, 'User-Agent': user_agent}

                link = abrir_url_tommy(frame2, ref_data)
                #frame=re.compile("src='(.+?)'").findall(link)[0]
                #ref_data = {'Referer': frame2,'User-Agent':user_agent}
                #link= abrir_url_tommy(frame,ref_data)
                descobrirresolver(frame2, nome, link, zapping, nomeserver)

            elif re.search('verlatelegratis', linkescolha):
                marcador = "Pre-catcher: verlatelegratis"
                print marcador
                temporary = ''
                link = abrir_url(linkescolha)
                listacanais = re.compile(
                    '<center><iframe.+?src="(.+?)"').findall(link)[0]
                link = abrir_url(listacanais)
                canais = re.compile("javascript:popUp\('(.+?)'").findall(link)
                for temp in canais:
                    if re.search('toro', temp) and re.search('Toros TV', nome):
                        temporary = temp
                    if re.search('pesca', temp) and re.search(
                            'Caça e Pesca', nome):
                        temporary = temp
                if temporary != '':
                    if re.search('http://', temporary): baseurl = temporary
                    else:
                        baseurl = '/'.join(
                            listacanais.split('/')[:-1]) + temporary
                    ref_data = {
                        'Referer': listacanais,
                        'User-Agent': user_agent
                    }
                    link = abrir_url_tommy(baseurl, ref_data)
                    urlfinal = re.compile('<iframe.+?src="(.+?)"').findall(
                        link)[0]
                    ref_data = {'Referer': baseurl, 'User-Agent': user_agent}
                    link = abrir_url_tommy(urlfinal, ref_data)
                    descobrirresolver(urlfinal, nome, link, zapping,
                                      nomeserver)

            elif re.search('meocanaltv', linkescolha):
                marcador = "Pre-catcher: meocanaltv"
                print marcador
                embed = linkescolha.replace(
                    'canais.php?stream=',
                    'embed/') + '.php?width=600&height=450'
                ref_data = {'Referer': linkescolha, 'User-Agent': user_agent}
                #html= abrir_url_tommy(embed,ref_data)
                from resources.lib import cloudflare
                html = cloudflare.webpage_request(embed)
                if re.search('embed.js', html):
                    html += abrir_url_tommy(
                        re.compile('src="([^"]+?)embed.js"').findall(html)[0] +
                        'embed.js', ref_data).decode('string-escape')
                descobrirresolver(embed, nome, html, zapping, nomeserver)

            elif re.search('tvfree', linkescolha):
                marcador = "Pre-catcher: tv a cores"
                print marcador
                ref_data = {'Referer': TVCoresURL, 'User-Agent': user_agent}
                from resources.lib import cloudflare
                link = cloudflare.webpage_request(linkescolha)
                if re.search('antena.tvfree', link) or re.search(
                        'iframe id="player"', link):
                    marcador = "Pre-catcher: tv a cores - antena"
                    print marcador
                    try:
                        frame = re.compile(
                            '<iframe id="player"[^>]+?src="([^"]+?)"').findall(
                                link)[0]
                    except:
                        frame = re.compile(
                            '<iframe src="([^"]+?)" id="innerIframe"').findall(
                                link)[0]
                    #if not re.search('antena.mytvfree',frame): frame= TVCoresURL + frame
                    ref_data = {
                        'Referer': linkescolha,
                        'User-Agent': user_agent
                    }
                    #frame=frame.replace('http://mytvfree.mehttp://antena.mytvfree.me','http://antena.mytvfree.me/')
                    link = abrir_url_tommy(frame, ref_data)
                    descobrirresolver(frame, nome, link, zapping, nomeserver)

                elif re.search('src="/meocanal.php', link):
                    marcador = "Pre-catcher: tv a cores - meocanal"
                    print marcador
                    tempId = re.compile(
                        '<iframe src="/meocanal.php\?id=([^"]+?)"').findall(
                            link)[0]
                    frame = "http://www.meocanaltv.com/embed/" + tempId + ".php"
                    ref_data = {
                        'Referer': linkescolha,
                        'User-Agent': user_agent
                    }
                    link = abrir_url_tommy(frame, ref_data)
                    if re.search('embed.js', link):
                        link += abrir_url_tommy(
                            re.compile('src="([^"]+?)embed.js"').findall(link)
                            [0] + 'embed.js', ref_data).decode('string-escape')
                    descobrirresolver(frame, nome, link, zapping, nomeserver)

                else:
                    descobrirresolver(linkescolha, nome, False, zapping,
                                      nomeserver)

            elif re.search('gosporttv', linkescolha):
                marcador = "Pre-catcher: thesporttv.eu"
                print marcador
                link = clean(abrir_url(linkescolha))
                try:
                    linkcod = re.compile(
                        "id='(.+?)'.+?</script><script type='text/javascript' src='"
                        + SptveuURL + "/teste/").findall(link)[0]
                    descobrirresolver(
                        SptveuURL + '/teste/c0d3r.php?id=' + linkcod, nome,
                        'hdm1.tv', zapping, nomeserver)
                except:
                    frame = re.compile(
                        '</p>[^<]*<iframe allowtransparency="true" frameborder="0" scrolling="[^"]+?" src="([^"]+?)"'
                    ).findall(link)[0]
                    frame = frame.replace('sporttvhdmi.com', 'gosporttv.com')
                    link = clean(abrir_url(frame))
                    if re.search('var urls = new Array', link):
                        framedupla = re.compile(
                            'new Array.+?"(.+?)".+?"(.+?)"').findall(link)[0]
                        if framedupla[0] == framedupla[1]:
                            frame = framedupla[0]
                        else:
                            if activado == True: opcao = True
                            else:
                                opcao = xbmcgui.Dialog().yesno(
                                    "TV Portuguesa",
                                    "Escolha um stream da lista dos disponiveis.",
                                    "", "", "Stream Extra", 'Stream Principal')
                            if opcao: frame = framedupla[0]
                            else: frame = framedupla[1]

                    descobrirresolver(frame, nome, False, zapping, nomeserver)
            elif re.search('lvshd', linkescolha):
                marcador = "Pre-catcher: livesoccerhd"
                print marcador
                link = abrir_url(linkescolha)
                linkfinal = limparcomentarioshtml(link, linkescolha)
                endereco = re.compile(
                    '<iframe.+?src="(.+?)".+?</iframe></div>').findall(link)[0]
                descobrirresolver(endereco, nome, False, zapping, nomeserver)

            elif re.search('redweb', linkescolha):
                marcador = "Pre-catcher: redweb"
                print marcador
                c = re.compile('c=(.+?)&').findall(linkescolha)[0]
                s = re.compile('s=(.+?)&').findall(linkescolha)[0]
                i = re.compile('i=(.+?)&').findall(linkescolha)[0]
                form_data = {'c': c, 's': s, 'i': i}
                ref_data = {'User-Agent': user_agent}
                html = abrir_url_tommy(RedwebURL + '/monitor.php',
                                       ref_data,
                                       form_data=form_data)
                descobrirresolver(linkescolha, nome, html, zapping, nomeserver)

            elif re.search('tvtuga', linkescolha):
                marcador = "Pre-catcher: tvtuga"
                print marcador
                ref_data = {'Referer': TVTugaURL, 'User-Agent': user_agent}
                link = abrir_url_tommy(linkescolha, ref_data)
                p = re.compile('<meta.*?>')
                link = p.sub('', link)
                descobrirresolver(linkescolha, nome, link, zapping, nomeserver)

            else:
                descobrirresolver(linkescolha, nome, False, zapping,
                                  nomeserver)

    except Exception:
        if activado == False:
            mensagemprogresso.close()
            mensagemok('TV Portuguesa', 'Servidor não suportado.')
            (etype, value, traceback) = sys.exc_info()
            print etype
            print value
            print traceback
        else:
            try:
                debug.append(nomeserver + ' - ' + marcador)
            except:
                pass
Exemple #6
0
def radiosobterurlstream(name, url):
    #GA("None","Radio - " + name)
    mensagemprogresso.create('TV Portuguesa', 'A carregar...')
    mensagemprogresso.update(0)
    if re.search('www.radios.pt', url):
        link = abrir_url(url)
        try:
            endereco = re.compile('<param name="url" value="(.+?)"').findall(
                link)[0]
        except:
            xbmc.executebuiltin(
                "XBMC.Notification(Fightnight Music,Não é possível ouvir esta rádio.,'500000',)"
            )
            return
        idradio = url.replace(
            'http://www.radios.pt/portalradio/Sintonizador/?radio_id=',
            '').replace('&scope=0', '')
        thumbnail = 'http://www.radio.com.pt/APR.ROLI.WEB/Images/Logos/' + idradio + '.gif'
    else:
        urlfinal = 'http://www.radioonline.com.pt/ajax/player.php?clear_s_name=' + url
        link = clean(abrir_url(urlfinal))
        try:
            player = re.compile(
                'soundManager.createSound\({(.+?)autoLoad').findall(link)[0]
        except:
            player = False
        try:
            endereco = re.compile('url: "(.+?)"').findall(player)[0].replace(
                ';', '')
            if re.search('serverURL', player):
                rtmp = re.compile('serverURL: "(.+?)"').findall(player)[0]
                #rtmp=rtmp.replace('rtmp://195.23.102.206','rtmp://195.23.102.209') #tempfix
                rtmp = rtmp.replace(':1936', '')  #tempfix
                endereco = rtmp + ' playPath=' + endereco

        except:
            endereco = False
        if not endereco:
            try:
                endereco = re.compile(
                    '<param name="URL" value="(.+?)"').findall(link)[0]
            except:
                try:
                    endereco = re.compile('<object data="(.+?)"').findall(
                        link)[0]
                except:
                    endereco = False

        if not endereco:
            xbmc.executebuiltin(
                "XBMC.Notification(TV Portuguesa,Não é possível ouvir esta rádio.,'500000',)"
            )
            mensagemprogresso.close()
            return

        try:
            thumbnail = re.compile(
                '<img id="station-logo-player" src="(.+?)"').findall(link)[0]
        except:
            thumbnail = ''
        if re.search('.asx', endereco):
            nomeasx = 'stream.asx'
            path = xbmc.translatePath(os.path.join(pastaperfil))
            lib = os.path.join(path, nomeasx)
            downloader(endereco, lib)
            texto = openfile(nomeasx)
            endereco = xbmc.PlayList(1)
            endereco.clear()
            streams = re.compile('<ref.+?"(.+?)"/>').findall(texto)
            for musica in streams:
                listitem = xbmcgui.ListItem(name,
                                            iconImage="DefaultVideo.png",
                                            thumbnailImage=thumbnail)
                listitem.setInfo("music", {"Title": name})
                endereco.add(musica, listitem)
        else:
            pass
    mensagemprogresso.close()
    listitem = xbmcgui.ListItem(name,
                                iconImage="DefaultVideo.png",
                                thumbnailImage=thumbnail)
    listitem.setInfo("music", {"Title": name})
    xbmc.Player().play(endereco, listitem)
def request_servidores(url,name,tamanho=0,gravador=False):
    #if name=='[B]Eventos[/B] (Cesarix/Rominhos)':
    #    obter_lista(name,url)
    #    return

    nomelista=name
    name=name.replace('[','-')
    nome=re.compile('B](.+?)/B]').findall(name)[0]
    nomega=nome.replace('-','')
    #GA("listacanais",nomega)
    titles=[]; ligacao=[]

    if url=='nada' and activado==True: todosact(nomelista)
    else:


        ### CASOS ESPECIAIS ###

        if re.search('Caça e Pesca',nomelista) or re.search('Toros TV',nomelista):
            titles.append('Pontucanal')
            ligacao.append('http://verlatelegratis.com')

        if re.search('Clubbing TV',nomelista):
            titles.append('Clubbing TV Oficial')
            ligacao.append('http://www.clubbingtv.com/jwsubscribe/clubbing.php')

        if re.search('SIC',nomelista):
            titles.append('SIC Oficial')
            if re.search('Noticias',nomelista):ligacao.append('stream://http://213.13.26.7:1936/live/_definst_/sicnoticias/playlist.m3u8')
            else:ligacao.append('stream://http://213.13.26.7:1936/live/_definst_/sic/playlist.m3u8')

        if re.search('TVI',nomelista):
            titles.append('TVI Oficial')
            if re.search('24',nomelista):ligacao.append('http://www.tvi.iol.pt/direto/tvi24')
            else:ligacao.append('http://www.tvi.iol.pt/direto')

        if re.search('Casa dos Segredos',nomelista):
            titles.append('TVI Oficial')
            ligacao.append('http://www.tvi.iol.pt/secretstory/direto')

        if re.search('TV Globo',nomelista):
            titles.append('Look-TVs')
            ligacao.append('http://look-tvs.com/globo/')

        if re.search('TRACE Urban',nomelista):
            titles.append('Trace Oficial')
            ligacao.append('http://www.dailymotion.com/video/x1ahn4f_live-trace-urban_music')

        if re.search('Virgin Radio TV',nomelista):
            titles.append('Virgin Radio TV')
            ligacao.append('stream://http://wow01.105.net/live/virgin1/playlist.m3u8')

        if re.search('DJing TV',nomelista):
            titles.append('DJing TV')
            ligacao.append('stream://http://www.djing.com/tv/noaudio_PT.m3u8')

        if re.search('TPA Internacional',nomelista):
            titles.append('Muntumedia')
            ligacao.append('http://roku.muntumedia.s3.amazonaws.com/playlisttv/T_TPAI.xml')
            titles.append('TPAi Live')
            ligacao.append('http://www.tpai.tv/tpai_rtmp_dynamic_streaming.xml')

        #if re.search('Sporting TV',nomelista):
        #    titles.append('Altas Emoções')
        #    ligacao.append(AltasEmocoesURL)

        #if re.search('SPORTTV 1',nomelista) or re.search('SPORTTV 2',nomelista)or re.search('SPORTTV 3',nomelista) or re.search('SPORTTV 4',nomelista) or re.search('SPORTTV 5',nomelista):
            #titles.append('[B]Torrent-TV.RU (acestream)[/B]')
            #ligacao.append('http://api.torrent-tv.ru/t/BgF2xM3fd1KWxgEVO21eprkQPkZi55b0LosbJU8oeZVikr1wPAmjkV%2ByixKZYNGt')

        if re.search('ARTV',nomelista):
            titles.append('ARTV Oficial')
            ligacao.append('stream://rtsp://www.canal.parlamento.pt/Live')

        #if selfAddon.getSetting("fontes-canalhd") == "true":
        #    try:
        #        canalhdref=int(0)
        #        canalhdlink=openfile('canalhd',pastafinal=cachepath).replace('+','Mais')
        #        nomecanalhd=nome.replace('RTP 1-','RTP 1').replace('RTP 2-','RTP 2').replace('TVI-','TVI').replace('FOX-','FOX').replace('AXN-','AXN').replace('SIC-','SIC').replace('AXN Black-','AXN Black').replace('AXN White-','AXN White').replace('FOX Life-','FOX Life').replace('FOX Crime-','FOX Crime').replace('FOX Movies-','FOX Movies').replace('SPORTTV 1-','Sportv 1').replace('SPORTTV 2-','Sportv 2').replace('SPORTTV 3-','Sportv 3').replace('SPORTTV 4-','Sportv 4').replace('SPORTTV 5-','Sportv 5').replace('Canal Panda-','Canal Panda').replace('Hollywood-','Canal Hollywood').replace('Eurosport-','Eurosport').replace('MOV-','MOV').replace('VH1-','VH1').replace('Porto Canal-','portocanal').replace('SIC Noticias-','Sic Noticias').replace('SIC Radical-','SIC Radical').replace('SIC Mulher-','SIC Mulher').replace('SIC K-','sick').replace('Big Brother VIP-','bigbrothervip').replace('TVI Ficção-','TVI Ficção').replace('Syfy-','Syfy').replace('Benfica TV 1-','Benfica TV').replace('Benfica TV 2-','Benfica TV').replace('CM TV-','cmtv').replace('RTP Africa-','rtpafrica').replace('RTP Informação-','RTP Informação').replace('Fashion TV-','fashiontv').replace('ESPN-','ESPN').replace('RTP Africa-','rtpafrica').replace('RTP Madeira-','rtpmadeira').replace('RTP Internacional-','rtpinternacional').replace('Casa dos Segredos 5-','casadossegredos').replace('Económico TV-','economicotv').replace('Sporting TV-','Sporting TV').replace('Chelsea TV-','Chelsea TV').replace('TVI24-','TVI 24').replace('Mais TVI-','TVI Mais').replace('MTV-','MTV').replace('História-','Canal História').replace('Odisseia-','Odisseia').replace('Discovery Channel-','Discovery Channel').replace('National Geographic Channel-','National Geographic').replace('Disney Channel-','Disney Channel')
        #        canalhd=re.compile('>'+nomecanalhd +'</h2><a href="([^"]+?)"').findall(canalhdlink)
        #        if canalhd:
        #            for codigo in canalhd:
        #                canalhdref=int(canalhdref + 1)
        #                if len(canalhd)==1: canalhd2=str('')
        #                else: canalhd2=' #' + str(canalhdref)
        #                titles.append('CanalHD.tv' + canalhd2)
        #                ligacao.append(CanalHDURL + codigo)
        #    except: pass


        ########################################DESPORTOGRATIS############################
        if selfAddon.getSetting("fontes-desportogratis") == "true":
            try:
                desgrref=int(0)
                desgrlink=openfile('desgratis',pastafinal=cachepath)
                nomedesgr=nome.replace('SPORTTV 1-','1.html').replace('SPORTTV 2-','2.html').replace('SPORTTV 3-','3.html').replace('SPORTTV 4-','4.html').replace('SPORTTV 5-','4.html').replace('SPORTTV LIVE-','4.html').replace('Benfica TV 1-','5.html').replace('Benfica TV 2-','5.html')
                desgr=re.compile('<a href="http://www.desportogratis.com/'+nomedesgr+'" target="iframe"><form>').findall(desgrlink)
                if desgr:
                    for resto in desgr:
                        desgrref=int(desgrref + 1)
                        if len(desgr)==1:
                            desgr2=str('')
                        else:
                            desgr2=' #' + str(desgrref)
                        titles.append('Desporto Grátis' + desgr2)
                        ligacao.append('http://www.desportogratis.com/' + nomedesgr)

            except: pass

        if selfAddon.getSetting("fontes-meocanaltv") == "true":
            try:
                meocanaltv=False
                meocanaltvref=int(0)
                meocanaltvlink=openfile('meocanaltv',pastafinal=cachepath)
                nomemeocanaltv=nome.replace('RTP 1-','RTP 1').replace('RTP 2-','RTP 2').replace('RTP Informação-','RTP INFORMACAO').replace('RTP Africa-','RTP AFRICA').replace('RTP Madeira-','RTP MADEIRA').replace('RTP Internacional-','RTP INTERNACIONAL').replace('RTP Açores-','RTP ACORES').replace('RTP Memória-','RTP MEMORIA').replace('SIC-','SIC').replace('TVI-','TVI').replace('SPORTTV 1-','Sport TV em Direto').replace('Big Brother VIP-','BB VIP').replace('SIC K-','SIC KIDS').replace('SIC Radical-','SIC RADICAL').replace('SIC Mulher-','SIC MULHER').replace('SIC Noticias-','SIC NOTICIAS Online').replace('TVI24-','TVI 24').replace('Hollywood-','HOLLYWOOD').replace('MOV-','CANAL MOV').replace('AXN-','AXN').replace('AXN Black-','AXN BLACK').replace('AXN White-','AXN WHITE').replace('FOX-','FOX').replace('FOX Crime-','FOX CRIME').replace('FOX Life-','FOX LIFE').replace('FOX Movies-','FOX MOVIES').replace('Canal Panda-','CANAL PANDA').replace('Discovery Channel-','DISCOVERY CHANNEL').replace('Eurosport-','EUROSPORT 1').replace('Benfica TV 1-','Benfica TV online').replace('Benfica TV 2-','Benfica TV online').replace('Porto Canal-','PORTO CANAL').replace('Syfy-','SYFY').replace('Odisseia-','CANAL ODISSEIA').replace('História-','CANAL HISTÓRIA').replace('National Geographic Channel-','NATIONAL GEOGRAPHIC').replace('MTV-','MTV').replace('Disney Channel-','DISNEY CHANNEL').replace('Panda Biggs-','PANDA BIGGS').replace('Motors TV-','MOTORS TV').replace('ESPN-','ESPN Online BR').replace('ESPN America-','ESPN Online BR').replace('A Bola TV-','A BOLA TV').replace('Casa dos Segredos 5-','Secret Story 4 em Direto').replace('CM TV-','CM TV').replace('TVI Ficção-','TVI FICCAO').replace('Panda Biggs-','Panda Biggs').replace('Económico TV-','Económico TV - Emissão Online').replace('Disney Junior-','Canal Disney Junior').replace('TV Record-','Record Online ao Vivo').replace('Discovery Turbo-','Discovery Turbo Brasil').replace('Caça e Pesca-','Caza y Pesca').replace('Mais TVI-','+TVI').replace('Eurosport 2-','EUROSPORT 2')
                meocanaltv=re.compile('"(.+?)">%s<' % (nomemeocanaltv)).findall(meocanaltvlink)
                if meocanaltv:
                    for codigo in meocanaltv:
                        meocanaltvref=int(meocanaltvref + 1)
                        if len(meocanaltv)==1: meocanaltv2=str('')
                        else: meocanaltv2=' #' + str(meocanaltvref)
                        titles.append('MEOCanal TV' + meocanaltv2)
                        ligacao.append(MEOURL + codigo)
            except: pass

        ########################################RTPPLAY############################
        if selfAddon.getSetting("fontes-rtpplay") == "true":
            try:
                rtpplay=False
                rtpplayref=int(0)
                rtpplaylink=openfile('rtpplay',pastafinal=cachepath)
                nomertpplay=nome.replace('RTP 1-','rtp1').replace('RTP 2-','rtp2').replace('RTP Informação-','rtpinformacao').replace('RTP Africa-','rtpafrica').replace('RTP Madeira-','rtpmadeira').replace('RTP Internacional-','rtpinternacional').replace('RTP Açores-','rtpacores').replace('RTP Memória-','rtpmemoria')
                rtpplay=re.compile('id="' + nomertpplay + '" title=".+?" href="(.+?)">').findall(rtpplaylink)
                if rtpplay:
                    for codigo in rtpplay:
                        rtpplayref=int(rtpplayref + 1)
                        if len(rtpplay)==1: rtpplay2=str('')
                        else: rtpplay2=' #' + str(rtpplayref)
                        titles.append('RTP Play' + rtpplay2)
                        ligacao.append(RTPURL + codigo)
            except: pass

        ########################################TV A CORES############################
        if selfAddon.getSetting("fontes-tvacores") == "true":
            try:
                tvacoresref=int(0)
                tvacoreslink=openfile('tvacores',pastafinal=cachepath)
                nometvacores=nome.replace('RTP 1-','RTP 1 Online').replace('RTP 2-','RTP 2 Online').replace('SIC-','SIC Online').replace('TVI-','TVI Online').replace('SPORTTV 1-','Sport TV em Direto').replace('Big Brother VIP-','BB VIP').replace('SIC K-','SIC K Online').replace('SIC Radical-','SIC Radical Online').replace('SIC Mulher-','SIC Mulher Online').replace('SIC Noticias-','SIC Noticias Online').replace('TVI24-','TVI24 online').replace('Hollywood-','Canal Hollywood').replace('MOV-','Canal MOV').replace('AXN-','AXN Portugal').replace('AXN Black-','AXN Black Online').replace('AXN White-','AXN White online').replace('FOX-','Fox Online PT').replace('FOX Crime-','FOX Crime Online').replace('FOX Life-','FOX Life Online').replace('FOX Movies-','FOX Movies Portugal').replace('Canal Panda-','Canal Panda').replace('Discovery Channel-','Discovery Channel PT').replace('Eurosport-','Eurosport Portugal').replace('Benfica TV 1-','Benfica TV online').replace('Benfica TV 2-','Benfica TV online').replace('Porto Canal-','Porto Canal - Emissão Online').replace('Syfy-','SYFY Channel Portugal').replace('Odisseia-','Canal Odisseia').replace('História-','Canal Historia Portugal').replace('National Geographic Channel-','National Geographic PT').replace('MTV-','MTV Portugal').replace('RTP Açores-','RTP Açores Online').replace('RTP Africa-','RTP África Online').replace('RTP Informação-','RTP Informação - Emissão Online').replace('RTP Madeira-','RTP Madeira Online').replace('RTP Memória-','RTP Memória').replace('Disney Channel-','Disney Portugal').replace('Panda Biggs-','Panda Biggs').replace('Motors TV-','Motors TV Online').replace('ESPN-','ESPN Online BR').replace('ESPN America-','ESPN Online BR').replace('A Bola TV-','A Bola TV').replace('RTP Africa-','RTP Africa').replace('RTP Madeira-','RTP Madeira').replace('RTP Internacional-','RTP Internacional').replace('RTP Açores-','RTP Açores').replace('A Bola TV-','A Bola TV').replace('Casa dos Segredos 5-','A Casa dos Segredos').replace('CM TV-','CMTV em direto').replace('TVI Ficção-','TVI Ficção online').replace('Panda Biggs-','Panda Biggs').replace('Económico TV-','Económico TV - Emissão Online').replace('Disney Junior-','Canal Disney Junior').replace('TV Record-','Record Online ao Vivo').replace('Discovery Turbo-','Discovery Turbo Brasil').replace('Caça e Pesca-','Caza y Pesca').replace('Sporting TV-','Sporting TV online')
                tvacores=re.compile('<a href="(.*?)">'+nometvacores+'</a>').findall(tvacoreslink)
                if tvacores:
                    for codigo in tvacores:
                        tvacoresref=int(tvacoresref + 1)
                        if len(tvacores)==1: tvacores2=str('')
                        else: tvacores2=' #' + str(tvacoresref)
                        titles.append('TV a Cores' + tvacores2)
                        urlembed=TVCoresURL.replace('http://mytvfree.mehttp://antena.mytvfree.me','http://antena.mytvfree.me/')
                        ligacao.append(TVCoresURL + codigo)
                        #ligacao.append('http://mytvfree.mehttp://antena.mytvfree.me/sic.php')
                        #ligacao.append('http://antena24.com/sic.php')
            except: pass

        ########################################TUGASTREAM############################
        if selfAddon.getSetting("fontes-tugastream") == "true":
            try:
                tugastreamref=int(0)
                tugastreamlink=openfile('tugastream',pastafinal=cachepath)
                nometugastream=nome.replace('RTP 1-','rtp1').replace('RTP 2-','rtp2').replace('TVI-','tvi').replace('FOX-','fox').replace('AXN-','axn').replace('SIC-','sic').replace('AXN Black-','axnblack').replace('AXN White-','axnwhite').replace('FOX Life-','foxlife').replace('FOX Crime-','foxcrime').replace('FOX Movies-','foxmovies').replace('SPORTTV 1-','sporttv1').replace('SPORTTV 2-','sporttv2').replace('SPORTTV 3-','sporttv3').replace('SPORTTV 4-','sporttv4').replace('SPORTTV 5-','sporttv5').replace('Canal Panda-','panda').replace('Hollywood-','hollywood').replace('Eurosport-','eurosport').replace('MOV-','mov').replace('VH1-','vh1').replace('Porto Canal-','portocanal').replace('SIC Noticias-','sicnoticias').replace('SIC Radical-','sicradical').replace('SIC Mulher-','sicmulher').replace('SIC K-','sick').replace('Big Brother VIP-','bigbrothervip').replace('TVI Ficção-','tvificcao').replace('Syfy-','syfy').replace('Benfica TV 1-','benficatv').replace('Benfica TV 2-','benficatv').replace('CM TV-','cmtv').replace('RTP Africa-','rtpafrica').replace('RTP Informação-','rtpinformacao').replace('Fashion TV-','fashiontv').replace('ESPN-','espn').replace('RTP Africa-','rtpafrica').replace('RTP Madeira-','rtpmadeira').replace('RTP Internacional-','rtpinternacional').replace('Casa dos Segredos 5-','casadossegredos').replace('Económico TV-','economicotv')
                tugastream=re.compile('<a href="'+nometugastream + '(.+?)php">').findall(tugastreamlink)
                if tugastream:
                    for codigo in tugastream:
                        tugastreamref=int(tugastreamref + 1)
                        if len(tugastream)==1: tugastream2=str('')
                        else: tugastream2=' #' + str(tugastreamref)
                        titles.append('Tugastream' + tugastream2)
                        ligacao.append(TugastreamURL + nometugastream + codigo + 'php?altura=432&largura=768')
            except: pass

        ########################################TVGENTE############################
        if selfAddon.getSetting("fontes-tvgente") == "true":
            try:
                tvgenteref=int(0)
                tvgentelink = openfile('tvgente')
                nometvgente=nome.replace('SPORTTV 1-','sptv1novo.png').replace('SPORTTV 2-','sptv2novo.png').replace('SPORTTV 3-','sptv3novo.png').replace('SPORTTV 4-','jogooo.png').replace('SPORTTV 5-','sptv511.png').replace('Eurosport-','eurosportnovo.png').replace('Eurosport 2-','eurosport2novo.png').replace('ESPN-','espnnovo.png').replace('RTP 1-','1rtp.png').replace('RTP 2-','rtp2novo.png').replace('RTP Informação-','rtpinfonovo.png').replace('RTP Internacional-','rtp intnovo.png').replace('RTP Memória-','memoriartpnovo.png').replace('RTP Açores-','acoresnovortp.png').replace('RTP Madeira-','madeirartpnovo.png').replace('SIC-','3.gif').replace('SIC Noticias-','sicnnovo.png').replace('TVI-','tvinovo.png').replace('TVI24-','tvi24novo.png').replace('Porto Canal-','portonovo.png').replace('Benfica TV 1-','btvnovo.png').replace('Benfica TV 2-','btvnovo.png').replace('Sporting TV-','sportingtv.png').replace('A Bola TV-','biolatv.png').replace('CM TV-','cmtv.png').replace('Económico TV-','ecnovo.png').replace('FOX-','foxnovo.png').replace('Discovery Channel-','discnovo.png').replace('História-','historia').replace('Casa dos Segredos 5-','casa do putedo1.jpg')
                tvgente=re.compile("\('(.+?)'.+?<img.+?" +nometvgente + '"').findall(tvgentelink)
                nometvgente=nome.replace('SPORTTV 1-','miga1.png').replace('SPORTTV 2-','miga2.png').replace('SPORTTV 3-','miga3.png').replace('SPORTTV 4-','miga 4.png').replace('SPORTTV 5-','miga5.png').replace('Benfica TV 1-','btv11.png').replace('Benfica TV 2-','btv11.png').replace('SIC Noticias-','hd1sic.png').replace('Sporting TV-','testesporting.png')
                tvgente+=re.compile("\('(.+?)'.+?<img.+?" +nometvgente + '"').findall(tvgentelink)

                #new way to get stuff without the need to change source.
                #nometvgente=nome.replace('RTP 1-','RTP 1 Online').replace('RTP 2-','RTP 2 Online').replace('SIC-','SIC Online').replace('TVI-','TVI Online').replace('SPORTTV 1-','Sport TV em Direto').replace('Big Brother VIP-','BB VIP').replace('SIC K-','SIC K Online').replace('SIC Radical-','SIC Radical Online').replace('SIC Mulher-','SIC Mulher Online').replace('SIC Noticias-','SIC Noticias Online').replace('TVI24-','TVI24 online').replace('Hollywood-','Canal Hollywood').replace('MOV-','Canal MOV').replace('AXN-','AXN Portugal').replace('AXN Black-','AXN Black Online').replace('AXN White-','AXN White online').replace('FOX-','Fox Online PT').replace('FOX Crime-','FOX Crime Online').replace('FOX Life-','FOX Life Online').replace('FOX Movies-','FOX Movies Portugal').replace('Canal Panda-','Canal Panda').replace('Discovery Channel-','Discovery Channel PT').replace('Eurosport-','Eurosport Portugal').replace('Benfica TV 1-','Benfica TV online').replace('Benfica TV 2-','Benfica TV online').replace('Porto Canal-','Porto Canal - Emissão Online').replace('Syfy-','SYFY Channel Portugal').replace('Odisseia-','Canal Odisseia').replace('História-','Canal Historia Portugal').replace('National Geographic Channel-','National Geographic PT').replace('MTV-','MTV Portugal').replace('RTP Açores-','RTP Açores Online').replace('RTP Africa-','RTP África Online').replace('RTP Informação-','RTP Informação - Emissão Online').replace('RTP Madeira-','RTP Madeira Online').replace('RTP Memória-','RTP Memória').replace('Disney Channel-','Disney Portugal').replace('Panda Biggs-','Panda Biggs').replace('Motors TV-','Motors TV Online').replace('ESPN-','ESPN Online BR').replace('ESPN America-','ESPN Online BR').replace('A Bola TV-','A Bola TV').replace('RTP Africa-','RTP Africa').replace('RTP Madeira-','RTP Madeira').replace('RTP Internacional-','RTP Internacional').replace('RTP Açores-','RTP Açores').replace('A Bola TV-','A Bola TV').replace('Casa dos Segredos 5-','A Casa dos Segredos').replace('CM TV-','CMTV em direto').replace('TVI Ficção-','TVI Ficção online').replace('Panda Biggs-','Panda Biggs').replace('Económico TV-','Económico TV - Emissão Online').replace('Disney Junior-','Canal Disney Junior').replace('TV Record-','Record Online ao Vivo').replace('Discovery Turbo-','Discovery Turbo Brasil').replace('Caça e Pesca-','Caza y Pesca').replace('Sporting TV-','Sporting TV online')
                #tvgente=re.compile('<a href="(.*?)'+nometvgente+'..htm"').findall(tvgentelink)
                if tvgente:
                    for codigo in tvgente:
                        tvgenteref=int(tvgenteref + 1)
                        if len(tvgente)==1: tvgente2=str('')
                        else: tvgente2=' ' + str(tvgenteref)
                        titles.append('TV Gente' + tvgente2)
                        ligacao.append(codigo)
            except: pass

        if re.search('SPORTTV 1 HD',nomelista) or re.search('SPORTTV 1',nomelista):
            titles.append('TVGO.be')
            ligacao.append(TVGOURL)

        if re.search('SPORTTV 2',nomelista):
            titles.append('TVGO.be')
            ligacao.append(TVGOURL + 'sport2.html')


        ########################################TVTUGA############################
        if selfAddon.getSetting("fontes-tvtuga") == "true":
            try:
                tvtugaref=int(0)
                tvtugalink=openfile('tvtuga',pastafinal=cachepath)

                nometvtuga=nome.replace('RTP 1-','rtp-1').replace('RTP 2-','rtp-2').replace('TVI-','tvi').replace('FOX-','fox').replace('AXN-','axn').replace('SIC-','sic').replace('AXN Black-','axnblack').replace('AXN White-','axn-white').replace('FOX Life-','fox-life').replace('FOX Crime-','fox-crime').replace('FOX Movies-','fox-movies').replace('SPORTTV 1-','sporttv1').replace('SPORTTV 2-','sporttv2').replace('SPORTTV 3-','sporttv3').replace('SPORTTV 4-','sporttvlive').replace('SPORTTV LIVE-','sporttvlive').replace('Canal Panda-','canal-panda').replace('Hollywood-','canal-hollywood').replace('Eurosport-','eurosport').replace('MOV-','mov').replace('VH1-','vh1').replace('Porto Canal-','portocanal').replace('SIC Noticias-','sic-noticias').replace('SIC Radical-','sicradical').replace('SIC Mulher-','sicmulher').replace('SIC K-','sick').replace('Big Brother VIP-','bigbrothervip').replace('TVI Ficção-','tvi-ficcao').replace('Syfy-','syfy').replace('Benfica TV 1-','benfica-tv').replace('Benfica TV 2-','benfica-tv').replace('CM TV-','cm-tv').replace('RTP Africa-','rtp-africa').replace('RTP Informação-','rtp-informacao').replace('Fashion TV-','fashiontv').replace('ESPN-','espn').replace('A Bola TV-','abola-tv').replace('Casa dos Segredos 4-','secret-story-4-casa-dos-segredos').replace('RTP Açores-','rtp-acores').replace('RTP Internacional-','rtp-internacional').replace('RTP Madeira-','rtp-madeira').replace('RTP Memória-','rtp-memoria').replace('TVI24-','tvi-24').replace('Panda Biggs-','panda-biggs').replace('Económico TV-','economico-tv').replace('Eurosport 2-','eurosport-2').replace('Casa dos Segredos 5-','secret-story-5').replace('Euronews-','euronews')

                tvtuga=re.compile('value="http://www.tvtuga.com/'+nometvtuga+'(.+?)">').findall(tvtugalink)
                if tvtuga:
                    for codigo in tvtuga:
                        tvtugaref=int(tvtugaref + 1)
                        if len(tvtuga)==1: tvtuga2=str('')
                        else: tvtuga2=' #' + str(tvtugaref)
                        titles.append('TVTuga' + tvtuga2)
                        ligacao.append(TVTugaURL + '/' + nometvtuga + codigo)
            except: pass


        ########################################TVDEZ############################
        if selfAddon.getSetting("fontes-tvdez") == "true":
            try:
                tvdezref=int(0)
                tvdezlink=openfile('tvdez',pastafinal=cachepath)
                tvdezlink=tvdezlink.replace('+ TVI','Mais TVI')
                nometvdez=nome.replace('RTP 1-','RTP').replace('RTP 2-','RTP 2').replace('FOX-','FOX').replace('AXN-','AXN').replace('AXN Black-','AXN Black').replace('AXN White-','AXN White').replace('FOX Life-','FOX Life').replace('FOX Crime-','FOX Crime').replace('FOX Movies-','FOX Movies').replace('SPORTTV 3-','Sport TV 3').replace('SPORTTV 4-','Sport TV 4').replace('SPORTTV 5-','Sport TV 5').replace('SPORTTV LIVE-','Sporttv Live').replace('Canal Panda-','Canal Panda').replace('Hollywood-','Hollywood').replace('Eurosport-','Eurosport').replace('MOV-','Canal MOV').replace('VH1-','VH1 Hits').replace('Porto Canal-','Porto Canal').replace('SIC Radical-','SIC Radical').replace('SIC Mulher-','SIC Mulher').replace('SIC K-','SIC K').replace('TVI Ficção-','TVI Fic&ccedil;&atilde;o').replace('Discovery Channel-','Discovery Channel').replace('TVI24-','TVI 24').replace('Mais TVI-','Mais TVI').replace('Syfy-','Syfy').replace('Odisseia-','Odisseia').replace('História-','Hist&oacute;ria').replace('National Geographic Channel-','National Geographic').replace('MTV-','MTV').replace('CM TV-','Correio da Manh&atilde; TV').replace('RTP Açores-','RTP A&ccedil;ores').replace('RTP Informação-','RTP Informa&ccedil;&atilde;o').replace('RTP Madeira-','RTP Madeira').replace('RTP Memória-','RTP Mem&oacute;ria').replace('Disney Channel-','Disney Channel').replace('Fashion TV-','Fashion TV').replace('Disney Junior-','Disney Junior').replace('Panda Biggs-','Panda Biggs').replace('Motors TV-','Motors TV').replace('ESPN-','ESPN Brasil').replace('ESPN America-','ESPN').replace('A Bola TV-','A Bola TV').replace('RTP Africa-','RTP Africa').replace('RTP Madeira-','RTP Madeira').replace('RTP Internacional-','RTP Internacional').replace('RTP Memória-','RTP Mem&oacute;ria').replace('RTP Açores-','RTP A&ccedil;ores').replace('Panda Biggs-','Panda Biggs').replace('Económico TV-','Econ&oacute;mico TV').replace('Chelsea TV-','Chelsea TV').replace('Disney Junior-','Disney Junior').replace('TV Globo-','TV Globo').replace('TV Record-','Rede Record').replace('Eurosport 2-','Eurosport 2').replace('Euronews-','EuroNews')
                tvdez=re.compile('<a href="(.+?)" title="'+nometvdez+'">').findall(tvdezlink)
                if not tvdez:
                    nometvdez=nome.replace('SPORTTV 1-','Sport TV 1').replace('SPORTTV 2-','Sport TV 2').replace('SIC-','SIC').replace('TVI-','TVI').replace('SIC Noticias-','SIC Not&iacute;cias').replace('Big Brother VIP-','Big Brother VIP 2013').replace('Benfica TV 1-','Benfica TV').replace('Benfica TV 2-','Benfica TV').replace('Casa dos Segredos 5-','Casa dos segredos 5 - TVI Direct')
                    tvdez=re.compile('<a href="(.+?)" title="'+nometvdez+'">').findall(tvdezlink)
                    nometvdez=nome.replace('SPORTTV 1-','Sporttv em Directo').replace('SPORTTV 2-','Sporttv 2').replace('SIC-','SIC Online - Stream 2').replace('TVI-','TVI Online - Stream 2').replace('SIC Noticias-','SIC Not&iacute;cias Online').replace('Big Brother VIP-','Big Brother Portugal').replace('Benfica TV 1-','Benfica-TV').replace('Benfica TV 2-','Benfica-TV').replace('Casa dos Segredos 5-','Secret Story 5')
                    tvdez+=re.compile('<a href="(.+?)" title="'+nometvdez+'">').findall(tvdezlink)
                    nometvdez=nome.replace('SPORTTV 1-','Sporttv HD')
                    tvdez+=re.compile('<a href="(.+?)" title="'+nometvdez+'">').findall(tvdezlink)
                if tvdez:
                    for codigo in tvdez:
                        tvdezref=int(tvdezref + 1)
                        if len(tvdez)==1: tvdez2=str('')
                        else: tvdez2=' #' + str(tvdezref)
                        titles.append('TVDez' + tvdez2)
                        ligacao.append(TVDezURL + codigo)
            except: pass


        if len(ligacao)==1: index=0
        elif activado==True: index=0
        elif len(ligacao)==0: ok=mensagemok('TV Portuguesa', 'Nenhum stream disponivel.'); return
        else: index = xbmcgui.Dialog().select('Escolha o servidor', titles)
        if index > -1:
            if activado==False:
                mensagemprogresso.create('TV Portuguesa', 'A carregar stream. (' + titles[index] + ')','Por favor aguarde...')
                mensagemprogresso.update(0)
                if mensagemprogresso.iscanceled(): mensagemprogresso.close()
                pre_resolvers(titles,ligacao,index,nome,zapping=gravador)
            else:
                index=-1

                for linkescolha in ligacao:
                    index=index+1
                    pre_resolvers(titles,ligacao,index,nome,tamanho=tamanho,zapping=gravador)

                activadoextra2=set(activadoextra)
                thumb=nome.replace('Mais TVI-','maistvi-ver2.png').replace('AXN-','axn-ver2.png').replace('FOX-','fox-ver2.png').replace('RTP 1-','rtp1-ver2.png').replace('RTP 2-','rtp2-ver2.png').replace('SIC-','sic-ver3.png').replace('SPORTTV 1-','sptv1-ver2.png').replace('SPORTTV 1 HD-','sptvhd-ver2.png').replace('SPORTTV 2-','sptv2-ver2.png').replace('SPORTTV 3-','sptv3-ver2.png').replace('SPORTTV 4-','sptv4-ver2.png').replace('SPORTTV LIVE-','sptvlive-ver1.png').replace('TVI-','tvi-ver2.png').replace('Discovery Channel-','disc-ver2.png').replace('AXN Black-','axnb-ver2.png').replace('AXN White-','axnw-ver2.png').replace('FOX Crime-','foxc-ver2.png').replace('FOX Life-','foxl-ver3.png').replace('FOX Movies-','foxm-ver2.png').replace('Eurosport-','eusp-ver2.png').replace('Hollywood-','hwd-ver2.png').replace('MOV-','mov-ver2.png').replace('Canal Panda-','panda-ver2.png').replace('VH1-','vh1-ver2.png').replace('Benfica TV 1-','btv1-ver1.png').replace('Benfica TV 2-','btv2-ver1.png').replace('Porto Canal-','pcanal-ver2.png').replace('Big Brother VIP-','bbvip-ver2.png').replace('SIC K-','sick-ver2.png').replace('SIC Mulher-','sicm-ver3.png').replace('SIC Noticias-','sicn-ver2.png').replace('SIC Radical-','sicrad-ver2.png').replace('TVI24-','tvi24-ver2.png').replace('TVI Ficção-','tvif-ver2.png').replace('Syfy-','syfy-ver1.png').replace('Odisseia-','odisseia-ver1.png').replace('História-','historia-ver1.png').replace('National Geographic Channel-','natgeo-ver1.png').replace('MTV-','mtv-ver1.png').replace('CM TV-','cmtv-ver1.png').replace('RTP Informação-','rtpi-ver1.png').replace('Disney Channel-','disney-ver1.png').replace('Motors TV-','motors-ver1.png').replace('ESPN America-','espna-ver1.png').replace('Fashion TV-','fash-ver1.png').replace('A Bola TV-','abola-ver1.png').replace('Casa dos Segredos 5-','casadseg-ver1.png').replace('RTP Açores-','rtpac-ver1.png').replace('RTP Internacional-','rtpint-ver1.png').replace('RTP Madeira-','rtpmad-ver1.png').replace('RTP Memória-','rtpmem-ver1.png').replace('RTP Africa-','rtpaf-ver1.png').replace('Panda Biggs-','pbiggs-ver1.png').replace('TV Record-','record-v1.png').replace('TV Globo-','globo-v1.png').replace('Eurosport 2-','eusp2-ver1.png').replace('Discovery Turbo-','discturbo-v1.png').replace('Toros TV-','toros-v1.png').replace('Chelsea TV-','chel-v1.png').replace('Disney Junior-','djun-ver1.png').replace('Económico TV-','econ-v1.png').replace('Caça e Pesca-','cacapesca-v1.png').replace('TPA Internacional-','tpa-ver1.png').replace('TRACE Urban-','traceu.png').replace('Virgin Radio TV-','virginr.png').replace('DJing TV-','djingtv.png')

                nome=nome.replace('-','')
                SIM='</link>\n<link>'.join(activadoextra2)
                if SIM=='':
                    return ''
                else:
                    SIM='<link>%s</link>' % (SIM)
                    if thumb=='tvif-ver2.png':nome='TVI Ficcao'
                    elif thumb=='historia-ver1.png': nome='Historia'
                    elif thumb=='rtpac-ver1.png': nome='RTP Acores'
                    elif thumb=='rtpi-ver1.png': nome='RTP Informacao'
                    elif thumb=='rtpmem-ver1.png': nome='RTP Memoria'
                    elif thumb=='econ-v1.png': nome='Economico TV'
                    elif thumb=='cacapesca-v1.png': nome='Caca e Pesca'
                    CONTEUDO='<item>\n<title>%s</title>\n%s\n<thumbnail>%s</thumbnail>\n</item>' % (nome,SIM,thumb)
                return CONTEUDO