23/05/2012, 15:37
Bonjour à tous,
J'ai trouvé des morceaux de code par-ci par-là pour coder une TCL pour les webradio radionomy.
Mon but est de faire dans le même principe que la TCL shoutcast (avec les commandes !titre !dedi etc).
Pour l'instant la TCL ne fait qu'afficher le nom de la radio + le titre du son + l'auteur quand on lui demande ( !titre )
Voici le code source :
Je n'ai jamais codé de TCL et j'aimerais, pour le moment, modifier celle-ci de sorte que selon le salon où l'on tape !titre , l'eggy donne le titre de la radio adéquate.
Je ne sais pas si je suis très clair donc pour résumer, pour la même TCL :
- Sur #powersong : !titre donne : En cours sur .::. Powersong-radio .::. : Dreamin¹ - par Youssoupha feat Indila et Skalpovich
- Sur #pouet : !titre donne : En cours sur .::. Pouet .::. : blabla - par blabla
- Etc etc.
je vois un peu le truc (faire un set des différentes URL, récupérer dans une variable le chan d'où la commande a été lancée et en fonction, putserv sur le bon chan) mais je ne sais pas du tout comment faire.
Si quelqu'un pouvait m'aider, ça serait très sympa.
Cordialement
J'ai trouvé des morceaux de code par-ci par-là pour coder une TCL pour les webradio radionomy.
Mon but est de faire dans le même principe que la TCL shoutcast (avec les commandes !titre !dedi etc).
Pour l'instant la TCL ne fait qu'afficher le nom de la radio + le titre du son + l'auteur quand on lui demande ( !titre )
Voici le code source :
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 http
proc 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"
}
proc htmlentities_decode { text } {
regsub -all "<" $text "<" text
regsub -all ">" $text ">" text
regsub -all "&" $text "et" text
regsub -all """ $text "" text
regsub -all "Á" $text "Ã" text
regsub -all "Â" $text "Â" text
regsub -all "À" $text "À" text
regsub -all "Å" $text "Å" text
regsub -all "Ã" $text "Ã" text
regsub -all "Ä" $text "Ä" text
regsub -all "Ç" $text "Ç" text
regsub -all "É" $text "É" text
regsub -all "Ê" $text "Ê" text
regsub -all "È" $text "È" text
regsub -all "Í" $text "Ã" text
regsub -all "Î" $text "Î" text
regsub -all "Ì" $text "í" text
regsub -all "Ï" $text "Ã" text
regsub -all "Ñ" $text "Ñ" text
regsub -all "Ó" $text "Ó" text
regsub -all "Ô" $text "Ô" text
regsub -all "Ò" $text "Ò" text
regsub -all "Ø" $text "Ø" text
regsub -all "Õ" $text "Õ" text
regsub -all "Ö" $text "Ö" text
regsub -all "Ú" $text "Ê" text
regsub -all "Û" $text "Û" text
regsub -all "Ù" $text "Ù" text
regsub -all "Ü" $text "í" text
regsub -all "Ý" $text "Ã" text
regsub -all "á" $text "á" text
regsub -all "æ" $text "ae" text
regsub -all "œ" $text "oe" text
regsub -all "à" $text "à" text
regsub -all -nocase "à" $text "à" text
regsub -all "å" $text "å" text
regsub -all "ã" $text "ã" text
regsub -all "ä" $text "ä" text
regsub -all "ç" $text "ç" text
regsub -all -nocase "ç" $text "ç" text
regsub -all "é" $text "é" text
regsub -all -nocase "é" $text "é" text
regsub -all "ë" $text "ë" text
regsub -all "í" $text "í" text
regsub -all "è" $text "è" text
regsub -all -nocase "è" $text "è" text
regsub -all "ì" $text "ì" text
regsub -all "ï" $text "ï" text
regsub -all "ñ" $text "ñ" text
regsub -all "ó" $text "ó" text
regsub -all "ô" $text "ô" text
regsub -all -nocase "ô" $text "ô" text
regsub -all "â" $text "â" text
regsub -all -nocase "â" $text "â" text
regsub -all "ê" $text "ê" text
regsub -all -nocase "ê" $text "ê" text
regsub -all "ò" $text "ò" text
regsub -all "î" $text "î" text
regsub -all "õ" $text "õ" text
regsub -all "ö" $text "ö" text
regsub -all "ú" $text "ú" text
regsub -all "û" $text "û" text
regsub -all -nocase "û" $text "û" text
regsub -all "ù" $text "ù" text
regsub -all -nocase "ù" $text "ù" text
regsub -all "ü" $text "ü" text
regsub -all "ÿ" $text "ÿ" text
regsub -all "Æ" $text "AE" text
regsub -all "Œ" $text "OE" text
regsub -all "®" $text "®" text
regsub -all -nocase "®" $text "®" text
regsub -all "©" $text "©" text
regsub -all -nocase "©" $text "©" text
regsub -all "™" $text "â„¢" text
regsub -all "±" $text "±" text
regsub -all "°" $text "°" text
regsub -all "¹" $text "¹" text
regsub -all "'" $text "¹" text
regsub -all "²" $text "²" text
regsub -all "³" $text "³" text
regsub -all "×" $text "×" text
regsub -all "÷" $text "÷" text
regsub -all "€" $text "euro" text
regsub -all -nocase "«" $text "\"" text
regsub -all -nocase "»" $text "\"" text
return $text
}
Je n'ai jamais codé de TCL et j'aimerais, pour le moment, modifier celle-ci de sorte que selon le salon où l'on tape !titre , l'eggy donne le titre de la radio adéquate.
Je ne sais pas si je suis très clair donc pour résumer, pour la même TCL :
- Sur #powersong : !titre donne : En cours sur .::. Powersong-radio .::. : Dreamin¹ - par Youssoupha feat Indila et Skalpovich
- Sur #pouet : !titre donne : En cours sur .::. Pouet .::. : blabla - par blabla
- Etc etc.
je vois un peu le truc (faire un set des différentes URL, récupérer dans une variable le chan d'où la commande a été lancée et en fonction, putserv sur le bon chan) mais je ne sais pas du tout comment faire.
Si quelqu'un pouvait m'aider, ça serait très sympa.
Cordialement