Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


TCL Webradio - Radionomy
#31
 
(22/07/2014, 10:05)FleuryK Wrote: Ligne 45 :

Code:
regexp -all -- {<radioname>(.+)?</radioname} $html null radioname
La balise est mal fermé.

Code:
regexp -all -- {<radioname>(.+)?</radioname>} $html null radioname
Ici, la balise radioname est bien fermé.

Ca ne change rien : il ne s'agit pas d'une balise qui doit être équilibrée mais d'une expression régulière. Le résultat sera le même, sauf dans le cas peu probable où il existerait une autre balise dont le nom commencerait aussi par </radioname.
 
Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
#32
Bonjour MenzAgitat,

En HTML (la on est en dehors du TCL), une balise doit être toujours fermée. Exemple : <head></head>.
Donc en TCL, on doit avoir la même chose, une balise ouvrante, ici c'est <radioname> et une balise fermante, ici c'est </radioname>.

En version HTML, si on oublie de refermer une balise, on a pas le résultat attendu. Et une balise non fermée est considérée comme une faute sur le W3C.

Certaines balises HTML sont orphelines, c'est à dire qu'ils n'ont pas de balise fermante. Exemple : <br />.

Je ne dis pas ça par méchanceté (au contraire je suis calme) ni pour autre raison, mais quand je vois une balise mal fermé, je corrige aussitôt.

Cordialement.

-----

EDIT : Pour revenir au sujet, ça doit être nouveau chez radionomy les &eacute; sont remplacés par ce caractère &#xe9;

Code source :

Code:
<title>T&#xe9;l&#xe9;phone 3</title>
Visuellement :

Code:
<title>Téléphone 3</title>
J'ai trouvé une page qui explique ceci : http://www.princexml.com/doc/8.1/characters/
#33
(22/07/2014, 16:15)FleuryK Wrote: Donc en TCL, on doit avoir la même chose, une balise ouvrante, ici c'est <radioname> et une balise fermante, ici c'est </radioname>.
Sauf que là ce n'est pas du TCL mais une expression régulière.
Elle marcherait tout aussi bien avec:

Code:
regexp -all -- {name>(.+)?</radio} $html null radioname
Ou même, pour jouer:

Code:
regexp -all -- {<radioname>([^<]+)?<} $html null radioname
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#34
Bonjour,

Eh bien, j'aurais appris quelque chose.

J'ai ajouté les nouvelles balises comme &#xe9; dans le script et pour le moment, ça à l'air de fonctionner correctement.
#35
Toi qui semble être un puriste du html et consorts, ce sont des entités, pas des balises :)
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#36
Bonsoir,

Exactement. Le HTML c'est mon dada ;)

http://tools.eggdrop.fr/pasteme/view/79c872cc => Ajout de nouveaux caractères HTML comme &#xe9;, ...
#37
 
Plutôt qu'ajouter une par une toutes les entités html au format hexadécimal, tu pourrais faire comme ça pour les convertir toutes d'un seul coup :


tcl
while {
	[regexp {&#x([[:alnum:]]{2});} $TAVARIABLE {} value]
} {
	regsub {&#x([[:alnum:]]{2});} $TAVARIABLE [binary format H* $value] TAVARIABLE
}


Il faudra évidemment remplacer TAVARIABLE par le nom de la variable qui contient le texte à convertir (et n'ajoute pas un $ devant le dernier TAVARIABLE, il n'en comporte pas volontairement).
 
Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
#38
Bonjour,

J'ai le Tcl que CrazyCat à publié mais j'ai un erreur.

La diffusion des messages s'arrête et je suis obligé de faire !titre off et !titre on pour relancer.

voici le retour d'erreur que j'ai :



Code:
-----> can not find channel named "sock10"
----->     while executing
-----> "eof $sock"
Tcl error in script for 'timer2548':
can't read "title": no such variable
-----> can't read "title": no such variable
----->     while executing
-----> "if { $title != $::memo } {
-----> set ::memo $title
-----> putserv "PRIVMSG $::rchan :En cours sur \002 .::. Etoile-Fm .::. \002: \002[htmlentities_decode $title]\0..."
----->     (procedure "radio:titre" line 9)
-----> invoked from within
-----> "radio:titre"
#39
C'est que la balise title n'est pas dans le XML ou bien pas là où le script l'attend.
Peut-être que le flux est changé. Il faudrait que tu ouvres l'URL appelée dans un navigateur pour vérifier la structure

Envoyé de mon SM-G928F en utilisant Tapatalk
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#40

Code:
<tracks>
<radioname>nom de radio</radioname>
<rank>0</rank>
<isradionomy>1</isradionomy>
<radurl>Url</radurl>
<track>
<uniqueid>info</uniqueid>
<title>Funky Town1980</title>
<artists>LIPPS INC</artists>
<starttime>2016-03-19 19:56:27.667</starttime>
<playduration>231531</playduration>
<current>1</current>
</track>
</tracks>
Voila ce que ça me donne
#41
Au moment de l'erreur aucune balise ne change sur la page XML, je viens de vérifier de nouveau.
#42
Tu devrais essayer:

tcl
putlog $html

après le

tcl
set html [::http::data $page]


Je pense que ton xml vu par l'eggdrop n'est pas celui que toi tu vois par ton navigateur.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#43
ça me fais toujours la même erreur.
#44
Oui, mais tu as quoi en partyline ?
Le putlog devrait te montrer le contenu de la page que tu ouvres, donc le xml.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#45

Code:
    <tracks>
    <radioname>nom de la radio</radioname>
        <rank>0</rank>
    <isradionomy>1</isradionomy>
        <radurl>URL</radurl>
        <track>
        <uniqueid>Chiffre</uniqueid>
        <title>Strike It Up (1990)</title>
            <artists>Black Box</artists>
            <starttime>2016-03-24 14:09:56.763</starttime>
            <playduration>311492</playduration>
            <current>1</current>
</track>

Tcl error in script for 'timer4509':
can't read "title": no such variable
-----> can't read "title": no such variable
----->     while executing
-----> "if { $title != $::memo } {
-----> set ::memo $title
-----> putserv "PRIVMSG $::rchan :En cours sur \002 .::. Etoile-Fm .::. \002: \002[htmlentities_decode $title]\0..."
----->     (procedure "radio:titre" line 10)
----->     invoked from within
-----> "radio:titre"

Voilà le retour que ça me donne !


Possibly Related Threads…
Thread Author Replies Views Last Post
  Existe t'il un tcl pour programme de diffusion webradio KeeViiNou 4 5,024 22/09/2012, 09:21
Last Post: KeeViiNou
  Besoin d'aide pour TCL radionomy JulienRoad 9 8,922 30/05/2012, 21:59
Last Post: CrazyCat
  tcl pour radionomy cecile155 14 8,493 10/01/2012, 13:14
Last Post: CrazyCat
  TCL WebRadio python33 20 12,855 19/07/2011, 21:31
Last Post: CrazyCat
  aide création script tcl webradio et divers cecile155 12 7,991 29/12/2010, 17:11
Last Post: CrazyCat

Forum Jump:


Users browsing this thread: 1 Guest(s)