def praias(): beachcams=[] try: temp= abrir_url(BeachcamURL + 'pt/livecams/') beachcams=re.compile('<a href="/pt/livecams/(.+?)">(.+?)</a>').findall(temp) except: print "Nao foi possivel obter as BeachCams" try: temp= abrir_url(SurflineURL + '/surf-report/portugal_2946/map/') beachcams+=re.compile('\tbackground-image:url./surfdata/images/icon_hdcam_blue.gif.\n\t\t\t\t\n ;background-repeat:no-repeat;background-position:bottom left"\n href="(.+?)">(.+?)</a>').findall(temp) except: print "Nao foi possivel obter as Surfline" try: temp=re.compile('Report<b class="caret">(.+?)</li></ul></li>').findall(abrir_url(SurftotalURL))[0] beachcams+=re.compile('<a href="(.+?)" >(.+?)</a>').findall(temp) except: print "Nao foi possivel obter as Surftotal" beachcams.sort(key=lambda t: t[1]) for end,nome in beachcams: nome=nome.replace('ã','ã').replace('ç','ç').replace('í','í').replace('´','á') if re.search('surf-report',end): end=SurflineURL + end nome= '[B]%s[/B] (Surfline)' % nome elif re.search('camaras-report',end): end=SurftotalURL + end nome= '[B]%s[/B] (Surftotal)' % nome else: end=BeachcamURL + 'pt/livecams/' + end nome= '[B]%s[/B] (Beachcam.pt)' % nome addDir(nome,end,27,tvporpath + art + 'versao-ver2.png',len(beachcams),'',False)
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 listar_radios(name,url): link= clean(abrir_url(url)) radios=re.compile('<td><a href="/portalradio/conteudos/ficha/.+?radio_id=(.+?)">(.+?)</a></td><td>(.+?)</td>.+?<td align="center">').findall(link) for idradio,nomeradio,concelho in radios: addDir('[B]'+nomeradio+'[/B] ('+concelho+')',RadiosURL + 'Sintonizador/?radio_id=' + idradio + '&scope=0',21,'http://www.radio.com.pt/APR.ROLI.WEB/Images/Logos/'+ idradio +'.gif',len(radios),'',False) xbmc.executebuiltin("Container.SetViewMode(501)") paginasradios(url,link)
def parseM3U(infile,link=False): if link==False: inf=abrir_url(infile).splitlines( ) else: inf=link.splitlines( ) playlist=[] musica=[] titulo='' urlstream='' for line in inf: line=line.strip() if line.startswith('#EXTINF:'): #stupid guys with spaces and common errors try:titulo=line.split('#EXTINF:')[1].split(', ',1)[1] except: try:titulo=line.split('#EXTINF:')[1].split(', ',1)[1] except: try:titulo=line.split('#EXTINF:')[1].split(',',1)[1] except:titulo=line.split('#EXTINF:')[1].split('" ',1)[1] elif re.search('#EXTM3U',line): pass elif (len(line) != 0): line=line.replace('rtmp://$OPT:rtmp-raw=','') urlstream=line musica.append(titulo) musica.append(urlstream) musica.append(tvporpath + art + 'vercanais-ver2.png')#fakethumb playlist.append(musica) musica=[] titulo='' urlstream='' return playlist
def programacao_canal(): titles=[] sigla=name.replace('[','-') sigla=re.compile('B](.+?)/B]').findall(sigla)[0] siglacanal=sigla.replace('SPORTTV 1-','SPTV1').replace('SPORTTV 2-','SPTV2').replace('SPORTTV 3-','SPTV3').replace('SPORTTV 4-','SPTV4').replace('SPORTTV 5-','SPTV5').replace('SPORTTV LIVE-','SPTVL').replace('Discovery Channel-','DISCV').replace('AXN Black-','AXNBL').replace('AXN White-','AXNWH').replace('FOX Crime-','FOXCR').replace('FOX Life-','FLIFE').replace('FOX Movies-','FOXM').replace('Eurosport-','EURSP').replace('Hollywood-','HOLLW').replace('Canal Panda-','PANDA').replace('Benfica TV 1-','SLB').replace('Benfica TV 2-','SLB2').replace('Porto Canal-','PORTO').replace('SIC K-','SICK').replace('SIC Mulher-','SICM').replace('SIC Noticias-','SICN').replace('SIC Radical-','SICR').replace('TVI24-','TVI24').replace('TVI Ficção-','TVIFIC').replace('Mais TVI-','SEM').replace('Syfy-','SYFY').replace('Odisseia-','ODISS').replace('História-','HIST').replace('National Geographic Channel-','NGC').replace('MTV-','MTV').replace('CM TV-','CMTV').replace('RTP Informação-','RTPIN').replace('Disney Channel-','DISNY').replace('Motors TV-','MOTOR').replace('ESPN America-','SEM').replace('Fashion TV-','FASH').replace('MOV-','SEM').replace('A Bola TV-','ABOLA').replace('Panda Biggs-','BIGGS').replace('RTP 1-','RTP1').replace('RTP 2-','RTP2').replace('RTP Açores-','RTPAC').replace('RTP Madeira-','RTPMD').replace('RTP Memória-','RTPM').replace('Disney Junior-','DISNYJ').replace('RTP Africa-','RTPA').replace('Económico TV-','ETVHD').replace('Chelsea TV-','CHELS').replace('TV Globo-','GLOBO').replace('TV Record-','TVREC').replace('Eurosport 2-','EURS2').replace('Discovery Turbo-','DISCT').replace('Toros TV-','TOROTV').replace('Caça e Pesca-','CAÇAP').replace('Sporting TV-','SCP').replace('TPA Internacional-','TPA') siglacanal=siglacanal.replace('-','') dia= horaportuguesa(True) diaseguinte= horaportuguesa('diaseguinte') url='http://services.sapo.pt/EPG/GetChannelListByDateIntervalJson?channelSiglas='+siglacanal+'&startDate=' + dia +':01&endDate='+ diaseguinte + ':02' ref=int(0) link=abrir_url(url) titles.append('No ar: %s\n\n[B][COLOR white]Programação:[/COLOR][/B]' % name) programas=re.compile('{"Actor":.+?"Description":"(.+?)".+?"StartTime":".+?-.+?-(.+?) (.+?):(.+?):.+?".+?"Title":"(.+?)"').findall(link) for descprog,dia, horas,minutos, nomeprog in programas: ref=ref+1 if dia==datetime.datetime.now().strftime('%d'): dia='Hoje' else: dia='Amanhã' titles.append('\n[B][COLOR blue]%s %s:%s[/COLOR][/B] - [B][COLOR gold]%s[/COLOR][/B] - %s' % (dia,horas,minutos,nomeprog,descprog)) programacao='\n'.join(titles) try: xbmc.executebuiltin("ActivateWindow(10147)") window = xbmcgui.Window(10147) xbmc.sleep(100) window.getControl(1).setLabel('TV Portuguesa') window.getControl(5).setText(programacao) except: pass
def listasextras(): iptvurl='http://01.gen.tr/HasBahCa_IPTV/' link= clean(abrir_url(iptvurl)) streams=re.compile('<a class="autoindex_a" href="./(.+?)">.+?<td class="autoindex_td_right">.+?</td.+?td class="autoindex_td_right">(.+?)</td>').findall(link) for nomepasta,act in streams: if re.search('.m3u',nomepasta): titulo=nomepasta.replace('.m3u','').replace('_',' ').title() addDir("[B]%s[/B] (act.%s)" % (titulo,act[2:-2]),iptvurl + nomepasta,5,tvporpath + art + 'listas-ver2.png',1,'',True)
def versao_disponivel(): try: link=abrir_url('http://fightnight-xbmc.googlecode.com/svn/addons/fightnight/plugin.video.tvpor/addon.xml') match=re.compile('name="TV Portuguesa"\r\n version="(.+?)"\r\n provider-name="fightnight">').findall(link)[0] except: ok = mensagemok('TV Portuguesa','Addon não conseguiu conectar ao servidor','de actualização. Verifique a situação.','') match='Erro. Verificar origem do erro.' return match
def radioslocais(): link= clean(abrir_url(RadiosURL)) #addDir('Pesquisar (exclui nacionais)',RadiosURL + '?distrito=0&concelho=0&tipo=0&text=',16,'',1,'',True) distritos=re.compile('id="DirectorioPesquisa1_ddlDistritos">(.+?)</select>').findall(link)[0] distritos=distritos.replace('<option value="0"></option>','<option value="0">Todos as rádios locais</option>') lista=re.compile('<option value="(.+?)">(.+?)</option>').findall(distritos) for iddistrito,nomedistrito in lista: addDir(nomedistrito,RadiosURL + '?distrito=' + iddistrito + '&concelho=0&tipo=0',24,'',len(lista),'',True) xbmc.executebuiltin("Container.SetViewMode(501)")
def radios(): addDir('[COLOR blue][B]Radios Locais[/B][/COLOR]','nada',20,tvporpath + art + 'radios-v1.png',1,'',True) addLink("",'','') link= clean(abrir_url(RadiosNacionaisURL)) nacionais=re.compile('<div class="radiostation boxgrid">(.+?)</div>').findall(link) for radioindividual in nacionais: radiosnacionais=re.compile('<a href="http://www.radioonline.com.pt/#(.+?)".+?<img.+?src="(.+?)".+?alt="(.+?)"').findall(radioindividual) for idradio,imagemradio,nomeradio in radiosnacionais: nomeradio=nomeradio.replace('Radio ','') addDir(nomeradio,idradio,21,imagemradio,len(radiosnacionais),'',False)
def listar_radios(name, url): link = clean(abrir_url(url)) radios = re.compile( '<td><a href="/portalradio/conteudos/ficha/.+?radio_id=(.+?)">(.+?)</a></td><td>(.+?)</td>.+?<td align="center">' ).findall(link) for idradio, nomeradio, concelho in radios: addDir( '[B]' + nomeradio + '[/B] (' + concelho + ')', RadiosURL + 'Sintonizador/?radio_id=' + idradio + '&scope=0', 21, 'http://www.radio.com.pt/APR.ROLI.WEB/Images/Logos/' + idradio + '.gif', len(radios), '', False) xbmc.executebuiltin("Container.SetViewMode(501)") paginasradios(url, link)
def infocanal(siglacanal): if siglacanal == 'SEM': print "Canal sem programacao." return False try: dia = horaportuguesa(True) diaseguinte = horaportuguesa('diaseguinte') url = 'http://services.sapo.pt/EPG/GetChannelListByDateInterval?channelSiglas=' + siglacanal + '&startDate=' + dia + ':01&endDate=' + diaseguinte + ':02' link = clean(abrir_url(url)) return link except: print "Nao conseguiu capturar programacao." return False
def versao_disponivel(): try: link = abrir_url( 'http://fightnight-xbmc.googlecode.com/svn/addons/fightnight/plugin.video.tvpor/addon.xml' ) match = re.compile( 'name="TV Portuguesa"\r\n version="(.+?)"\r\n provider-name="fightnight">' ).findall(link)[0] except: ok = mensagemok('TV Portuguesa', 'Addon não conseguiu conectar ao servidor', 'de actualização. Verifique a situação.', '') match = 'Erro. Verificar origem do erro.' return match
def radios(): addDir('[COLOR blue][B]Radios Locais[/B][/COLOR]', 'nada', 20, tvporpath + art + 'radios-v1.png', 1, '', True) addLink("", '', '') link = clean(abrir_url(RadiosNacionaisURL)) nacionais = re.compile( '<div class="radiostation boxgrid">(.+?)</div>').findall(link) for radioindividual in nacionais: radiosnacionais = re.compile( '<a href="http://www.radioonline.com.pt/#(.+?)".+?<img.+?src="(.+?)".+?alt="(.+?)"' ).findall(radioindividual) for idradio, imagemradio, nomeradio in radiosnacionais: nomeradio = nomeradio.replace('Radio ', '') addDir(nomeradio, idradio, 21, imagemradio, len(radiosnacionais), '', False)
def p_todos(): if selfAddon.getSetting("prog-lista3") == "false": return '' else: try: dia= horaportuguesa(True) listacanais='RTP1,RTP2,SIC,TVI,SPTV1,SPTV2,SPTV3,SPTV4,SPTV5,SLB,SLB2,PORTO,CMTV,RTPIN,SICK,SICM,SICN,SICR,TVI24,TVIFIC,HOLLW,AXN,AXNBL,AXNWH,FOX,FOXCR,FLIFE,FOXM,SYFY,DISNY,PANDA,MOTOR,DISCV,ODISS,HIST,NGC,EURSP,FASH,VH1,MTV,ABOLA,RTPAC,RTPA,RTPM,RTPMD,BIGGS,ETVHD,DISNYJ,CHELS,CAÇAP,TOROTV,DISCT,GLOBO,TVREC,EURS2,SCP,TPA,EURN,ARTV,TRACE' url='http://services.sapo.pt/EPG/GetChannelListByDateInterval?channelSiglas='+listacanais+'&startDate=' + dia +':01&endDate='+ dia + ':02' link= clean(abrir_url(url,erro=False)) listas=re.compile('<Sigla>(.+?)</Sigla>.+?<Title>(.+?)</Title>.+?<Description>(.+?)</Description>').findall(link) canais={} for nomecanal, nomeprog, descricao in listas: canais[nomecanal]={'nomeprog':'(' + nomeprog + ')','descprog':descricao} return canais except: pass
def radioslocais(): link = clean(abrir_url(RadiosURL)) #addDir('Pesquisar (exclui nacionais)',RadiosURL + '?distrito=0&concelho=0&tipo=0&text=',16,'',1,'',True) distritos = re.compile( 'id="DirectorioPesquisa1_ddlDistritos">(.+?)</select>').findall( link)[0] distritos = distritos.replace( '<option value="0"></option>', '<option value="0">Todos as rádios locais</option>') lista = re.compile('<option value="(.+?)">(.+?)</option>').findall( distritos) for iddistrito, nomedistrito in lista: addDir(nomedistrito, RadiosURL + '?distrito=' + iddistrito + '&concelho=0&tipo=0', 24, '', len(lista), '', True) xbmc.executebuiltin("Container.SetViewMode(501)")
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 obter_lista(name,url): #GA("None",name) titles = []; ligacao = []; thumb=[] link=abrir_url(url) if re.search('.m3u',url) or re.search('#EXTM3U',link): listas= parseM3U(url,link) else: link2= clean(link) listas=re.compile('<title>(.+?)</title>(.+?)<thumbnail>(.+?)</thumbnail>').findall(link2) for nomecanal,streams,thumbcanal in listas: if re.search('<link>',streams): streams2=re.compile('<link>(.+?)</link>').findall(streams) else: streams2=[] streams2.append(streams)#ugly for rtmp in streams2: # if re.search('$doregex',rtmp): # #parametros=re.compile('<regex></regex>').findall(rtmp) # doRegexs = re.compile('\$doregex\[([^\]]*)\]').findall(rtmp) # for k in doRegexs: # # if k in regexs: # m = regexs[k] # #if m['page'] in cachedPages: # # link = cachedPages[m['page']] # #else: # page=re.compile('<page>(.+?)</page>').findall(streams2)[0] # req = urllib2.Request(page) # req.add_header('User-Agent', user_agent) # if re.search('<referer>',streams2): # referer=re.compile('<referer>(.+?)</referer>').findall(streams2)[0] # req.add_header('Referer', referer) # response = urllib2.urlopen(req) # link = response.read() # response.close() # expres=re.compile("""<expres>'file':'([^']*)<expres>""").findall(streams2)[0] # reg = re.compile(expres).search(link) # rtmp = url.replace("$doregex[" + k + "]", reg.group(1).strip()) if name=='[B][COLOR white]Eventos[/COLOR][/B] (Cesarix/Rominhos)': titles.append(nomecanal) ligacao.append(rtmp) thumb.append(thumbcanal) else: addCanal(nomecanal,rtmp,17,thumbcanal,len(listas),'') xbmcplugin.setContent(int(sys.argv[1]), 'Movies') if name=='[B][COLOR white]Eventos[/COLOR][/B] (Cesarix/Rominhos)': if len(ligacao)==0: ok=mensagemok('TV Portuguesa', 'Sem eventos disponiveis.'); return else: if len(ligacao)==1: index=0 else:index = xbmcgui.Dialog().select('Escolha o servidor', titles) if index > -1: urlescolha=ligacao[index] nomecanal=titles[index] #thumb123=thumbcanal[index] #print thumb123 comecarvideo(urlescolha,nomecanal,'listas',False,thumb=tvporpath + art + 'vercanais-ver2.png')
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 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)