Récupération de liste de radios (Nom + Url)
Publié : sam. 01/déc./2018 15:55
Yop.
Pour les amateurs de lecteur de webradios...
Je me suis amusé à faire un petit parser qui permet de récupérer toute la liste des web radios contenues dans le fichier "Télécharger le fichier VLC - PC" de cette page
http://fluxradios.blogspot.com/2017/07/vlc-france.html
Rien n'est ecrit sur le disque dur.
J'ai créé cette routine de façon à permettre de parser d'autres listes XML (ici fichier xspf) du moment ou vous connaissez les balises adéquates.
EnJoYeZ
Pour les amateurs de lecteur de webradios...
Je me suis amusé à faire un petit parser qui permet de récupérer toute la liste des web radios contenues dans le fichier "Télécharger le fichier VLC - PC" de cette page
http://fluxradios.blogspot.com/2017/07/vlc-france.html
Rien n'est ecrit sur le disque dur.
J'ai créé cette routine de façon à permettre de parser d'autres listes XML (ici fichier xspf) du moment ou vous connaissez les balises adéquates.
EnJoYeZ
Code : Tout sélectionner
InitNetwork()
Structure Radio
Location.s
Title.s
EndStructure
Global NewMap Radios.Radio()
Procedure MapRadios(BaliseLOC.s,BaliseTITRE.s,AdresseFichier.s)
; by AR-S // 01/12/2018 // PB 5.62 x64
; v1.0
; Récupérer les listes des radios du fichier "Télécharger le fichier VLC - PC "
; de la page : http://fluxradios.blogspot.com/2017/07/vlc-france.html
; La routine devrait permettre de parser d'autres listes XML du moment ou vous connaissez les balises
Protected B_LOC_OUVERTE.s, B_LOC_FERMEE.s, B_TITRE_OUVERTE.s, B_TITRE_FERMEE.s, Contenu.s, NBR_Radio, DepartCurseur, FinCurseur
; Petite modification de lien au cas ou ce soit du dropbox...
If FindString(AdresseFichier.s,"dl=0")
AdresseFichier.s = ReplaceString(AdresseFichier.s,"dl=0","dl=1" )
EndIf
; Récupération du fichier
*Buffer = ReceiveHTTPMemory(AdresseFichier.s)
If *Buffer
Taille = MemorySize(*Buffer)
Contenu.s = PeekS(*Buffer, Taille, #PB_UTF8|#PB_ByteLength)
FreeMemory(*Buffer)
; Création des balises
B_LOC_OUVERTE.s = BaliseLOC.s
B_LOC_FERMEE.s = ReplaceString(BaliseLOC.s,"<","</")
B_TITRE_OUVERTE.s = BaliseTITRE.s
B_TITRE_FERMEE.s = ReplaceString(BaliseTITRE.s,"<","</")
; Traitement des balise et mappage des radios (url / titre)
NBR_Radio = CountString( Contenu.s, B_LOC_FERMEE )
Debug "Il y a " + Str(NBR_Radio) + " dans la liste"
For i = 1 To NBR_Radio
Name$ = "Radio"+Str(i)
Debug Name$
DepartCurseur = FindString(Contenu,B_LOC_OUVERTE,DepartCurseur)
FinCurseur = FindString(Contenu,B_LOC_FERMEE,DepartCurseur + Len(B_LOC_OUVERTE) )
Radios(Name$)\Location = Mid( Contenu,DepartCurseur+Len(B_LOC_OUVERTE), FinCurseur-(DepartCurseur+Len(B_LOC_OUVERTE) ))
Debug "LOCATION : " + Radios(Name$)\Location
DepartCurseur = FinCurseur
DepartCurseur = FindString(Contenu,B_TITRE_OUVERTE,DepartCurseur)
FinCurseur = FindString(Contenu,B_TITRE_FERMEE,DepartCurseur + Len(B_TITRE_OUVERTE) )
Radios(Name$)\Title = Mid(Contenu,DepartCurseur+Len(B_TITRE_OUVERTE), FinCurseur-(DepartCurseur+ Len(B_TITRE_OUVERTE) ))
Debug "TITLE : " + Radios(Name$)\Title
DepartCurseur = FinCurseur
Debug ""
Next
Retour = 1
Else
Debug "Le téléchargement a échoué"
Retour = 0
EndIf
ProcedureReturn Retour
EndProcedure
; /////////////// MAIN CODE /////////////////////////////////////////////////////////////////////////////////////
url$ = "https://www.dropbox.com/s/jed19lhhj9s3ajd/FR%20-%20-%20France%20-%20V.2018-03%20-%20PC.xspf?dl=0"
If MapRadios("<location>","<title>", url$) = 1
Debug "Succes"
Else
Debug "LoOserie"
EndIf
;Example 2 - PODCAST RADIO FRANCE
url$ = "http://radiofrance-podcast.net/podcast09/rss_16744.xml"
If MapRadios("<guid>","<title>", url$) = 1
Debug "Succes"
Else
Debug "LoOserie"
EndIf
; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////