*********************************************************************
*Radios-link-mania - programa para buscar rádios;
*Por Fabiano Ferreira;
*Versão 2020.1 em 27/05/2020;
*********************************************************************

seja $versao "2024.1"

@inicio
seja $pagina_atual 0
seja $escritos 0
seja $fontes_encontradas 0
seja $fontes_nao_encontradas 0
seja $txt_temp "c:\radioslinkmania\temp\radios.txt"
seja o ""
seja $nr 0
remove $txt_temp &
chama @entrada
chama @pesquisa
se $encontradas = 0
escreve mudo "Nenhum resultado foi encontrado."
mensagem "c:\radioslinkmania\som\nenhum_resultado_foi_encontrado.wav"
desvia @inicio
fim se
escreve mudo $encontradas " resultados encontrados"
mensagem "c:\radioslinkmania\som\numero_de_resultados_encontrados.wav"
fala $encontradas
seja $total_encontradas $encontradas
escreve ""
escreve mudo "Aguarde o processamento das informações."
mensagem "c:\radioslinkmania\som\aguarde_o_processamento_das_informacoes.wav"
chama @processa
escreve mudo "Pronto."
mensagem "c:\radioslinkmania\som\pronto.wav"
escreve ""

escreve mudo "Mostrando resultado."
mensagem "c:\radioslinkmania\som\mostrando_resultado.wav"
chama @exibe_informacoes
desvia @inicio

*

*entrada
@entrada
seja $aguarda 0
dir troca "c:\radioslinkmania"
escreve mudo "Radios-link-mania - versão "$versao
mensagem "c:\radioslinkmania\som\radios_link_mania_versao.wav"
fala $versao
escreve ""
retorna

*pesquisa
@pesquisa
escreve mudo "Entre com os dados para a pesquisa de rádios:"
mensagem "c:\radioslinkmania\som\entre_com_os_dados_para_a_pesquisa_de_radios.wav"
le $abuscar
se $abuscar = ""
escreve mudo "Até logo."
mensagem "c:\radioslinkmania\som\ate_logo.wav"
termina mudo
fim se
seja $suapesquisa $abuscar
escreve ""
escreve mudo "Aguarde."
mensagem "c:\radioslinkmania\som\aguarde.wav"
*faz a pesquisa no radios.com.br
seja $arqtemp "temp\radios.html"
seja $baseurl "https://www.radios.com.br/busca?q="
seja $filtro "&qfilter=completo"
seja $recurso $baseurl

ansiparautf8 $abuscar
http $abuscar
substitui $abuscar "%20" "+"
concatena $recurso $abuscar
concatena $recurso $filtro
seja $recurso_cp $recurso
@acao_traz_pesquisa
seja $ua "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36"
remove $arqtemp &
seja $comando "wget -O """
concatena $comando $arqtemp
concatena $comando """ --user-agent="""
concatena $comando $ua
concatena $comando """ --no-check-certificate "
concatena $comando $recurso
executa $comando &&
espera 1
existeprog "wget.exe" x
enquanto x = 1
espera ms 500
existeprog "wget.exe" x
fim enquanto

se $pagina_atual > 0 retorna

abre #1 $arqtemp
le #1 $encontradas
checa c
enquanto c = 0
se $encontradas *=* ">Mostrando " desvia @achouresultado
le #1 $encontradas
checa c
fim enquanto
se c = 1
Escreve "Erro no aplicativo radioslinkmania."
escreve "Não foi possível obter o valor da variável $encontradas."
escreve "Encerrando..."
espera 5
fecha #1
termina mudo
fim se
@achouresultado
fecha #1

seja p pos " de " $encontradas
soma p 4
seja t pos "resultados" $encontradas
subtrai t 2
copia $encontradas $encontradas p t
retorna
*

@processa
chama @acao_definir_total_paginas
chama @acao_tratar_dados_radios
chama @obtem_fonte
retorna

@acao_definir_total_paginas
se $encontradas <= 22
seja $total_paginas 1
senão
seja $total_paginas $encontradas
divide $total_paginas 22
seja $resto $total_paginas
multiplica $resto 22
seja $resto ($encontradas-$resto)
se $resto > 0 soma $total_paginas 1
subtrai $total_paginas 1
fim se
retorna

@acao_tratar_dados_radios
seja m ""
seja $segmentoradio ""

abre #1 $arqtemp
le #1 l
checa c
enquanto c = 0
concatena m l
le #1 l
checa c
fim enquanto
fecha #1

seja p pos "panel-body" m
seja t tamanho m
copia m m p t
seja p pos "resultados-sidebar" m
copia m m 1 p

 abre #2 $txt_temp &
se $encontradas > 22
seja n 22
seja $encontradas ($encontradas -22)
senão
seja n $encontradas
fim se
repete r n
seja p pos "alt=" m
soma p 5
seja t tamanho m
copia m m p t
seja p pos """" m
subtrai p 1
copia $nomeradio m 1 p

seja p pos "btn-primary"" href=" m
soma p 19
seja t tamanho m
copia m m p t
seja p pos """" m
subtrai p 1
copia $urlradio m 1 p

seja p pos "/" $urlradio
enquanto p > 0
soma p 1
seja t tamanho $urlradio
copia $urlradio $urlradio p t
seja p pos "/" $urlradio
fim enquanto
seja x "http://www.radios.com.br/play/"
concatena x $urlradio
seja $urlradio x
utf8paraansi $nomeradio
escreve #2 $nomeradio"="$urlradio
fim repete
fecha #2
se $total_encontradas <= 22 retorna
seja $recurso $recurso_cp
soma $pagina_atual 1
se $pagina_atual > $total_paginas retorna
concatena $recurso "&pg="
concatena $recurso $pagina_atual
*bipa
toca "c:\radioslinkmania\som\processamento.wav"&
chama @acao_traz_pesquisa
desvia @acao_tratar_dados_radios

@obtem_fonte
seja $informacoes "c:\radioslinkmania\temp\radios.info"
remove $informacoes &
abre #1 $informacoes &
abre #2 $txt_temp
le #2 l
checa c
enquanto c = 0
seja p pos "=" l
subtrai p 1
copia n l 1 p
escreve #1 n"="&
chama @traz_fonte
escreve #1 l
toca "c:\radioslinkmania\som\processamento.wav"&
le #2 l
checa c
fim enquanto
fecha #2
fecha #1
retorna

@traz_fonte
seja $fontetemp "c:\radioslinkmania\temp\fonte.temp"
remove $fontetemp &

seja $comando "wget -O """
concatena $comando $fontetemp
concatena $comando """ --user-agent="""
concatena $comando $ua
concatena $comando """ --no-check-certificate "
seja p pos "=" l
soma p 1
seja t tamanho l
copia l l p t
concatena $comando l
executa $comando &&
espera 1
existeprog "wget.exe" x
enquanto x = 1
espera ms 500
existeprog "wget.exe" x
fim enquanto

abre #3 $fontetemp
le #3 s
checa c
enquanto c = 0
se s *=* "src:  """ desvia @achou_fonte
le #3 s
checa c
fim enquanto
@achou_fonte
fecha #3
se c = 0
seja p pos "src:  " s
soma p 7
seja t tamanho s
copia s s p t
seja p pos """" s
subtrai p 1
copia s s 1 p
seja l s
seja $achoufonte "+"
soma $fontes_encontradas 1
senão
soma $fontes_nao_encontradas 1
fim se
retorna

@exibe_informacoes
seja $progleitor "c:\winvox\edivox.exe /L "
concatena $progleitor $informacoes
executa $progleitor
retorna
