20/04/2013, 15:26 (Modification du message : 07/03/2016, 16:42 par CrazyCat.)
Bonjour,
CrazyCat avait posté un code fait par ces soins pour radionomy pour récupérer le titre et l'artiste diffusé.
J'ai chercher et rechercher, mais je ne trouve pas une chose.. comment actualité le titre tout seul sans taper "!titre" ( Tout ceux que j'ai modifié sa me faisait planter le TCL. )
Le code :
tcl
bind pub - "!titre" radio:titre
set url "http://api.radionomy.com/currentsong.cfm?radiouid=6d854cc4-bb57-4339-b09f-2e5290a0bfda&apikey=6d854cc4-bb57-4339-b09f-2e5290a0bfda&type=xml"package require httpproc radio:titre { nick uhost handle chan args }{set page [::http::geturl$::url -timeout 3000]set html [::http::data$page]regexp -all -- {<title>(.+)?</title>}$html null title
regexp -all -- {<radioname>(.+)?</radioname}$html null radio
regexp -all -- {<artists>(.+)?</artists>}$html null artist
putserv "PRIVMSG $chan :En cours sur \002 .::. [htmlentities_decode $radio] .::. \002: \002[htmlentities_decode $title]\002 par \002[htmlentities_decode $artist]\002"}
20/04/2013, 18:49 (Modification du message : 20/04/2013, 18:52 par CrazyCat.)
Pour faire ça, il faut ajouter un timer (pour aller récupérer fréquement la page) et annoncer lorsque le titre lu n'est pas le titre mémorisé (donc déjà annoncé).
Voici un exemple (non testé) de script:
tcl
bind pub - "!titre" radio:go
set url "http://api.radionomy.com/currentsong.cfm?radiouid=6d854cc4-bb57-4339-b09f-2e5290a0bfda&apikey=6d854cc4-bb57-4339-b09f-2e5290a0bfda&type=xml"# delay : temps en secondes entre 2 vérifications du titreset delay 60package require httpset radio "off"set rchan ""proc radio:go { nick uhost handle chan args }{if{[llength$args]!= 1}{
putserv "PRIVMSG $chan :Faites !titre [on|off] pour démarrer/arrêter l'annonce du titre"return0}if{[string tolower [lindex$args0]]=="on"}{if{$::radio == "on"}{
putserv "PRIVMSG $chan :L'affichage automatique est déjà en cours"return0}set ::radio"on"set ::rchan$chan
radio:titre
return1}else{if{$::radio!= "on"}{
putserv "PRIVMSG $chan :L'affichage automatique n'est pas en cours"return0}set ::rchan""set ::radio"off"return1}}set memo ""proc radio:titre {}{if{$::radio == "off"}{return0}set page [::http::geturl$::url -timeout 3000]set html [::http::data$page]regexp -all -- {<title>(.+)?</title>}$html null title
regexp -all -- {<radioname>(.+)?</radioname}$html null radio
regexp -all -- {<artists>(.+)?</artists>}$html null artist
if{$title!= $::memo}{set ::memo$title
putserv "PRIVMSG $::rchan :En cours sur \002 .::. [htmlentities_decode $radio] .::. \002: \002[htmlentities_decode $title]\002 par \002[htmlentities_decode $artist]\002"}
utimer $::delay radio:titre
}
Avec ce script, la commande devient donc !titre [on|off] pour activer ou arrêter l'affichage automatique.
20/04/2013, 23:18 (Modification du message : 20/04/2013, 23:24 par Raiding.)
(20/04/2013, 18:49)CrazyCat a écrit : Pour faire ça, il faut ajouter un timer (pour aller récupérer fréquement la page) et annoncer lorsque le titre lu n'est pas le titre mémorisé (donc déjà annoncé).
Voici un exemple (non testé) de script:
tcl
bind pub - "!titre" radio:go
set url "http://api.radionomy.com/currentsong.cfm?radiouid=6d854cc4-bb57-4339-b09f-2e5290a0bfda&apikey=6d854cc4-bb57-4339-b09f-2e5290a0bfda&type=xml"# delay : temps en secondes entre 2 vérifications du titreset delay 60package require httpset radio "off"set rchan ""proc radio:go { nick uhost handle chan args }{if{[llength$args]!= 1}{
putserv "PRIVMSG $chan :Faites !titre [on|off] pour démarrer/arrêter l'annonce du titre"return0}if{[string tolower [lindex$args0]]=="on"}{if{$::radio == "on"}{
putserv "PRIVMSG $chan :L'affichage automatique est déjà en cours"return0}set ::radio"on"set ::rchan$chan
radio:titre
return1}else{if{$::radio!= "on"}{
putserv "PRIVMSG $chan :L'affichage automatique n'est pas en cours"return0}set ::rchan""set ::radio"off"return1}}set memo ""proc radio:titre {}{if{$::radio == "off"}{return0}set page [::http::geturl$::url -timeout 3000]set html [::http::data$page]regexp -all -- {<title>(.+)?</title>}$html null title
regexp -all -- {<radioname>(.+)?</radioname}$html null radio
regexp -all -- {<artists>(.+)?</artists>}$html null artist
if{$title!= $::memo}{set ::memo$title
putserv "PRIVMSG $::rchan :En cours sur \002 .::. [htmlentities_decode $radio] .::. \002: \002[htmlentities_decode $title]\002 par \002[htmlentities_decode $artist]\002"}
utimer $::delay radio:titre
}
Avec ce script, la commande devient donc !titre [on|off] pour activer ou arrêter l'affichage automatique.
Bonjour ou bonsoir (selon l'heure a laquelle vous lirez ce message), étant un nouveau propriétaire d'une webradio chez radionomy et venant de créer mon propre salon, je cherche a mettre un eggdrop sur mon salon afin qu'il dise ce que ma radio diffuse, mais le soucis c'est que je n'y connais absolument rien du tout dans ce domaine, quel eggdrop installer, comment le configurer, ou mettre le ou les codes nécessaire afin qu'il fonctionne, etc.... en un mot comme en cent je suis tout ce qu'il y a de plus nul (je le reconnais et l'avoue sans honte)....donc si une âme charitable voulais bien avoir l’extrême gentillesse de me venir en aide je lui en serais extrêmement reconnaissant..... merci d'avance pour votre ou vos réponses....cordialement PapyPhil
(08/11/2013, 21:16)Lavoi a écrit : Je viens vous demander pourquoi quand je tap !titre on j'ai ce message en ctcp Tcl error [radio:go]: invalid command name "htmlentities_decode"
Avant tout fonctionner normal mais maintenant..
Etrange que ça ait fonctionné avant, à moins que tu n'aies eu une ancienne version du script dans laquelle j'avais pensé à inclure cette procédure.
Tu trouveras une version (pas optimisée du tout) de htmlentities_decode à http://tools.eggdrop.fr/pasteme/view/a2754e90
(08/11/2013, 21:16)Lavoi a écrit : j'ai aussi un soucis dès que j'anime le tcl n'affiche pas les titres est-ce normal ?
Réponds donc à ma question précédente à ce sujet:
(20/10/2013, 15:34)CrazyCat a écrit : Aucune idée. Est-ce que les titres sont toujours présent dans le flux de ta radio ?
Pour être plus explicite, est-ce que lorsque tu passes en animation live, le flux fourni par radionomy contient toujours les titres ? Est-ce qu'il ne contient pas juste quelque chose comme "emission live en cours" ?