<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[Communauté Eggdrop - F.A.Q.]]></title>
		<link>https://forum.eggdrop.fr/</link>
		<description><![CDATA[Communauté Eggdrop - https://forum.eggdrop.fr]]></description>
		<pubDate>Wed, 15 Apr 2026 19:48:01 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[liste, chaines, args...]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1845</link>
			<pubDate>Tue, 16 Dec 2025 15:34:36 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=2">CrazyCat</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1845</guid>
			<description><![CDATA[Ceci fait suite à une conversation sur le canal anglophone #eggdrop.<br />
<br />
Un utilisateur expliquait son souci:<br />
<blockquote class="mycode_quote"><cite>Citation :</cite>(traduction automatique, flemme)<br />
&lt;user&gt; Pour ceux que ça intéresse concernant mon problème Tcl ci-dessus : il semblerait que ma liste « args » soit devenue une liste imbriquée {{a b}}, donc soit la fonction d’origine avait besoin d’une boucle « foreach » supplémentaire pour la parcourir, soit la fonction wrapper devait re-développer sa liste avant de l’utiliser dans la fonction d’origine (ce qui est heureusement facile maintenant avec l’opérateur {*}).</blockquote>
<br />
Le code en question:<br />
<div class="codeblock"><div class="title">tcl<button class="copy">copier</button></div><div class="body"><code><pre class="tcl" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">proc</span> replacehosts <span style="color: black;">&#123;</span>handle args<span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
   setuser <span style="color: #ff3333;">&#36;handle</span> HOSTS
   <span style="color: #ff7700;font-weight:bold;">foreach</span> arg <span style="color: #ff3333;">&#36;args</span> <span style="color: black;">&#123;</span>
      setuser <span style="color: #ff3333;">&#36;handle</span> HOSTS <span style="color: #ff3333;">&#36;arg</span>
   <span style="color: black;">&#125;</span>
<span style="color: black;">&#125;</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> ReplaceHosts <span style="color: black;">&#123;</span>hand idx text<span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
   replacehosts <span style="color: black;">&#91;</span><span style="color: #008000;">lindex</span> <span style="color: #ff3333;">&#36;text</span> <span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span> <span style="color: black;">&#91;</span><span style="color: #008000;">lrange</span> <span style="color: #ff3333;">&#36;text</span> <span style="color: #ff4500;">1</span> end<span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span>
bind dcc n replacehosts ReplaceHosts</pre></code></div></div><br /><br />
<br />
Il y a là de multiples erreurs de compréhension du fonctionnement de TCL.<br />
Tout d'abord, <a href="https://wiki.eggdrop.fr/faq/args" target="_blank" rel="noopener" class="mycode_url">args</a> place dans une <span style="font-weight: bold;" class="mycode_b">liste</span> tous les arguments reçus et non déclarés.<br />
Ensuite, <code class="inline-code">lrange</code> fait un <code class="inline-code">split</code> sur le texte, et donc retourne une liste.<br />
Donc, dans <code class="inline-code">ReplaceHosts</code>, l'appel de replacehosts est équivalent à faire <code class="inline-code">replacehosts &lt;machin&gt; {host1 host2 host3}</code>, et &#36;args contient donc {{host1 host2 host3}}.<br />
<br />
La solution choisie par l'utilisateur est d'utiliser <code class="inline-code">{*}&#36;args</code>, perdant ainsi tout le bénéfice de recevoir une liste. Il pensait aussi à faire un double foreach, qui est une solution encore plus bancale imho.<br />
<br />
La bonne pratique aurait été d'utiliser <code class="inline-code">[join [lrange ...]]</code> pour bien avoir un texte, et maitriser ce qui est passé à la procédure, plutôt que de tripoter la procédure réceptrice en ayant des assertions sur ce qu'elle reçoit.<br />
<br />
Encore une fois, je rappelle qu'en TCL, il y a fort peu de différences entre listes et chaînes, et que cela peut provoquer des choses très étranges. Donc, <span style="font-weight: bold;" class="mycode_b">maîtrisez vos types de données et n'utilisez pas l'un pour l'autre</span>.]]></description>
			<content:encoded><![CDATA[Ceci fait suite à une conversation sur le canal anglophone #eggdrop.<br />
<br />
Un utilisateur expliquait son souci:<br />
<blockquote class="mycode_quote"><cite>Citation :</cite>(traduction automatique, flemme)<br />
&lt;user&gt; Pour ceux que ça intéresse concernant mon problème Tcl ci-dessus : il semblerait que ma liste « args » soit devenue une liste imbriquée {{a b}}, donc soit la fonction d’origine avait besoin d’une boucle « foreach » supplémentaire pour la parcourir, soit la fonction wrapper devait re-développer sa liste avant de l’utiliser dans la fonction d’origine (ce qui est heureusement facile maintenant avec l’opérateur {*}).</blockquote>
<br />
Le code en question:<br />
<div class="codeblock"><div class="title">tcl<button class="copy">copier</button></div><div class="body"><code><pre class="tcl" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">proc</span> replacehosts <span style="color: black;">&#123;</span>handle args<span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
   setuser <span style="color: #ff3333;">&#36;handle</span> HOSTS
   <span style="color: #ff7700;font-weight:bold;">foreach</span> arg <span style="color: #ff3333;">&#36;args</span> <span style="color: black;">&#123;</span>
      setuser <span style="color: #ff3333;">&#36;handle</span> HOSTS <span style="color: #ff3333;">&#36;arg</span>
   <span style="color: black;">&#125;</span>
<span style="color: black;">&#125;</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> ReplaceHosts <span style="color: black;">&#123;</span>hand idx text<span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
   replacehosts <span style="color: black;">&#91;</span><span style="color: #008000;">lindex</span> <span style="color: #ff3333;">&#36;text</span> <span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span> <span style="color: black;">&#91;</span><span style="color: #008000;">lrange</span> <span style="color: #ff3333;">&#36;text</span> <span style="color: #ff4500;">1</span> end<span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span>
bind dcc n replacehosts ReplaceHosts</pre></code></div></div><br /><br />
<br />
Il y a là de multiples erreurs de compréhension du fonctionnement de TCL.<br />
Tout d'abord, <a href="https://wiki.eggdrop.fr/faq/args" target="_blank" rel="noopener" class="mycode_url">args</a> place dans une <span style="font-weight: bold;" class="mycode_b">liste</span> tous les arguments reçus et non déclarés.<br />
Ensuite, <code class="inline-code">lrange</code> fait un <code class="inline-code">split</code> sur le texte, et donc retourne une liste.<br />
Donc, dans <code class="inline-code">ReplaceHosts</code>, l'appel de replacehosts est équivalent à faire <code class="inline-code">replacehosts &lt;machin&gt; {host1 host2 host3}</code>, et &#36;args contient donc {{host1 host2 host3}}.<br />
<br />
La solution choisie par l'utilisateur est d'utiliser <code class="inline-code">{*}&#36;args</code>, perdant ainsi tout le bénéfice de recevoir une liste. Il pensait aussi à faire un double foreach, qui est une solution encore plus bancale imho.<br />
<br />
La bonne pratique aurait été d'utiliser <code class="inline-code">[join [lrange ...]]</code> pour bien avoir un texte, et maitriser ce qui est passé à la procédure, plutôt que de tripoter la procédure réceptrice en ayant des assertions sur ce qu'elle reçoit.<br />
<br />
Encore une fois, je rappelle qu'en TCL, il y a fort peu de différences entre listes et chaînes, et que cela peut provoquer des choses très étranges. Donc, <span style="font-weight: bold;" class="mycode_b">maîtrisez vos types de données et n'utilisez pas l'un pour l'autre</span>.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Variables à noms complexes]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1843</link>
			<pubDate>Fri, 07 Nov 2025 10:54:11 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=2">CrazyCat</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1843</guid>
			<description><![CDATA[Il y a eu une question sur eggheads, je me permets donc de faire un rappel.<br />
<br />
Lorsque vous créez des noms de variables "complexes", c'est à dire comportant des caractères comme <code class="inline-code">:</code> ou <code class="inline-code">-</code>, vous pouvez avoir des erreurs en les lisant, il faut donc les encapsuler.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Exemple:</span><br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>.tcl set ma:var "I'm a test"<br />
Tcl: I'm a test<br />
.tcl putlog &#36;ma:var<br />
Tcl error: can't read "ma": no such variable<br />
.tcl putlog &#36;{ma:var}<br />
[10:46:24] I'm a test<br />
.tcl set ma-var toto<br />
Tcl: toto<br />
.tcl putlog &#36;ma-var<br />
Tcl error: can't read "ma": no such variable<br />
.tcl putlog &#36;{ma-var}<br />
[11:50:09] toto</code></div></div><br />
C'est aussi vrai lorsque vous voulez faire une concaténation de chaine avec une variable:<br />
<div class="codeblock"><div class="title">tcl<button class="copy">copier</button></div><div class="body"><code><pre class="tcl" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">set</span> fpath <span style="color: #483d8b;">&quot;/home/user/data&#36;{botnick}log.tmp&quot;</span></pre></code></div></div><br /><br />
]]></description>
			<content:encoded><![CDATA[Il y a eu une question sur eggheads, je me permets donc de faire un rappel.<br />
<br />
Lorsque vous créez des noms de variables "complexes", c'est à dire comportant des caractères comme <code class="inline-code">:</code> ou <code class="inline-code">-</code>, vous pouvez avoir des erreurs en les lisant, il faut donc les encapsuler.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Exemple:</span><br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>.tcl set ma:var "I'm a test"<br />
Tcl: I'm a test<br />
.tcl putlog &#36;ma:var<br />
Tcl error: can't read "ma": no such variable<br />
.tcl putlog &#36;{ma:var}<br />
[10:46:24] I'm a test<br />
.tcl set ma-var toto<br />
Tcl: toto<br />
.tcl putlog &#36;ma-var<br />
Tcl error: can't read "ma": no such variable<br />
.tcl putlog &#36;{ma-var}<br />
[11:50:09] toto</code></div></div><br />
C'est aussi vrai lorsque vous voulez faire une concaténation de chaine avec une variable:<br />
<div class="codeblock"><div class="title">tcl<button class="copy">copier</button></div><div class="body"><code><pre class="tcl" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">set</span> fpath <span style="color: #483d8b;">&quot;/home/user/data&#36;{botnick}log.tmp&quot;</span></pre></code></div></div><br /><br />
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[https dans un script]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1572</link>
			<pubDate>Sun, 04 Jan 2015 09:57:10 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=2">CrazyCat</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1572</guid>
			<description><![CDATA[Ca fait plusieurs fois que l'on me demande comment adapter un script pour qu'il puisse utiliser le https plutôt que le http.<br />
<br />
La réponse tient en 2 lignes.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">1. Charger le package TLS</span><br />
<div class="codeblock"><div class="title">tcl<button class="copy">copier</button></div><div class="body"><code><pre class="tcl" style="font-family:monospace;"><span style="color: #008000;">package</span> require tls</pre></code></div></div><br /><br />
<br />
<span style="font-weight: bold;" class="mycode_b">2. Indiquer que le protocole https utilise tls</span><br />
<div class="codeblock"><div class="title">tcl<button class="copy">copier</button></div><div class="body"><code><pre class="tcl" style="font-family:monospace;"><span style="color: #008000;">http</span>::<span style="color: black;">register</span> https <span style="color: #ff4500;">443</span> tls::<span style="color: #008000;">socket</span></pre></code></div></div><br /><br />
<br />
Ceci fonctionne avec Tcl 8.5.2, http 2.7 et tls 1.6.<br />
Il se peut que vous ayez à installer le package tcl-tls, ainsi que libssl ou openssl.]]></description>
			<content:encoded><![CDATA[Ca fait plusieurs fois que l'on me demande comment adapter un script pour qu'il puisse utiliser le https plutôt que le http.<br />
<br />
La réponse tient en 2 lignes.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">1. Charger le package TLS</span><br />
<div class="codeblock"><div class="title">tcl<button class="copy">copier</button></div><div class="body"><code><pre class="tcl" style="font-family:monospace;"><span style="color: #008000;">package</span> require tls</pre></code></div></div><br /><br />
<br />
<span style="font-weight: bold;" class="mycode_b">2. Indiquer que le protocole https utilise tls</span><br />
<div class="codeblock"><div class="title">tcl<button class="copy">copier</button></div><div class="body"><code><pre class="tcl" style="font-family:monospace;"><span style="color: #008000;">http</span>::<span style="color: black;">register</span> https <span style="color: #ff4500;">443</span> tls::<span style="color: #008000;">socket</span></pre></code></div></div><br /><br />
<br />
Ceci fonctionne avec Tcl 8.5.2, http 2.7 et tls 1.6.<br />
Il se peut que vous ayez à installer le package tcl-tls, ainsi que libssl ou openssl.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Expressions régulières pour tcl]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1547</link>
			<pubDate>Wed, 23 Jul 2014 06:50:01 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=2">CrazyCat</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1547</guid>
			<description><![CDATA[Un document aimablement fourni par <a href="member.php?action=profile&amp;uid=324"><span style="color: #CC00CC;"><i class="fa fa-user-circle-o" aria-hidden="true"></i>&nbsp;MenzAgitat</span></a>, <span style="font-weight: bold;" class="mycode_b">en anglais</span>, est disponible sur le wiki: <a href="http://wiki.eggdrop.fr/images/Regexp.pdf" target="_blank" rel="noopener" class="mycode_url">Regexp.pdf</a>.<br />
<br />
Il est accessible depuis les pages:<ul class="mycode_list"><li><a href="http://wiki.eggdrop.fr/Regexp" target="_blank" rel="noopener" class="mycode_url">Regexp</a><br />
</li>
<li><a href="http://wiki.eggdrop.fr/Regsub" target="_blank" rel="noopener" class="mycode_url">Regsub</a><br />
</li>
<li><a href="http://wiki.eggdrop.fr/Re_syntax" target="_blank" rel="noopener" class="mycode_url">Re syntax</a><br />
</li>
</ul>
]]></description>
			<content:encoded><![CDATA[Un document aimablement fourni par <a href="member.php?action=profile&amp;uid=324"><span style="color: #CC00CC;"><i class="fa fa-user-circle-o" aria-hidden="true"></i>&nbsp;MenzAgitat</span></a>, <span style="font-weight: bold;" class="mycode_b">en anglais</span>, est disponible sur le wiki: <a href="http://wiki.eggdrop.fr/images/Regexp.pdf" target="_blank" rel="noopener" class="mycode_url">Regexp.pdf</a>.<br />
<br />
Il est accessible depuis les pages:<ul class="mycode_list"><li><a href="http://wiki.eggdrop.fr/Regexp" target="_blank" rel="noopener" class="mycode_url">Regexp</a><br />
</li>
<li><a href="http://wiki.eggdrop.fr/Regsub" target="_blank" rel="noopener" class="mycode_url">Regsub</a><br />
</li>
<li><a href="http://wiki.eggdrop.fr/Re_syntax" target="_blank" rel="noopener" class="mycode_url">Re syntax</a><br />
</li>
</ul>
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Différences de syntaxe 1.6 - 1.8]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1517</link>
			<pubDate>Wed, 02 Apr 2014 07:43:05 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=2">CrazyCat</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1517</guid>
			<description><![CDATA[Il existe quelques différences entre la branche 1.6 et la branche 1.8 d'eggdrop, et par conséquent certaines syntaxes changent.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">hosts</span><br />
Comme eggdrop 1.8 gère l'IPv6, les ":" peuvent apparaitre dans un host. Le séparateur host/port est donc devenu l'espace.<br />
Autre nouveauté, comme le SSL est géré en natif, les ports (pour le botnet) peuvent être déclarés SSL avec l'ajout d'un +.<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code># Anciennes déclarations<br />
.+bot &lt;handle&gt; [address[:bot port[/user port]]] [host]<br />
.chaddr &lt;bot&gt; &lt;address[:bot port[/user port]]]]&gt;&lt;![CDATA[&gt;<br />
<br />
# Nouvelles déclarations<br />
.+bot &lt;handle&gt; [address [[+]bot port[/[+]user port]]] [host]<br />
.chaddr &lt;bot&gt; &lt;address&gt; [[+]bot port[/[+]user port]]</code></div></div>]]></description>
			<content:encoded><![CDATA[Il existe quelques différences entre la branche 1.6 et la branche 1.8 d'eggdrop, et par conséquent certaines syntaxes changent.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">hosts</span><br />
Comme eggdrop 1.8 gère l'IPv6, les ":" peuvent apparaitre dans un host. Le séparateur host/port est donc devenu l'espace.<br />
Autre nouveauté, comme le SSL est géré en natif, les ports (pour le botnet) peuvent être déclarés SSL avec l'ajout d'un +.<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code># Anciennes déclarations<br />
.+bot &lt;handle&gt; [address[:bot port[/user port]]] [host]<br />
.chaddr &lt;bot&gt; &lt;address[:bot port[/user port]]]]&gt;&lt;![CDATA[&gt;<br />
<br />
# Nouvelles déclarations<br />
.+bot &lt;handle&gt; [address [[+]bot port[/[+]user port]]] [host]<br />
.chaddr &lt;bot&gt; &lt;address&gt; [[+]bot port[/[+]user port]]</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Utilisation de SQLite]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1481</link>
			<pubDate>Tue, 07 Jan 2014 11:12:12 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=2">CrazyCat</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1481</guid>
			<description><![CDATA[De plus en plus de scripts utilisent une base de données, que ce soit MySQL ou en "fichier plat".<br />
Une alternative existe, très portable: <a href="http://wiki.eggdrop.fr/Sqlite" target="_blank" rel="noopener" class="mycode_url">SQLite</a>.<br />
<br />
Je vous laisse découvrir son utilisation.]]></description>
			<content:encoded><![CDATA[De plus en plus de scripts utilisent une base de données, que ce soit MySQL ou en "fichier plat".<br />
Une alternative existe, très portable: <a href="http://wiki.eggdrop.fr/Sqlite" target="_blank" rel="noopener" class="mycode_url">SQLite</a>.<br />
<br />
Je vous laisse découvrir son utilisation.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Réponses en vrac]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1375</link>
			<pubDate>Wed, 31 Jul 2013 09:29:51 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=2">CrazyCat</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1375</guid>
			<description><![CDATA[Une nouvelle page est présente sur le wiki: <a href="http://wiki.eggdrop.fr/R%C3%A9ponses_en_vrac" target="_blank" rel="noopener" class="mycode_url">Réponses en vrac</a>.<br />
<br />
Pour l'instant, elle reprend les contenus traduits de <a href="http://eggwiki.org" target="_blank" rel="noopener" class="mycode_url">http://eggwiki.org</a> mais d'autres questions inclassables seront bientôt présentes.]]></description>
			<content:encoded><![CDATA[Une nouvelle page est présente sur le wiki: <a href="http://wiki.eggdrop.fr/R%C3%A9ponses_en_vrac" target="_blank" rel="noopener" class="mycode_url">Réponses en vrac</a>.<br />
<br />
Pour l'instant, elle reprend les contenus traduits de <a href="http://eggwiki.org" target="_blank" rel="noopener" class="mycode_url">http://eggwiki.org</a> mais d'autres questions inclassables seront bientôt présentes.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Fichiers .ini en tcl]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1369</link>
			<pubDate>Sun, 21 Jul 2013 12:36:11 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=2">CrazyCat</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1369</guid>
			<description><![CDATA[Suite à quelques discussions, que ce soit ici ou sur IRC, je me suis aperçu que les fichiers .ini étaient fort peu connus des scripteurs TCL et que parfois la roue était réinventée.<br />
<br />
J'ai donc fait un <a href="http://wiki.eggdrop.fr/Utilisation_d%27inifile" target="_blank" rel="noopener" class="mycode_url">tout petit tutoriel</a> qui pourra aider certaines personnes à simplifier leurs scripts.]]></description>
			<content:encoded><![CDATA[Suite à quelques discussions, que ce soit ici ou sur IRC, je me suis aperçu que les fichiers .ini étaient fort peu connus des scripteurs TCL et que parfois la roue était réinventée.<br />
<br />
J'ai donc fait un <a href="http://wiki.eggdrop.fr/Utilisation_d%27inifile" target="_blank" rel="noopener" class="mycode_url">tout petit tutoriel</a> qui pourra aider certaines personnes à simplifier leurs scripts.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Utilisation Vhost, Ou Flag ?]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1368</link>
			<pubDate>Fri, 19 Jul 2013 16:22:18 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=2523">aliasangelius</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1368</guid>
			<description><![CDATA[Bonjour,<br />
<br />
Je me permets de faire un post sur une question que je me pose.<br />
En faite j'ai pus constater que dans certains TCL depuis pas mal de temps une utilisation de vhost.<br />
<br />
Les vhost c'est quoi ? C'est l'utilisation des hosts mis par le server irc "si je ne dit pas de sotisse", En faite lorsque vous faites parties du membres staff d'un server irc par exemple.<br />
<br />
Lorsque vous êtes identifier auprès des services, Tels que NickServ votre host et changer..<br />
<br />
Je suis Ircop sur le Réseau "zeolia.net" Je vais m'identifier et mon host sera transformer en "Ircop.Zeolia.net"..<br />
<br />
Dès que ceci sera appliquer nous passons à l'étape de la fonction du code TCL.<br />
Les TCL utilisant le système de vhost et la detection de ceci.<br />
Ils ne demande aucunement une identification par commandes "msg" Exemple : /msg le-bot auth alias_angelius pass<br />
<br />
Donc si nous nous retrouvons avec la vhost citez ci dessus..<br />
Nous avons accèss auprès du code TCL.<br />
<br />
Donc imaginons que dans le code nous avons sajoin,kill,zline...<br />
Je trouve que c'est assez stupide pour plusieurs raisons.<br />
<br />
1) Cela dépend de mettre dans ce cas un eggdrop Ircop.<br />
2) Mettre un eggdrop Ircop plusieurs sujet ont était dit à ce propos ce n'es pas très sécurisable.<br />
3) Nous faisons un système de vhost "Mais qui reprend le système de host existant dans eggdrop".<br />
<br />
En conclusions pour ma part.<br />
Nous réinventons la roue ? <br />
<br />
Car pourquoi ne pas utiliser le système d'host déjà présent dans eggdrop.<br />
Ensuite avec des flag mis à disposition par eggdrop.<br />
<br />
J'aimerais avoirs divers avis sur la question si possible, Mais bien sur le sujet et ouvert à tous pour une participation sur l'avis de chacun <img src="https://forum.eggdrop.fr/images/smilies/smiling.png" alt="Smile" title="Smile" class="smilie smilie_4" />]]></description>
			<content:encoded><![CDATA[Bonjour,<br />
<br />
Je me permets de faire un post sur une question que je me pose.<br />
En faite j'ai pus constater que dans certains TCL depuis pas mal de temps une utilisation de vhost.<br />
<br />
Les vhost c'est quoi ? C'est l'utilisation des hosts mis par le server irc "si je ne dit pas de sotisse", En faite lorsque vous faites parties du membres staff d'un server irc par exemple.<br />
<br />
Lorsque vous êtes identifier auprès des services, Tels que NickServ votre host et changer..<br />
<br />
Je suis Ircop sur le Réseau "zeolia.net" Je vais m'identifier et mon host sera transformer en "Ircop.Zeolia.net"..<br />
<br />
Dès que ceci sera appliquer nous passons à l'étape de la fonction du code TCL.<br />
Les TCL utilisant le système de vhost et la detection de ceci.<br />
Ils ne demande aucunement une identification par commandes "msg" Exemple : /msg le-bot auth alias_angelius pass<br />
<br />
Donc si nous nous retrouvons avec la vhost citez ci dessus..<br />
Nous avons accèss auprès du code TCL.<br />
<br />
Donc imaginons que dans le code nous avons sajoin,kill,zline...<br />
Je trouve que c'est assez stupide pour plusieurs raisons.<br />
<br />
1) Cela dépend de mettre dans ce cas un eggdrop Ircop.<br />
2) Mettre un eggdrop Ircop plusieurs sujet ont était dit à ce propos ce n'es pas très sécurisable.<br />
3) Nous faisons un système de vhost "Mais qui reprend le système de host existant dans eggdrop".<br />
<br />
En conclusions pour ma part.<br />
Nous réinventons la roue ? <br />
<br />
Car pourquoi ne pas utiliser le système d'host déjà présent dans eggdrop.<br />
Ensuite avec des flag mis à disposition par eggdrop.<br />
<br />
J'aimerais avoirs divers avis sur la question si possible, Mais bien sur le sujet et ouvert à tous pour une participation sur l'avis de chacun <img src="https://forum.eggdrop.fr/images/smilies/smiling.png" alt="Smile" title="Smile" class="smilie smilie_4" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[Tuto] mysqltcl pour les nuls]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1287</link>
			<pubDate>Thu, 13 Dec 2012 22:36:21 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=3397">Ahinu</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1287</guid>
			<description><![CDATA[à la demande d'un utilisateur de la board je me permet de refaire un tuto<br />
<br />
@Source: <a href="http://wiki.eggdrop.fr/Package:MySQLTcl" target="_blank" rel="noopener" class="mycode_url">Eggdrop.fr - wiki:mysqltcl</a><br />
<br />
Pré-requis: Votre dédié dois disposer d'un serveur mySQL<br />
<br />
le package mysqltcl <br />
information:<br />
<br />
Le package mysqltcl permet a un script TCL d'effectuer des requêtes<br />
sur une base de donnée SQL, On va donc travailler sur les principales<br />
requêtes qui sont: INSERT INTO, UPDATE, SELECT &amp; DELETE FROM, mais avant<br />
on va préparer le serveur à accueillir les requêtes via le language TCL<br />
<br />
Nous avons besoin du package mysqltcl<br />
logguez-vous en root sur votre serveur et effectuez la commande suivante<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code># apt-get install mysqltcl</code></div></div><br />
Si vous n'avez pas accès au root du dédié demandez à l'administrateur<br />
si le package mysqltcl à été installé sur son dédié<br />
<br />
Ce dont on a besoin pour ce TCL:<br />
Le login<br />
Le pass<br />
Le nom de la base<br />
un endroit pour générer une socket<br />
<br />
on commence:<br />
<br />
on va donc maintenant créer notre requête SQL pour créer notre <code class="inline-code">table</code><br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>-- <br />
-- Structure de la table `acces`<br />
-- <br />
CREATE TABLE&nbsp;&nbsp;`acces` (<br />
`pseudo` TEXT NOT NULL ,<br />
`pass` TEXT NOT NULL ,<br />
`grade` TEXT NOT NULL ,<br />
`suspend` TEXT NOT NULL ,<br />
`status` TEXT NOT NULL ,<br />
`nick` TEXT NOT NULL<br />
) ENGINE = MYISAM DEFAULT CHARSET=latin1;<br />
-- <br />
-- Contenu de la table `acces`<br />
-- <br />
INSERT INTO `acces` (`pseudo`, `pass`, `grade`, `suspend`, `statut`, `nick`) VALUES ('Ahinu', 'b3rliN', '4', 'OFF', 'OFF', '0');</code></div></div>On crée donc par la même occasion l'accès (pseudo Ahinu) avec le mot de passe (pass b3rliN) sur le grade IRC Admin (grade 4) <br />
dont le suspend n'est pas actif (suspend Off) ou l'accès n'est pas utilisé (status off) et le nick n'est pas logué (nick 0)<br />
<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code># vi acces.tcl</code></div></div><br />
On va dans un premier temps créer la configuration de connexion à la base mySQL<br />
Et afficher la liste des utilisateurs enregistrés dans le robot<br />
<br />
<div class="codeblock"><div class="title">tcl<button class="copy">copier</button></div><div class="body"><code><pre class="tcl" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#######################################</span>
<span style="color: #808080; font-style: italic;"># Mon premier script tcl avec mysqtcl #</span>
<span style="color: #808080; font-style: italic;">#######################################</span>
<span style="color: #808080; font-style: italic;">#Login mySQL</span>
<span style="color: #ff7700;font-weight:bold;">set</span> ahi<span style="color: black;">&#40;</span>sql:login<span style="color: black;">&#41;</span> <span style="color: #483d8b;">&quot;ahinu&quot;</span>
<span style="color: #808080; font-style: italic;">#Pass mySQL</span>
<span style="color: #ff7700;font-weight:bold;">set</span> ahi<span style="color: black;">&#40;</span>sql:pass<span style="color: black;">&#41;</span> <span style="color: #483d8b;">&quot;beRl1&quot;</span>
<span style="color: #808080; font-style: italic;">#base mySQL			</span>
<span style="color: #ff7700;font-weight:bold;">set</span> ahi<span style="color: black;">&#40;</span>sql:db<span style="color: black;">&#41;</span> <span style="color: #483d8b;">&quot;ahinu&quot;</span>
<span style="color: #808080; font-style: italic;">#IP mySQL		</span>
<span style="color: #ff7700;font-weight:bold;">set</span> ahi<span style="color: black;">&#40;</span>sql:host<span style="color: black;">&#41;</span> <span style="color: #483d8b;">&quot;127.0.0.1&quot;</span>
<span style="color: #808080; font-style: italic;">#socket mySQL</span>
<span style="color: #ff7700;font-weight:bold;">set</span> ahi<span style="color: black;">&#40;</span>sql:sock<span style="color: black;">&#41;</span> <span style="color: #483d8b;">&quot;/tmp/ahi.sock&quot;</span>
<span style="color: #808080; font-style: italic;">
#Vérification si le package mysqltcl est prèsent !</span>
<span style="color: #ff7700;font-weight:bold;">catch</span> <span style="color: black;">&#123;</span><span style="color: #008000;">package</span> require mysqltcl<span style="color: black;">&#125;</span>
<span style="color: #808080; font-style: italic;">
# Connexion à la base SQL #</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> service:connect <span style="color: black;">&#123;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
	<span style="color: #ff7700;font-weight:bold;">set</span> ::<span style="color: black;">mysqlink</span> <span style="color: black;">&#91;</span>mysqlconnect -host <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">ahi</span><span style="color: black;">&#40;</span>sql:host<span style="color: black;">&#41;</span> -user <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">ahi</span><span style="color: black;">&#40;</span>sql:login<span style="color: black;">&#41;</span> -password <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">ahi</span><span style="color: black;">&#40;</span>sql:pass<span style="color: black;">&#41;</span> -sock <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">ahi</span><span style="color: black;">&#40;</span>sql:sock<span style="color: black;">&#41;</span><span style="color: black;">&#93;</span>
	mysqluse <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">mysqlink</span> <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">ahi</span><span style="color: black;">&#40;</span>sql:db<span style="color: black;">&#41;</span>
<span style="color: black;">&#125;</span>
<span style="color: #808080; font-style: italic;"># Déconnexion de la base SQL # </span>
<span style="color: #ff7700;font-weight:bold;">proc</span> service:deconnect <span style="color: black;">&#123;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
	mysqlclose <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">mysqlink</span><span style="color: #66cc66;">;</span> unset -nocomplain ::<span style="color: black;">mysqlink</span>	
<span style="color: black;">&#125;</span>
&nbsp;
bind pub - <span style="color: #66cc66;">!</span>admin admin:pub
	<span style="color: #ff7700;font-weight:bold;">proc</span> admin:pub <span style="color: black;">&#123;</span>nick host hand channel arg<span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
	<span style="color: #ff7700;font-weight:bold;">set</span> nbadmin <span style="color: #483d8b;">&quot;0&quot;</span>
	<span style="color: #ff7700;font-weight:bold;">set</span> nblog <span style="color: #483d8b;">&quot;0&quot;</span>
	dccbroadcast <span style="color: #483d8b;">&quot;*** <span style="color: #000099; font-weight: bold;">&#092;2</span>Admin<span style="color: #000099; font-weight: bold;">&#092;2</span> by &#36;nick&quot;</span>
	putquick <span style="color: #483d8b;">&quot;NOTICE &#36;nick :<span style="color: #000099; font-weight: bold;">&#092;2</span><span style="color: #000099; font-weight: bold;">&#092;0</span>034Authed IDNick Level Nick&quot;</span> 
	service:connect
	mysqlsel <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">mysqlink</span> <span style="color: #483d8b;">&quot;SELECT * FROM `acces` ORDER BY pseudo&quot;</span>
	<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: black;">&#91;</span>mysqlresult <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">mysqlink</span> rows<span style="color: black;">&#93;</span> ne <span style="color: #ff4500;">0</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
		<span style="color: #ff7700;font-weight:bold;">while</span> <span style="color: black;">&#123;</span><span style="color: black;">&#91;</span><span style="color: #ff7700;font-weight:bold;">set</span> row <span style="color: black;">&#91;</span>mysqlnext <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">mysqlink</span><span style="color: black;">&#93;</span><span style="color: black;">&#93;</span> <span style="color: #66cc66;">!</span>= <span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
			<span style="color: #ff7700;font-weight:bold;">set</span> suspend <span style="color: black;">&#91;</span><span style="color: #008000;">lindex</span> <span style="color: #ff3333;">&#36;row</span> <span style="color: #ff4500;">3</span><span style="color: black;">&#93;</span>
			<span style="color: #ff7700;font-weight:bold;">set</span> status <span style="color: black;">&#91;</span><span style="color: #008000;">lindex</span> <span style="color: #ff3333;">&#36;row</span> <span style="color: #ff4500;">4</span><span style="color: black;">&#93;</span>
			<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: #ff3333;">&#36;suspend</span><span style="color: #66cc66;">!</span>=<span style="color: #483d8b;">&quot;ON&quot;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
				<span style="color: #008000;">incr</span> nbadmin <span style="color: #ff4500;">1</span>
				<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: #ff3333;">&#36;status</span>==<span style="color: #483d8b;">&quot;ON&quot;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
					<span style="color: #008000;">incr</span> nblog <span style="color: #ff4500;">1</span>
					<span style="color: #ff7700;font-weight:bold;">set</span> status <span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">&#092;2</span><span style="color: #000099; font-weight: bold;">&#092;0</span>033YES<span style="color: #000099; font-weight: bold;">&#092;0</span>03<span style="color: #000099; font-weight: bold;">&#092;2</span>&quot;</span>
					putquick <span style="color: #483d8b;">&quot;NOTICE &#36;nick :&#36;status [lindex &#36;row 0] [lindex &#36;row 2] [lindex &#36;row 5]&quot;</span>
				<span style="color: black;">&#125;</span> <span style="color: #ff7700;font-weight:bold;">else</span> <span style="color: black;">&#123;</span>
					<span style="color: #ff7700;font-weight:bold;">set</span> status <span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">&#092;2</span><span style="color: #000099; font-weight: bold;">&#092;0</span>034NO<span style="color: #000099; font-weight: bold;">&#092;0</span>03<span style="color: #000099; font-weight: bold;">&#092;2</span>&quot;</span>
					putquick <span style="color: #483d8b;">&quot;NOTICE &#36;nick :&#36;status [lindex &#36;row 0] [lindex &#36;row 2]&quot;</span>
				<span style="color: black;">&#125;</span>
			<span style="color: black;">&#125;</span>
		<span style="color: black;">&#125;</span>
	<span style="color: black;">&#125;</span>
	service:deconnect
	putquick <span style="color: #483d8b;">&quot;NOTICE &#36;nick :Il y a &#36;nbadmin Admin enregistré dont &#36;nblog en ligne&quot;</span>
<span style="color: black;">&#125;</span></pre></code></div></div><br /><br />
<br />
Si vous exécutez la commande !admin vous verrez apparaître: <br />
<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code># Authed IDNick Level Nick<br />
# NO Ahinu 4</code></div></div><br />
PS: Ce tutoriel sera mis à jour très fréquemment]]></description>
			<content:encoded><![CDATA[à la demande d'un utilisateur de la board je me permet de refaire un tuto<br />
<br />
@Source: <a href="http://wiki.eggdrop.fr/Package:MySQLTcl" target="_blank" rel="noopener" class="mycode_url">Eggdrop.fr - wiki:mysqltcl</a><br />
<br />
Pré-requis: Votre dédié dois disposer d'un serveur mySQL<br />
<br />
le package mysqltcl <br />
information:<br />
<br />
Le package mysqltcl permet a un script TCL d'effectuer des requêtes<br />
sur une base de donnée SQL, On va donc travailler sur les principales<br />
requêtes qui sont: INSERT INTO, UPDATE, SELECT &amp; DELETE FROM, mais avant<br />
on va préparer le serveur à accueillir les requêtes via le language TCL<br />
<br />
Nous avons besoin du package mysqltcl<br />
logguez-vous en root sur votre serveur et effectuez la commande suivante<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code># apt-get install mysqltcl</code></div></div><br />
Si vous n'avez pas accès au root du dédié demandez à l'administrateur<br />
si le package mysqltcl à été installé sur son dédié<br />
<br />
Ce dont on a besoin pour ce TCL:<br />
Le login<br />
Le pass<br />
Le nom de la base<br />
un endroit pour générer une socket<br />
<br />
on commence:<br />
<br />
on va donc maintenant créer notre requête SQL pour créer notre <code class="inline-code">table</code><br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>-- <br />
-- Structure de la table `acces`<br />
-- <br />
CREATE TABLE&nbsp;&nbsp;`acces` (<br />
`pseudo` TEXT NOT NULL ,<br />
`pass` TEXT NOT NULL ,<br />
`grade` TEXT NOT NULL ,<br />
`suspend` TEXT NOT NULL ,<br />
`status` TEXT NOT NULL ,<br />
`nick` TEXT NOT NULL<br />
) ENGINE = MYISAM DEFAULT CHARSET=latin1;<br />
-- <br />
-- Contenu de la table `acces`<br />
-- <br />
INSERT INTO `acces` (`pseudo`, `pass`, `grade`, `suspend`, `statut`, `nick`) VALUES ('Ahinu', 'b3rliN', '4', 'OFF', 'OFF', '0');</code></div></div>On crée donc par la même occasion l'accès (pseudo Ahinu) avec le mot de passe (pass b3rliN) sur le grade IRC Admin (grade 4) <br />
dont le suspend n'est pas actif (suspend Off) ou l'accès n'est pas utilisé (status off) et le nick n'est pas logué (nick 0)<br />
<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code># vi acces.tcl</code></div></div><br />
On va dans un premier temps créer la configuration de connexion à la base mySQL<br />
Et afficher la liste des utilisateurs enregistrés dans le robot<br />
<br />
<div class="codeblock"><div class="title">tcl<button class="copy">copier</button></div><div class="body"><code><pre class="tcl" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#######################################</span>
<span style="color: #808080; font-style: italic;"># Mon premier script tcl avec mysqtcl #</span>
<span style="color: #808080; font-style: italic;">#######################################</span>
<span style="color: #808080; font-style: italic;">#Login mySQL</span>
<span style="color: #ff7700;font-weight:bold;">set</span> ahi<span style="color: black;">&#40;</span>sql:login<span style="color: black;">&#41;</span> <span style="color: #483d8b;">&quot;ahinu&quot;</span>
<span style="color: #808080; font-style: italic;">#Pass mySQL</span>
<span style="color: #ff7700;font-weight:bold;">set</span> ahi<span style="color: black;">&#40;</span>sql:pass<span style="color: black;">&#41;</span> <span style="color: #483d8b;">&quot;beRl1&quot;</span>
<span style="color: #808080; font-style: italic;">#base mySQL			</span>
<span style="color: #ff7700;font-weight:bold;">set</span> ahi<span style="color: black;">&#40;</span>sql:db<span style="color: black;">&#41;</span> <span style="color: #483d8b;">&quot;ahinu&quot;</span>
<span style="color: #808080; font-style: italic;">#IP mySQL		</span>
<span style="color: #ff7700;font-weight:bold;">set</span> ahi<span style="color: black;">&#40;</span>sql:host<span style="color: black;">&#41;</span> <span style="color: #483d8b;">&quot;127.0.0.1&quot;</span>
<span style="color: #808080; font-style: italic;">#socket mySQL</span>
<span style="color: #ff7700;font-weight:bold;">set</span> ahi<span style="color: black;">&#40;</span>sql:sock<span style="color: black;">&#41;</span> <span style="color: #483d8b;">&quot;/tmp/ahi.sock&quot;</span>
<span style="color: #808080; font-style: italic;">
#Vérification si le package mysqltcl est prèsent !</span>
<span style="color: #ff7700;font-weight:bold;">catch</span> <span style="color: black;">&#123;</span><span style="color: #008000;">package</span> require mysqltcl<span style="color: black;">&#125;</span>
<span style="color: #808080; font-style: italic;">
# Connexion à la base SQL #</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> service:connect <span style="color: black;">&#123;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
	<span style="color: #ff7700;font-weight:bold;">set</span> ::<span style="color: black;">mysqlink</span> <span style="color: black;">&#91;</span>mysqlconnect -host <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">ahi</span><span style="color: black;">&#40;</span>sql:host<span style="color: black;">&#41;</span> -user <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">ahi</span><span style="color: black;">&#40;</span>sql:login<span style="color: black;">&#41;</span> -password <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">ahi</span><span style="color: black;">&#40;</span>sql:pass<span style="color: black;">&#41;</span> -sock <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">ahi</span><span style="color: black;">&#40;</span>sql:sock<span style="color: black;">&#41;</span><span style="color: black;">&#93;</span>
	mysqluse <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">mysqlink</span> <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">ahi</span><span style="color: black;">&#40;</span>sql:db<span style="color: black;">&#41;</span>
<span style="color: black;">&#125;</span>
<span style="color: #808080; font-style: italic;"># Déconnexion de la base SQL # </span>
<span style="color: #ff7700;font-weight:bold;">proc</span> service:deconnect <span style="color: black;">&#123;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
	mysqlclose <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">mysqlink</span><span style="color: #66cc66;">;</span> unset -nocomplain ::<span style="color: black;">mysqlink</span>	
<span style="color: black;">&#125;</span>
&nbsp;
bind pub - <span style="color: #66cc66;">!</span>admin admin:pub
	<span style="color: #ff7700;font-weight:bold;">proc</span> admin:pub <span style="color: black;">&#123;</span>nick host hand channel arg<span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
	<span style="color: #ff7700;font-weight:bold;">set</span> nbadmin <span style="color: #483d8b;">&quot;0&quot;</span>
	<span style="color: #ff7700;font-weight:bold;">set</span> nblog <span style="color: #483d8b;">&quot;0&quot;</span>
	dccbroadcast <span style="color: #483d8b;">&quot;*** <span style="color: #000099; font-weight: bold;">&#092;2</span>Admin<span style="color: #000099; font-weight: bold;">&#092;2</span> by &#36;nick&quot;</span>
	putquick <span style="color: #483d8b;">&quot;NOTICE &#36;nick :<span style="color: #000099; font-weight: bold;">&#092;2</span><span style="color: #000099; font-weight: bold;">&#092;0</span>034Authed IDNick Level Nick&quot;</span> 
	service:connect
	mysqlsel <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">mysqlink</span> <span style="color: #483d8b;">&quot;SELECT * FROM `acces` ORDER BY pseudo&quot;</span>
	<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: black;">&#91;</span>mysqlresult <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">mysqlink</span> rows<span style="color: black;">&#93;</span> ne <span style="color: #ff4500;">0</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
		<span style="color: #ff7700;font-weight:bold;">while</span> <span style="color: black;">&#123;</span><span style="color: black;">&#91;</span><span style="color: #ff7700;font-weight:bold;">set</span> row <span style="color: black;">&#91;</span>mysqlnext <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">mysqlink</span><span style="color: black;">&#93;</span><span style="color: black;">&#93;</span> <span style="color: #66cc66;">!</span>= <span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
			<span style="color: #ff7700;font-weight:bold;">set</span> suspend <span style="color: black;">&#91;</span><span style="color: #008000;">lindex</span> <span style="color: #ff3333;">&#36;row</span> <span style="color: #ff4500;">3</span><span style="color: black;">&#93;</span>
			<span style="color: #ff7700;font-weight:bold;">set</span> status <span style="color: black;">&#91;</span><span style="color: #008000;">lindex</span> <span style="color: #ff3333;">&#36;row</span> <span style="color: #ff4500;">4</span><span style="color: black;">&#93;</span>
			<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: #ff3333;">&#36;suspend</span><span style="color: #66cc66;">!</span>=<span style="color: #483d8b;">&quot;ON&quot;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
				<span style="color: #008000;">incr</span> nbadmin <span style="color: #ff4500;">1</span>
				<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: #ff3333;">&#36;status</span>==<span style="color: #483d8b;">&quot;ON&quot;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
					<span style="color: #008000;">incr</span> nblog <span style="color: #ff4500;">1</span>
					<span style="color: #ff7700;font-weight:bold;">set</span> status <span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">&#092;2</span><span style="color: #000099; font-weight: bold;">&#092;0</span>033YES<span style="color: #000099; font-weight: bold;">&#092;0</span>03<span style="color: #000099; font-weight: bold;">&#092;2</span>&quot;</span>
					putquick <span style="color: #483d8b;">&quot;NOTICE &#36;nick :&#36;status [lindex &#36;row 0] [lindex &#36;row 2] [lindex &#36;row 5]&quot;</span>
				<span style="color: black;">&#125;</span> <span style="color: #ff7700;font-weight:bold;">else</span> <span style="color: black;">&#123;</span>
					<span style="color: #ff7700;font-weight:bold;">set</span> status <span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">&#092;2</span><span style="color: #000099; font-weight: bold;">&#092;0</span>034NO<span style="color: #000099; font-weight: bold;">&#092;0</span>03<span style="color: #000099; font-weight: bold;">&#092;2</span>&quot;</span>
					putquick <span style="color: #483d8b;">&quot;NOTICE &#36;nick :&#36;status [lindex &#36;row 0] [lindex &#36;row 2]&quot;</span>
				<span style="color: black;">&#125;</span>
			<span style="color: black;">&#125;</span>
		<span style="color: black;">&#125;</span>
	<span style="color: black;">&#125;</span>
	service:deconnect
	putquick <span style="color: #483d8b;">&quot;NOTICE &#36;nick :Il y a &#36;nbadmin Admin enregistré dont &#36;nblog en ligne&quot;</span>
<span style="color: black;">&#125;</span></pre></code></div></div><br /><br />
<br />
Si vous exécutez la commande !admin vous verrez apparaître: <br />
<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code># Authed IDNick Level Nick<br />
# NO Ahinu 4</code></div></div><br />
PS: Ce tutoriel sera mis à jour très fréquemment]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Besoin d'aide pour manipuler les fichiers ini, txt et db]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1176</link>
			<pubDate>Fri, 18 May 2012 07:48:03 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=0">Ricool</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1176</guid>
			<description><![CDATA[Bonjour à tous !<br />
Voila, j'aimerais savoir si il existe un tuto pour pouvoir gérer les fichiers textes avec son eggdrop ?<br />
C'est à dire, lire une ligne du fichier, lire tout le fichier, ajputer un ligne à la fin du fichier et supprimer une ligne.<br />
<br />
Je sais que c'est faisable, mais je ne trouve pas!<br />
<br />
Merci,<br />
Ricool]]></description>
			<content:encoded><![CDATA[Bonjour à tous !<br />
Voila, j'aimerais savoir si il existe un tuto pour pouvoir gérer les fichiers textes avec son eggdrop ?<br />
C'est à dire, lire une ligne du fichier, lire tout le fichier, ajputer un ligne à la fin du fichier et supprimer une ligne.<br />
<br />
Je sais que c'est faisable, mais je ne trouve pas!<br />
<br />
Merci,<br />
Ricool]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[index tcl en html ?]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1128</link>
			<pubDate>Mon, 16 Jan 2012 19:20:29 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=3001">m4st3r</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1128</guid>
			<description><![CDATA[Bonjour j'aimerais savoir si c'est possible de trouver un index complet des commandes tcl ( Tcl Built-In Commands ) pour pouvoir mettre sur mon ipad et les consulter meme lorsque je n'ai pas acces a internet !<br />
<br />
Merci <img src="https://forum.eggdrop.fr/images/smilies/wink.png" alt="Wink" title="Wink" class="smilie smilie_32" />]]></description>
			<content:encoded><![CDATA[Bonjour j'aimerais savoir si c'est possible de trouver un index complet des commandes tcl ( Tcl Built-In Commands ) pour pouvoir mettre sur mon ipad et les consulter meme lorsque je n'ai pas acces a internet !<br />
<br />
Merci <img src="https://forum.eggdrop.fr/images/smilies/wink.png" alt="Wink" title="Wink" class="smilie smilie_32" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Eggdrop sur plusieurs serveurs]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1125</link>
			<pubDate>Sun, 15 Jan 2012 20:40:32 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=2">CrazyCat</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1125</guid>
			<description><![CDATA[On me demande souvent comment mettre un eggdrop sur plusieurs serveurs. La réponse est inéluctablement la même: <span style="font-weight: bold;" class="mycode_b">ce n'est pas possible !</span><br />
<br />
Il semblerait que EnergyMech puisse le faire, sinon j'ai trouvé <a href="http://mewbies.com/how_to_have_1_eggdrop_on_multiple_servers_tutorial.htm" target="_blank" rel="noopener" class="mycode_url">ce petit tuto (en anglais et pas testé)</a> pour faire ça avec un eggdrop et psyBNC. Mais encore une fois, ce n'est pas le but d'eggdrop et même: "<span style="font-style: italic;" class="mycode_i">the eggdrop developers say they wont make it possible either</span>".]]></description>
			<content:encoded><![CDATA[On me demande souvent comment mettre un eggdrop sur plusieurs serveurs. La réponse est inéluctablement la même: <span style="font-weight: bold;" class="mycode_b">ce n'est pas possible !</span><br />
<br />
Il semblerait que EnergyMech puisse le faire, sinon j'ai trouvé <a href="http://mewbies.com/how_to_have_1_eggdrop_on_multiple_servers_tutorial.htm" target="_blank" rel="noopener" class="mycode_url">ce petit tuto (en anglais et pas testé)</a> pour faire ça avec un eggdrop et psyBNC. Mais encore une fois, ce n'est pas le but d'eggdrop et même: "<span style="font-style: italic;" class="mycode_i">the eggdrop developers say they wont make it possible either</span>".]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Installer TCL]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1083</link>
			<pubDate>Mon, 05 Dec 2011 08:55:20 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=2">CrazyCat</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1083</guid>
			<description><![CDATA[Ainsi que je le dis chaque fois (on va finir par avoir ces lignes partout sur le forum):<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>apt-get update<br />
apt-get install tcl8.5 tcl8.5-dev tcllib</code></div></div>Et ensuite, vous pouvez compiler votre eggdrop proprement.<br />
<br />
Nota: la dernière version stable est 1.6.21, pas 20.<br />
<blockquote class="mycode_quote"><cite>Raiding a écrit :</cite>Quand je met tcl8.5.3 sa me met ça :<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>Reading package lists... Done<br />
Building dependency tree<br />
Reading state information... Done<br />
E: Couldn't find package tcl8.5.3</code></div></div></blockquote>]]></description>
			<content:encoded><![CDATA[Ainsi que je le dis chaque fois (on va finir par avoir ces lignes partout sur le forum):<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>apt-get update<br />
apt-get install tcl8.5 tcl8.5-dev tcllib</code></div></div>Et ensuite, vous pouvez compiler votre eggdrop proprement.<br />
<br />
Nota: la dernière version stable est 1.6.21, pas 20.<br />
<blockquote class="mycode_quote"><cite>Raiding a écrit :</cite>Quand je met tcl8.5.3 sa me met ça :<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>Reading package lists... Done<br />
Building dependency tree<br />
Reading state information... Done<br />
E: Couldn't find package tcl8.5.3</code></div></div></blockquote>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[htmlentities_decode en tcl]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1077</link>
			<pubDate>Tue, 22 Nov 2011 14:37:04 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=2">CrazyCat</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1077</guid>
			<description><![CDATA[Très souvent, on a besoin de décoder des entités HTML avec un script.<br />
Voici une petite procédure qui décode les entités les plus fréquentes, avec des regsub.<br />
<br />
Il est possible de faire une version map, mais celle-ci est déjà bien utile.<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>proc htmlentities_decode { text } {<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;lt;" &#36;text "&lt;" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;gt;" &#36;text "&gt;" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;amp;" &#36;text "et" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;quot;" &#36;text "" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Aacute;" &#36;text "Ã" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Acirc;" &#36;text "Â" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Agrave;" &#36;text "À" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Aring;" &#36;text "Å" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Atilde;" &#36;text "Ã" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Auml;" &#36;text "Ä" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Ccedil;" &#36;text "Ç" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Eacute;" &#36;text "É" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Ecirc;" &#36;text "Ê" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Egrave;" &#36;text "È" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Iacute;" &#36;text "Ã" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Icirc;" &#36;text "Î" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Igrave;" &#36;text "í" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Iuml;" &#36;text "Ã" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Ntilde;" &#36;text "Ñ" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Oacute;" &#36;text "Ó" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Ocirc;" &#36;text "Ô" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Ograve;" &#36;text "Ò" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Oslash;" &#36;text "Ø" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Otilde;" &#36;text "Õ" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Ouml;" &#36;text "Ö" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Uacute;" &#36;text "Ê" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Ucirc;" &#36;text "Û" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Ugrave;" &#36;text "Ù" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Uuml;" &#36;text "í" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Yacute;" &#36;text "Ã" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;aacute;" &#36;text "á" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;aelig;" &#36;text "ae" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;oelig;" &#36;text "oe" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;agrave;" &#36;text "à" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all -nocase "&amp;#xe0;" &#36;text "à" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;aring;" &#36;text "å" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;atilde;" &#36;text "ã" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;auml;" &#36;text "ä" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;ccedil;" &#36;text "ç" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all -nocase "&amp;#xe7;" &#36;text "ç" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;eacute;" &#36;text "é" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all -nocase "&amp;#xe9;" &#36;text "é" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;euml;" &#36;text "ë" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;iacute;" &#36;text "í" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;egrave;" &#36;text "è" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all -nocase "&amp;#xe8;" &#36;text "è" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;igrave;" &#36;text "ì" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;iuml;" &#36;text "ï" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;ntilde;" &#36;text "ñ" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;oacute;" &#36;text "ó" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;ocirc;" &#36;text "ô" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all -nocase "&amp;#xf4;" &#36;text "ô" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;acirc;" &#36;text "â" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all -nocase "&amp;#xe2;" &#36;text "â" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;ecirc;" &#36;text "ê" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all -nocase "&amp;#xea;" &#36;text "ê" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;ograve;" &#36;text "ò" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;icirc;" &#36;text "î" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;otilde;" &#36;text "õ" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;ouml;" &#36;text "ö" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;uacute;" &#36;text "ú" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;ucirc;" &#36;text "û" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all -nocase "&amp;#xfb;" &#36;text "û" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;ugrave;" &#36;text "ù" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all -nocase "&amp;#xf9;" &#36;text "ù" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;uuml;" &#36;text "ü" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;yuml;" &#36;text "ÿ" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;AElig;" &#36;text "AE" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;OElig;" &#36;text "OE" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;reg;" &#36;text "®" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all -nocase "&amp;#xae;" &#36;text "®" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;copy;" &#36;text "©" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all -nocase "&amp;#xa9;" &#36;text "©" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;trade;" &#36;text "â„¢" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;plusmn;" &#36;text "±" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;deg;" &#36;text "°" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;sup1;" &#36;text "¹" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;sup2;" &#36;text "²" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;sup3;" &#36;text "³" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;times;" &#36;text "×" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;divide;" &#36;text "÷" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;euro;" &#36;text "euro" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all -nocase "&amp;laquo;" &#36;text "&#92;"" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all -nocase "&amp;raquo;" &#36;text "&#92;"" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;return &#36;text<br />
}</code></div></div>]]></description>
			<content:encoded><![CDATA[Très souvent, on a besoin de décoder des entités HTML avec un script.<br />
Voici une petite procédure qui décode les entités les plus fréquentes, avec des regsub.<br />
<br />
Il est possible de faire une version map, mais celle-ci est déjà bien utile.<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>proc htmlentities_decode { text } {<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;lt;" &#36;text "&lt;" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;gt;" &#36;text "&gt;" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;amp;" &#36;text "et" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;quot;" &#36;text "" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Aacute;" &#36;text "Ã" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Acirc;" &#36;text "Â" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Agrave;" &#36;text "À" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Aring;" &#36;text "Å" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Atilde;" &#36;text "Ã" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Auml;" &#36;text "Ä" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Ccedil;" &#36;text "Ç" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Eacute;" &#36;text "É" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Ecirc;" &#36;text "Ê" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Egrave;" &#36;text "È" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Iacute;" &#36;text "Ã" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Icirc;" &#36;text "Î" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Igrave;" &#36;text "í" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Iuml;" &#36;text "Ã" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Ntilde;" &#36;text "Ñ" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Oacute;" &#36;text "Ó" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Ocirc;" &#36;text "Ô" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Ograve;" &#36;text "Ò" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Oslash;" &#36;text "Ø" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Otilde;" &#36;text "Õ" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Ouml;" &#36;text "Ö" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Uacute;" &#36;text "Ê" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Ucirc;" &#36;text "Û" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Ugrave;" &#36;text "Ù" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Uuml;" &#36;text "í" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;Yacute;" &#36;text "Ã" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;aacute;" &#36;text "á" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;aelig;" &#36;text "ae" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;oelig;" &#36;text "oe" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;agrave;" &#36;text "à" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all -nocase "&amp;#xe0;" &#36;text "à" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;aring;" &#36;text "å" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;atilde;" &#36;text "ã" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;auml;" &#36;text "ä" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;ccedil;" &#36;text "ç" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all -nocase "&amp;#xe7;" &#36;text "ç" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;eacute;" &#36;text "é" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all -nocase "&amp;#xe9;" &#36;text "é" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;euml;" &#36;text "ë" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;iacute;" &#36;text "í" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;egrave;" &#36;text "è" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all -nocase "&amp;#xe8;" &#36;text "è" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;igrave;" &#36;text "ì" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;iuml;" &#36;text "ï" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;ntilde;" &#36;text "ñ" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;oacute;" &#36;text "ó" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;ocirc;" &#36;text "ô" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all -nocase "&amp;#xf4;" &#36;text "ô" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;acirc;" &#36;text "â" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all -nocase "&amp;#xe2;" &#36;text "â" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;ecirc;" &#36;text "ê" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all -nocase "&amp;#xea;" &#36;text "ê" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;ograve;" &#36;text "ò" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;icirc;" &#36;text "î" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;otilde;" &#36;text "õ" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;ouml;" &#36;text "ö" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;uacute;" &#36;text "ú" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;ucirc;" &#36;text "û" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all -nocase "&amp;#xfb;" &#36;text "û" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;ugrave;" &#36;text "ù" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all -nocase "&amp;#xf9;" &#36;text "ù" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;uuml;" &#36;text "ü" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;yuml;" &#36;text "ÿ" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;AElig;" &#36;text "AE" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;OElig;" &#36;text "OE" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;reg;" &#36;text "®" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all -nocase "&amp;#xae;" &#36;text "®" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;copy;" &#36;text "©" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all -nocase "&amp;#xa9;" &#36;text "©" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;trade;" &#36;text "â„¢" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;plusmn;" &#36;text "±" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;deg;" &#36;text "°" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;sup1;" &#36;text "¹" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;sup2;" &#36;text "²" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;sup3;" &#36;text "³" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;times;" &#36;text "×" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;divide;" &#36;text "÷" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all "&amp;euro;" &#36;text "euro" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all -nocase "&amp;laquo;" &#36;text "&#92;"" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;regsub -all -nocase "&amp;raquo;" &#36;text "&#92;"" text<br />
&nbsp;&nbsp;&nbsp;&nbsp;return &#36;text<br />
}</code></div></div>]]></content:encoded>
		</item>
	</channel>
</rss>