PureBasic

Forums PureBasic
Nous sommes le Mar 23/Juil/2019 14:28

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 5 messages ] 
Auteur Message
 Sujet du message: Récupération de liste de radios (Nom + Url)
MessagePosté: Sam 01/Déc/2018 15:55 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 8705
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 :mrgreen:

Code:
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
; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////


_________________
~~~~Règles du forum ~~~~
.: Ar-S :. Tour + portable W10 x64 PB 5.4x / 5.6x
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
RESIZER GOLD : Mon logiciel de redimensionnement par lot 100% PB


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Récupération de liste de radios (Nom + Url)
MessagePosté: Sam 01/Déc/2018 18:11 
Hors ligne

Inscription: Sam 08/Fév/2014 15:19
Messages: 1579
Version regex si on veut pas s'embêter avec les FindString :P
(en supposant que le fichier est déjà chargé)

Code:
ReadFile(0, "FR - - France - V.2018-03 - PC.xspf")
While Not Eof(0)
    Txt$ = ReadString(0, #PB_File_IgnoreEOL)
Wend   
CloseFile(0)

If CreateRegularExpression(0,"<location>(.+?)</location>.+?<title>(.+?)</title>", #PB_RegularExpression_DotAll)
    If ExamineRegularExpression(0, Txt$)
        While NextRegularExpressionMatch(0)
            Debug ""
            Debug RegularExpressionGroup(0,1)
            Debug RegularExpressionGroup(0,2)
        Wend
    EndIf
EndIf

FreeRegularExpression(0)

:wink:


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Récupération de liste de radios (Nom + Url)
MessagePosté: Sam 01/Déc/2018 19:04 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 23/Sep/2006 18:32
Messages: 6638
Localisation: Isere
Marche nickel, merci du partage ARS 8)

@Marc
Pfffff....les "raiguex" me blasent :|
Merci aussi pour le code de ARS lavé à 90° à la machine :mrgreen: et qui marche encore 8O

_________________
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Récupération de liste de radios (Nom + Url)
MessagePosté: Sam 01/Déc/2018 21:38 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 8705
Oui les regex je suis pas fan non plus malgré leur intérêt certain(e)s.
Tous les chemins mènent à la ROM eux à Rome ;)

_________________
~~~~Règles du forum ~~~~
.: Ar-S :. Tour + portable W10 x64 PB 5.4x / 5.6x
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
RESIZER GOLD : Mon logiciel de redimensionnement par lot 100% PB


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Récupération de liste de radios (Nom + Url)
MessagePosté: Jeu 06/Déc/2018 11:09 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 23/Sep/2006 18:32
Messages: 6638
Localisation: Isere
En fait… par "blasent" je veux dire que c'est un truc de ouf, d'une puissance incroyable, mais tellement compliquées que ça me blase de savoir que jamais je ne pourrais, ou aurais le courage de les appréhender :oops:
En fait, j'aimerais être FAN, pour reprendre ton expression, mais pourquoi pas être FAN de la flagellation ou tout autre "joyeuserie" du même type :mrgreen:

Image

En fait elles me font penser à un de ces heureusement pas trop nombreux trucs dont l'ASM ou le C font aussi partie. :|

Etre en admiration, voir même à genou devant quelque chose ou quelqu'un, tout en sachant qu'il restera à jamais hors de sa portée c'est blasant au final. :|
C'est un peu le nirvana qui recule au fur et à mesure que l'on avance

Image

Et en parlant de personnes vénérables, … je ne sais pas pourquoi une parmi tant d'autres, me vient immédiatement à l'esprit lorsque je mesure mon admiration pour elle, et ceci depuis un très grand nombre d'années déjà 8)
Et particulièrement lorsque j'écris sur un site "bleu" :mrgreen:

_________________
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 5 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye