<?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 - Bouts de Scripts]]></title>
		<link>https://forum.eggdrop.fr/</link>
		<description><![CDATA[Communauté Eggdrop - https://forum.eggdrop.fr]]></description>
		<pubDate>Tue, 14 Apr 2026 23:27:13 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Comparaisons sur le dernier caractère]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1830</link>
			<pubDate>Tue, 27 May 2025 09:55:22 +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=1830</guid>
			<description><![CDATA[Hier, un utilisateur a demandé comment savoir si une chaîne se terminait par un point. La question est basique, par contre le nombre de réponses valides est assez élevé, chacun pouvant utiliser sa méthode, de la plus simple à la plus complexe:<br />
<ul class="mycode_list"><li><code class="inline-code">[string match *. &#36;text]</code> retourne 1 si le dernier caractère de &#36;text est un point (5543.6 / 3.892 microseconds)<br />
</li>
<li><code class="inline-code">[string index &#36;text end] eq .</code> compare le dernier caractère avec le caractère point (9813.3 / 11.17 microseconds)<br />
</li>
<li><code class="inline-code">[string last . &#36;text] == [string length &#36;text]</code> vérifie que la position du dernier point de la chaine est à la position de dernier caractère (7903.8 / 9.257 microseconds)<br />
</li>
<li><code class="inline-code">[string trimright &#36;text .] ne &#36;text </code> vérifie que &#36;text est modifié en supprimant le(s) point(s) final(aux) (10487.3 / 9.582 microseconds)<br />
</li>
<li>...<br />
</li>
</ul>
<br />
Tout ça pour montrer qu'il n'y a jamais qu'une seule solution à un problème, même pour une chose très simple.<br />
<br />
Les temps donnés sont:<br />
en premier la valeur moyenne (sur 100 itérations) d'une boucle de 1000 test<br />
en second la valeur moyenne sur 1000 itérations d'un seul test]]></description>
			<content:encoded><![CDATA[Hier, un utilisateur a demandé comment savoir si une chaîne se terminait par un point. La question est basique, par contre le nombre de réponses valides est assez élevé, chacun pouvant utiliser sa méthode, de la plus simple à la plus complexe:<br />
<ul class="mycode_list"><li><code class="inline-code">[string match *. &#36;text]</code> retourne 1 si le dernier caractère de &#36;text est un point (5543.6 / 3.892 microseconds)<br />
</li>
<li><code class="inline-code">[string index &#36;text end] eq .</code> compare le dernier caractère avec le caractère point (9813.3 / 11.17 microseconds)<br />
</li>
<li><code class="inline-code">[string last . &#36;text] == [string length &#36;text]</code> vérifie que la position du dernier point de la chaine est à la position de dernier caractère (7903.8 / 9.257 microseconds)<br />
</li>
<li><code class="inline-code">[string trimright &#36;text .] ne &#36;text </code> vérifie que &#36;text est modifié en supprimant le(s) point(s) final(aux) (10487.3 / 9.582 microseconds)<br />
</li>
<li>...<br />
</li>
</ul>
<br />
Tout ça pour montrer qu'il n'y a jamais qu'une seule solution à un problème, même pour une chose très simple.<br />
<br />
Les temps donnés sont:<br />
en premier la valeur moyenne (sur 100 itérations) d'une boucle de 1000 test<br />
en second la valeur moyenne sur 1000 itérations d'un seul test]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Ajout pour trivia.tcl]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1816</link>
			<pubDate>Mon, 10 Mar 2025 13:10: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=1816</guid>
			<description><![CDATA[Sur le forum anglophone, un utilisateur a demandé s'il était possible de mettre un voice automatique lorsqu'une personne du top 3 entrait sur le canal du jeu.<br />
Voici le bout de code que j'ai pondu et qui peut en intéresser certains, pas tellement par sa fonctionnalité mais plutôt par son utilisation des options de <a href="https://wiki.eggdrop.fr/tcl/lsort" target="_blank" rel="noopener" class="mycode_url">lsort</a> et <a href="https://wiki.eggdrop.fr/tcl/lsearch" target="_blank" rel="noopener" class="mycode_url">lsearch</a><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: #ff7700;font-weight:bold;">proc</span> tgvonjoin <span style="color: black;">&#123;</span>nick uhost handle chan<span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
   <span style="color: #ff7700;font-weight:bold;">set</span> tmp <span style="color: black;">&#91;</span><span style="color: #008000;">list</span><span style="color: black;">&#93;</span>
   <span style="color: #ff7700;font-weight:bold;">for</span> <span style="color: black;">&#123;</span><span style="color: #ff7700;font-weight:bold;">set</span> i <span style="color: #ff4500;">0</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span><span style="color: #ff3333;">&#36;i</span><span style="color: #66cc66;">&lt;</span><span style="color: black;">&#91;</span><span style="color: #008000;">llength</span> <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">tgscore</span><span style="color: black;">&#93;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span><span style="color: #008000;">incr</span> i<span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
      <span style="color: #008000;">lappend</span> tmp <span style="color: black;">&#91;</span><span style="color: #008000;">split</span> <span style="color: black;">&#91;</span><span style="color: #008000;">lindex</span> <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">tgscore</span> <span style="color: #ff3333;">&#36;i</span><span style="color: black;">&#93;</span> ,<span style="color: black;">&#93;</span>
   <span style="color: black;">&#125;</span>
   <span style="color: #ff7700;font-weight:bold;">set</span> tmp <span style="color: black;">&#91;</span><span style="color: #008000;">lrange</span> <span style="color: black;">&#91;</span><span style="color: #008000;">lsort</span> -decreasing -integer -index <span style="color: #ff4500;">2</span> <span style="color: #ff3333;">&#36;tmp</span><span style="color: black;">&#93;</span> <span style="color: #ff4500;">0</span> <span style="color: #ff4500;">2</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: black;">&#91;</span><span style="color: #008000;">lsearch</span> -nocase -index <span style="color: #ff4500;">0</span> <span style="color: #ff3333;">&#36;tmp</span> <span style="color: #ff3333;">&#36;nick</span><span style="color: black;">&#93;</span><span style="color: #66cc66;">&gt;</span>-<span style="color: #ff4500;">1</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
      pushmode <span style="color: #ff3333;">&#36;chan</span> +v <span style="color: #ff3333;">&#36;nick</span>
   <span style="color: black;">&#125;</span>
<span style="color: black;">&#125;</span>
bind <span style="color: #008000;">join</span> - <span style="color: #483d8b;">&quot;&#36;tgchan *&quot;</span> tgvonjoin</pre></code></div></div><br /><br />
<br />
<span style="font-weight: bold;" class="mycode_b">lsort</span><br />
Que fait la partie <code class="inline-code">lsort -decreasing -integer -index 2 &#36;tmp</code> ?<br />
La liste tmp contient des sous-listes composées du pseudo (index 0), de l'heure du score (index 1) et de la valeur du score (index 2). Je dis donc de trier les sous-listes sur son 2ème index (le score) en le traitant comme un entier et dans l'ordre décroissant.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">lsearch</span><br />
lsearch (<code class="inline-code">lsearch -nocase -index 0 &#36;tmp &#36;nick</code>) fonctionne de la même manière, avec l'option -index il va travailler dans les sous-listes, mais là ce qui nous intéresse est l'index 0 (le pseudo).<br />
<br />
<hr class="mycode_hr" />
<br />
J'ai ajouté un exemple sur la page wiki de lsort, voici le rendu de l'exécution du code :<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>tclsh test.tcl<br />
order by names<br />
albert as 45 words and 8 lines<br />
gwenaelle as 84 words and 18 lines<br />
hector as 4 words and 2 lines<br />
myriam as 64 words and 4 lines<br />
order by words<br />
hector as 4 words and 2 lines<br />
albert as 45 words and 8 lines<br />
myriam as 64 words and 4 lines<br />
gwenaelle as 84 words and 18 lines<br />
order by lines<br />
hector as 4 words and 2 lines<br />
myriam as 64 words and 4 lines<br />
albert as 45 words and 8 lines<br />
gwenaelle as 84 words and 18 lines</code></div></div>]]></description>
			<content:encoded><![CDATA[Sur le forum anglophone, un utilisateur a demandé s'il était possible de mettre un voice automatique lorsqu'une personne du top 3 entrait sur le canal du jeu.<br />
Voici le bout de code que j'ai pondu et qui peut en intéresser certains, pas tellement par sa fonctionnalité mais plutôt par son utilisation des options de <a href="https://wiki.eggdrop.fr/tcl/lsort" target="_blank" rel="noopener" class="mycode_url">lsort</a> et <a href="https://wiki.eggdrop.fr/tcl/lsearch" target="_blank" rel="noopener" class="mycode_url">lsearch</a><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: #ff7700;font-weight:bold;">proc</span> tgvonjoin <span style="color: black;">&#123;</span>nick uhost handle chan<span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
   <span style="color: #ff7700;font-weight:bold;">set</span> tmp <span style="color: black;">&#91;</span><span style="color: #008000;">list</span><span style="color: black;">&#93;</span>
   <span style="color: #ff7700;font-weight:bold;">for</span> <span style="color: black;">&#123;</span><span style="color: #ff7700;font-weight:bold;">set</span> i <span style="color: #ff4500;">0</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span><span style="color: #ff3333;">&#36;i</span><span style="color: #66cc66;">&lt;</span><span style="color: black;">&#91;</span><span style="color: #008000;">llength</span> <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">tgscore</span><span style="color: black;">&#93;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span><span style="color: #008000;">incr</span> i<span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
      <span style="color: #008000;">lappend</span> tmp <span style="color: black;">&#91;</span><span style="color: #008000;">split</span> <span style="color: black;">&#91;</span><span style="color: #008000;">lindex</span> <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">tgscore</span> <span style="color: #ff3333;">&#36;i</span><span style="color: black;">&#93;</span> ,<span style="color: black;">&#93;</span>
   <span style="color: black;">&#125;</span>
   <span style="color: #ff7700;font-weight:bold;">set</span> tmp <span style="color: black;">&#91;</span><span style="color: #008000;">lrange</span> <span style="color: black;">&#91;</span><span style="color: #008000;">lsort</span> -decreasing -integer -index <span style="color: #ff4500;">2</span> <span style="color: #ff3333;">&#36;tmp</span><span style="color: black;">&#93;</span> <span style="color: #ff4500;">0</span> <span style="color: #ff4500;">2</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: black;">&#91;</span><span style="color: #008000;">lsearch</span> -nocase -index <span style="color: #ff4500;">0</span> <span style="color: #ff3333;">&#36;tmp</span> <span style="color: #ff3333;">&#36;nick</span><span style="color: black;">&#93;</span><span style="color: #66cc66;">&gt;</span>-<span style="color: #ff4500;">1</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
      pushmode <span style="color: #ff3333;">&#36;chan</span> +v <span style="color: #ff3333;">&#36;nick</span>
   <span style="color: black;">&#125;</span>
<span style="color: black;">&#125;</span>
bind <span style="color: #008000;">join</span> - <span style="color: #483d8b;">&quot;&#36;tgchan *&quot;</span> tgvonjoin</pre></code></div></div><br /><br />
<br />
<span style="font-weight: bold;" class="mycode_b">lsort</span><br />
Que fait la partie <code class="inline-code">lsort -decreasing -integer -index 2 &#36;tmp</code> ?<br />
La liste tmp contient des sous-listes composées du pseudo (index 0), de l'heure du score (index 1) et de la valeur du score (index 2). Je dis donc de trier les sous-listes sur son 2ème index (le score) en le traitant comme un entier et dans l'ordre décroissant.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">lsearch</span><br />
lsearch (<code class="inline-code">lsearch -nocase -index 0 &#36;tmp &#36;nick</code>) fonctionne de la même manière, avec l'option -index il va travailler dans les sous-listes, mais là ce qui nous intéresse est l'index 0 (le pseudo).<br />
<br />
<hr class="mycode_hr" />
<br />
J'ai ajouté un exemple sur la page wiki de lsort, voici le rendu de l'exécution du code :<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>tclsh test.tcl<br />
order by names<br />
albert as 45 words and 8 lines<br />
gwenaelle as 84 words and 18 lines<br />
hector as 4 words and 2 lines<br />
myriam as 64 words and 4 lines<br />
order by words<br />
hector as 4 words and 2 lines<br />
albert as 45 words and 8 lines<br />
myriam as 64 words and 4 lines<br />
gwenaelle as 84 words and 18 lines<br />
order by lines<br />
hector as 4 words and 2 lines<br />
myriam as 64 words and 4 lines<br />
albert as 45 words and 8 lines<br />
gwenaelle as 84 words and 18 lines</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Recherche de (u)timer]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1814</link>
			<pubDate>Sun, 02 Feb 2025 13:22:50 +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=1814</guid>
			<description><![CDATA[Cette petite astuce est pour retrouver un timer par son nom de manière simple et rapide.<br />
La commande <a href="https://wiki.eggdrop.fr/tcl/tcl_eggdrop/timers" target="_blank" rel="noopener" class="mycode_url">timers</a> retourne une liste "complexe" des timers.<br />
<br />
Vous pouvez retrouver un timer (du moins sa position dans la liste) avec lsearch en forçant l'index de recherche à la bonne position, à savoir 2 (le nom du timer est le 3ème élément, la liste commence à 0):<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> t_idx <span style="color: black;">&#91;</span><span style="color: #008000;">lsearch</span> -index <span style="color: #ff4500;">2</span> <span style="color: black;">&#91;</span>timers<span style="color: black;">&#93;</span> montimer<span style="color: black;">&#93;</span></pre></code></div></div><br /><br />
<br />
Bien entendu, vous pouvez utiliser toutes les autres options de <a href="https://wiki.eggdrop.fr/tcl/lsearch" target="_blank" rel="noopener" class="mycode_url">lsearch</a> pour par exemple ressortir une liste des timers en se basant sur vos critères de recherche.<br />
<br />
Cas pratique:<br />
Dans un script, j'ai besoin de réinitialiser un compteur, voire de le supprimer s'il est mis à 0.<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> updatetimer <span style="color: black;">&#123;</span>tname delay<span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
   <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: black;">&#91;</span><span style="color: #008000;">lsearch</span> -index <span style="color: #ff4500;">2</span> <span style="color: black;">&#91;</span>timers<span style="color: black;">&#93;</span> <span style="color: #ff3333;">&#36;tname</span><span style="color: black;">&#93;</span><span style="color: #66cc66;">!</span>=-<span style="color: #ff4500;">1</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
      killtimer <span style="color: #ff3333;">&#36;tname</span>
   <span style="color: black;">&#125;</span>
   <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: #ff3333;">&#36;delay</span> <span style="color: #66cc66;">&gt;</span> <span style="color: #ff4500;">0</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
      <span style="color: #008000;">list</span> <span style="color: black;">&#91;</span>timer <span style="color: #ff3333;">&#36;delay</span> <span style="color: black;">&#91;</span><span style="color: #008000;">list</span> maproc with params<span style="color: black;">&#93;</span> <span style="color: #ff4500;">1</span> <span style="color: #ff3333;">&#36;tname</span><span style="color: black;">&#93;</span>
   <span style="color: black;">&#125;</span>
<span style="color: black;">&#125;</span></pre></code></div></div><br /><br />
<br />
A rapprocher de <a href="https://boulets.eggdrop.fr/tcl/routines/tcl-toolbox-0022.html" target="_blank" rel="noopener" class="mycode_url">Tester l'existence d'un timer / utimer et récupérer son ID</a> qui permet de rechercher un timer par la commande qu'il doit exécuter.]]></description>
			<content:encoded><![CDATA[Cette petite astuce est pour retrouver un timer par son nom de manière simple et rapide.<br />
La commande <a href="https://wiki.eggdrop.fr/tcl/tcl_eggdrop/timers" target="_blank" rel="noopener" class="mycode_url">timers</a> retourne une liste "complexe" des timers.<br />
<br />
Vous pouvez retrouver un timer (du moins sa position dans la liste) avec lsearch en forçant l'index de recherche à la bonne position, à savoir 2 (le nom du timer est le 3ème élément, la liste commence à 0):<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> t_idx <span style="color: black;">&#91;</span><span style="color: #008000;">lsearch</span> -index <span style="color: #ff4500;">2</span> <span style="color: black;">&#91;</span>timers<span style="color: black;">&#93;</span> montimer<span style="color: black;">&#93;</span></pre></code></div></div><br /><br />
<br />
Bien entendu, vous pouvez utiliser toutes les autres options de <a href="https://wiki.eggdrop.fr/tcl/lsearch" target="_blank" rel="noopener" class="mycode_url">lsearch</a> pour par exemple ressortir une liste des timers en se basant sur vos critères de recherche.<br />
<br />
Cas pratique:<br />
Dans un script, j'ai besoin de réinitialiser un compteur, voire de le supprimer s'il est mis à 0.<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> updatetimer <span style="color: black;">&#123;</span>tname delay<span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
   <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: black;">&#91;</span><span style="color: #008000;">lsearch</span> -index <span style="color: #ff4500;">2</span> <span style="color: black;">&#91;</span>timers<span style="color: black;">&#93;</span> <span style="color: #ff3333;">&#36;tname</span><span style="color: black;">&#93;</span><span style="color: #66cc66;">!</span>=-<span style="color: #ff4500;">1</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
      killtimer <span style="color: #ff3333;">&#36;tname</span>
   <span style="color: black;">&#125;</span>
   <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: #ff3333;">&#36;delay</span> <span style="color: #66cc66;">&gt;</span> <span style="color: #ff4500;">0</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
      <span style="color: #008000;">list</span> <span style="color: black;">&#91;</span>timer <span style="color: #ff3333;">&#36;delay</span> <span style="color: black;">&#91;</span><span style="color: #008000;">list</span> maproc with params<span style="color: black;">&#93;</span> <span style="color: #ff4500;">1</span> <span style="color: #ff3333;">&#36;tname</span><span style="color: black;">&#93;</span>
   <span style="color: black;">&#125;</span>
<span style="color: black;">&#125;</span></pre></code></div></div><br /><br />
<br />
A rapprocher de <a href="https://boulets.eggdrop.fr/tcl/routines/tcl-toolbox-0022.html" target="_blank" rel="noopener" class="mycode_url">Tester l'existence d'un timer / utimer et récupérer son ID</a> qui permet de rechercher un timer par la commande qu'il doit exécuter.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Retrouver le chemin complet vers le script]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1774</link>
			<pubDate>Tue, 30 Jan 2024 15:59: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=1774</guid>
			<description><![CDATA[On a parfois besoin d'avoir le chemin complet (path) vers le répertoire où est situé le script en cours.<br />
<br />
Ca tient en une commande de 3 instructions:<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: black;">&#91;</span><span style="color: #008000;">file</span> dirname <span style="color: black;">&#91;</span><span style="color: #008000;">file</span> normalize <span style="color: black;">&#91;</span><span style="color: #008000;">info</span> script<span style="color: black;">&#93;</span><span style="color: black;">&#93;</span><span style="color: black;">&#93;</span></pre></code></div></div><br /><br />
<br />
Notez que si vous avez besoin de redescendre d'un (ou plusieurs) niveaux, vous serez obligé de passer ensuite par <code class="inline-code">file split</code> et de recréer le chemin en jouant avec les listes.]]></description>
			<content:encoded><![CDATA[On a parfois besoin d'avoir le chemin complet (path) vers le répertoire où est situé le script en cours.<br />
<br />
Ca tient en une commande de 3 instructions:<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: black;">&#91;</span><span style="color: #008000;">file</span> dirname <span style="color: black;">&#91;</span><span style="color: #008000;">file</span> normalize <span style="color: black;">&#91;</span><span style="color: #008000;">info</span> script<span style="color: black;">&#93;</span><span style="color: black;">&#93;</span><span style="color: black;">&#93;</span></pre></code></div></div><br /><br />
<br />
Notez que si vous avez besoin de redescendre d'un (ou plusieurs) niveaux, vous serez obligé de passer ensuite par <code class="inline-code">file split</code> et de recréer le chemin en jouant avec les listes.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Convertir un nombre d'octets en ko/Mo/Go/To/Po/Eo/Zo ou kio/Mio/Gio/Tio/Pio/Eio/Zio]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1773</link>
			<pubDate>Tue, 30 Jan 2024 15:57:53 +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=1773</guid>
			<description><![CDATA[Code de MenzAgitat<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: #ff7700;font-weight:bold;">proc</span> octet_formatting <span style="color: black;">&#123;</span>value <span style="color: black;">&#123;</span>SI <span style="color: #ff4500;">1</span><span style="color: black;">&#125;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
	<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span> <span style="color: #ff3333;">&#36;SI</span> <span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
		<span style="color: #ff7700;font-weight:bold;">set</span> base <span style="color: #ff4500;">1024</span>
		<span style="color: #ff7700;font-weight:bold;">set</span> units <span style="color: black;">&#123;</span>Kio Mio Gio Tio Pio Eio Zio<span style="color: black;">&#125;</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> base <span style="color: #ff4500;">1000</span>
		<span style="color: #ff7700;font-weight:bold;">set</span> units <span style="color: black;">&#123;</span>Ko Mo Go To Po Eo Zo<span style="color: black;">&#125;</span>
	<span style="color: black;">&#125;</span>   
	<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span> <span style="color: #ff3333;">&#36;value</span> <span style="color: #66cc66;">&lt;</span> <span style="color: #ff3333;">&#36;base</span> <span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span> <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #483d8b;">&quot;&#36;{value}o&quot;</span> <span style="color: black;">&#125;</span>
	<span style="color: #ff7700;font-weight:bold;">foreach</span> unit <span style="color: #ff3333;">&#36;units</span> <span style="color: black;">&#123;</span>
		<span style="color: #ff7700;font-weight:bold;">set</span> value <span style="color: black;">&#91;</span><span style="color: #ff7700;font-weight:bold;">expr</span> <span style="color: black;">&#123;</span><span style="color: #ff3333;">&#36;value</span> / <span style="color: black;">&#40;</span><span style="color: #ff3333;">&#36;base</span> / <span style="color: #ff4500;">1.0</span><span style="color: black;">&#41;</span><span style="color: black;">&#125;</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;value</span> <span style="color: #66cc66;">&lt;</span> <span style="color: #ff3333;">&#36;base</span> <span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
			<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #483d8b;">&quot;[format %1.2f &#36;value]&#36;unit&quot;</span>
		<span style="color: black;">&#125;</span>
	<span style="color: black;">&#125;</span>
<span style="color: black;">&#125;</span></pre></code></div></div><br /><br />
<br />
Conversion inverse<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> form2oct <span style="color: black;">&#123;</span>formated<span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
	<span style="color: #ff7700;font-weight:bold;">set</span> usi <span style="color: black;">&#123;</span>kio Mio Gio Tio Pio Eio Zio<span style="color: black;">&#125;</span>
	<span style="color: #ff7700;font-weight:bold;">set</span> units <span style="color: black;">&#123;</span>ko Mo Go To Po Eo Zo<span style="color: black;">&#125;</span>
	<span style="color: #ff7700;font-weight:bold;">set</span> base <span style="color: #ff4500;">1000</span>
	<span style="color: #008000;">regexp</span> <span style="color: black;">&#123;</span><span style="color: black;">&#40;</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span>-<span style="color: #ff4500;">9</span>&#092;.<span style="color: black;">&#93;</span>+<span style="color: black;">&#41;</span><span style="color: black;">&#40;</span>&#092;w+<span style="color: black;">&#41;</span><span style="color: black;">&#125;</span> <span style="color: #ff3333;">&#36;formated</span> - s u
	<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: #ff3333;">&#36;u</span> <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #ff3333;">&#36;usi</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
		<span style="color: #ff7700;font-weight:bold;">set</span> units <span style="color: #ff3333;">&#36;usi</span>
		<span style="color: #ff7700;font-weight:bold;">set</span> base <span style="color: #ff4500;">1024</span>
	<span style="color: black;">&#125;</span>
	<span style="color: #ff7700;font-weight:bold;">for</span> <span style="color: black;">&#123;</span><span style="color: #ff7700;font-weight:bold;">set</span> i <span style="color: black;">&#91;</span><span style="color: #008000;">lsearch</span> <span style="color: #ff3333;">&#36;units</span> <span style="color: #ff3333;">&#36;u</span><span style="color: black;">&#93;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span><span style="color: #ff3333;">&#36;i</span><span style="color: #66cc66;">&gt;</span>=<span style="color: #ff4500;">0</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span><span style="color: #008000;">incr</span> i -<span style="color: #ff4500;">1</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
		<span style="color: #ff7700;font-weight:bold;">set</span> s <span style="color: black;">&#91;</span><span style="color: #ff7700;font-weight:bold;">expr</span> <span style="color: #ff3333;">&#36;s</span> <span style="color: #66cc66;">*</span> <span style="color: #ff3333;">&#36;base</span><span style="color: black;">&#93;</span>
	<span style="color: black;">&#125;</span>
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #ff3333;">&#36;s</span>
<span style="color: black;">&#125;</span></pre></code></div></div><br /><br />
]]></description>
			<content:encoded><![CDATA[Code de MenzAgitat<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: #ff7700;font-weight:bold;">proc</span> octet_formatting <span style="color: black;">&#123;</span>value <span style="color: black;">&#123;</span>SI <span style="color: #ff4500;">1</span><span style="color: black;">&#125;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
	<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span> <span style="color: #ff3333;">&#36;SI</span> <span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
		<span style="color: #ff7700;font-weight:bold;">set</span> base <span style="color: #ff4500;">1024</span>
		<span style="color: #ff7700;font-weight:bold;">set</span> units <span style="color: black;">&#123;</span>Kio Mio Gio Tio Pio Eio Zio<span style="color: black;">&#125;</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> base <span style="color: #ff4500;">1000</span>
		<span style="color: #ff7700;font-weight:bold;">set</span> units <span style="color: black;">&#123;</span>Ko Mo Go To Po Eo Zo<span style="color: black;">&#125;</span>
	<span style="color: black;">&#125;</span>   
	<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span> <span style="color: #ff3333;">&#36;value</span> <span style="color: #66cc66;">&lt;</span> <span style="color: #ff3333;">&#36;base</span> <span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span> <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #483d8b;">&quot;&#36;{value}o&quot;</span> <span style="color: black;">&#125;</span>
	<span style="color: #ff7700;font-weight:bold;">foreach</span> unit <span style="color: #ff3333;">&#36;units</span> <span style="color: black;">&#123;</span>
		<span style="color: #ff7700;font-weight:bold;">set</span> value <span style="color: black;">&#91;</span><span style="color: #ff7700;font-weight:bold;">expr</span> <span style="color: black;">&#123;</span><span style="color: #ff3333;">&#36;value</span> / <span style="color: black;">&#40;</span><span style="color: #ff3333;">&#36;base</span> / <span style="color: #ff4500;">1.0</span><span style="color: black;">&#41;</span><span style="color: black;">&#125;</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;value</span> <span style="color: #66cc66;">&lt;</span> <span style="color: #ff3333;">&#36;base</span> <span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
			<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #483d8b;">&quot;[format %1.2f &#36;value]&#36;unit&quot;</span>
		<span style="color: black;">&#125;</span>
	<span style="color: black;">&#125;</span>
<span style="color: black;">&#125;</span></pre></code></div></div><br /><br />
<br />
Conversion inverse<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> form2oct <span style="color: black;">&#123;</span>formated<span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
	<span style="color: #ff7700;font-weight:bold;">set</span> usi <span style="color: black;">&#123;</span>kio Mio Gio Tio Pio Eio Zio<span style="color: black;">&#125;</span>
	<span style="color: #ff7700;font-weight:bold;">set</span> units <span style="color: black;">&#123;</span>ko Mo Go To Po Eo Zo<span style="color: black;">&#125;</span>
	<span style="color: #ff7700;font-weight:bold;">set</span> base <span style="color: #ff4500;">1000</span>
	<span style="color: #008000;">regexp</span> <span style="color: black;">&#123;</span><span style="color: black;">&#40;</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span>-<span style="color: #ff4500;">9</span>&#092;.<span style="color: black;">&#93;</span>+<span style="color: black;">&#41;</span><span style="color: black;">&#40;</span>&#092;w+<span style="color: black;">&#41;</span><span style="color: black;">&#125;</span> <span style="color: #ff3333;">&#36;formated</span> - s u
	<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: #ff3333;">&#36;u</span> <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #ff3333;">&#36;usi</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
		<span style="color: #ff7700;font-weight:bold;">set</span> units <span style="color: #ff3333;">&#36;usi</span>
		<span style="color: #ff7700;font-weight:bold;">set</span> base <span style="color: #ff4500;">1024</span>
	<span style="color: black;">&#125;</span>
	<span style="color: #ff7700;font-weight:bold;">for</span> <span style="color: black;">&#123;</span><span style="color: #ff7700;font-weight:bold;">set</span> i <span style="color: black;">&#91;</span><span style="color: #008000;">lsearch</span> <span style="color: #ff3333;">&#36;units</span> <span style="color: #ff3333;">&#36;u</span><span style="color: black;">&#93;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span><span style="color: #ff3333;">&#36;i</span><span style="color: #66cc66;">&gt;</span>=<span style="color: #ff4500;">0</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span><span style="color: #008000;">incr</span> i -<span style="color: #ff4500;">1</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
		<span style="color: #ff7700;font-weight:bold;">set</span> s <span style="color: black;">&#91;</span><span style="color: #ff7700;font-weight:bold;">expr</span> <span style="color: #ff3333;">&#36;s</span> <span style="color: #66cc66;">*</span> <span style="color: #ff3333;">&#36;base</span><span style="color: black;">&#93;</span>
	<span style="color: black;">&#125;</span>
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #ff3333;">&#36;s</span>
<span style="color: black;">&#125;</span></pre></code></div></div><br /><br />
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Utilitaires de listes]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1772</link>
			<pubDate>Tue, 30 Jan 2024 15:45:55 +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=1772</guid>
			<description><![CDATA[Voici un petit bout de code qui est parfois utile: trouver tous les éléments d'une liste qui sont présents dans une autre liste:<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;"># Recherche les éléments de list1 contenus dans list2</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> lintersect <span style="color: black;">&#123;</span>list1 list2<span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
   <span style="color: #ff7700;font-weight:bold;">foreach</span> element <span style="color: #ff3333;">&#36;list1</span> <span style="color: black;">&#123;</span>
      <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span> <span style="color: black;">&#40;</span><span style="color: #ff3333;">&#36;element</span> <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #ff3333;">&#36;list2</span><span style="color: black;">&#41;</span> <span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span> <span style="color: #008000;">lappend</span> intersect <span style="color: #ff3333;">&#36;element</span> <span style="color: black;">&#125;</span>
   <span style="color: black;">&#125;</span>
   <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #ff3333;">&#36;intersect</span>
<span style="color: black;">&#125;</span></pre></code></div></div><br /><br />
<br />
Différence de liste:<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;"># version de #MenzAgitat</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> ldiff <span style="color: black;">&#123;</span>list1 list2<span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
   <span style="color: #ff7700;font-weight:bold;">foreach</span> element <span style="color: #ff3333;">&#36;list1</span> <span style="color: black;">&#123;</span>
      <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span> <span style="color: #66cc66;">!</span><span style="color: black;">&#40;</span><span style="color: #ff3333;">&#36;element</span> <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #ff3333;">&#36;list2</span><span style="color: black;">&#41;</span> <span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
         <span style="color: #008000;">lappend</span> diff <span style="color: #ff3333;">&#36;element</span>
      <span style="color: black;">&#125;</span>
   <span style="color: black;">&#125;</span>
   <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #ff3333;">&#36;diff</span>
<span style="color: black;">&#125;</span></pre></code></div></div><br /><br />
<br />
Les mêmes en utilisant lmap<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> lintersect <span style="color: black;">&#123;</span>list1 list2 <span style="color: black;">&#123;</span>option -exact<span style="color: black;">&#125;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
   <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: #ff3333;">&#36;option</span> ne <span style="color: #483d8b;">&quot;-nocase&quot;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span> <span style="color: #ff7700;font-weight:bold;">set</span> option -exact <span style="color: black;">&#125;</span>
   <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span>lmap x <span style="color: #ff3333;">&#36;list1</span> <span style="color: black;">&#123;</span><span style="color: #ff7700;font-weight:bold;">expr</span> <span style="color: black;">&#123;</span><span style="color: black;">&#91;</span><span style="color: #008000;">lsearch</span> <span style="color: #ff3333;">&#36;option</span> <span style="color: #ff3333;">&#36;list2</span> <span style="color: #ff3333;">&#36;x</span><span style="color: black;">&#93;</span> <span style="color: #66cc66;">&gt;</span>= <span style="color: #ff4500;">0</span> <span style="color: #66cc66;">?</span> <span style="color: #ff3333;">&#36;x</span> : <span style="color: black;">&#91;</span><span style="color: #ff7700;font-weight:bold;">continue</span><span style="color: black;">&#93;</span><span style="color: black;">&#125;</span><span style="color: black;">&#125;</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">proc</span> ldiff <span style="color: black;">&#123;</span>list1 list2 <span style="color: black;">&#123;</span>option -exact<span style="color: black;">&#125;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
   <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: #ff3333;">&#36;option</span> ne <span style="color: #483d8b;">&quot;-nocase&quot;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span> <span style="color: #ff7700;font-weight:bold;">set</span> option -exact <span style="color: black;">&#125;</span>
   <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span>lmap x <span style="color: #ff3333;">&#36;list1</span> <span style="color: black;">&#123;</span><span style="color: #ff7700;font-weight:bold;">expr</span> <span style="color: black;">&#123;</span><span style="color: black;">&#91;</span><span style="color: #008000;">lsearch</span> <span style="color: #ff3333;">&#36;option</span> <span style="color: #ff3333;">&#36;list2</span> <span style="color: #ff3333;">&#36;x</span><span style="color: black;">&#93;</span> <span style="color: #66cc66;">&lt;</span> <span style="color: #ff4500;">0</span> <span style="color: #66cc66;">?</span> <span style="color: #ff3333;">&#36;x</span> : <span style="color: black;">&#91;</span><span style="color: #ff7700;font-weight:bold;">continue</span><span style="color: black;">&#93;</span><span style="color: black;">&#125;</span><span style="color: black;">&#125;</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span></pre></code></div></div><br /><br />
]]></description>
			<content:encoded><![CDATA[Voici un petit bout de code qui est parfois utile: trouver tous les éléments d'une liste qui sont présents dans une autre liste:<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;"># Recherche les éléments de list1 contenus dans list2</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> lintersect <span style="color: black;">&#123;</span>list1 list2<span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
   <span style="color: #ff7700;font-weight:bold;">foreach</span> element <span style="color: #ff3333;">&#36;list1</span> <span style="color: black;">&#123;</span>
      <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span> <span style="color: black;">&#40;</span><span style="color: #ff3333;">&#36;element</span> <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #ff3333;">&#36;list2</span><span style="color: black;">&#41;</span> <span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span> <span style="color: #008000;">lappend</span> intersect <span style="color: #ff3333;">&#36;element</span> <span style="color: black;">&#125;</span>
   <span style="color: black;">&#125;</span>
   <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #ff3333;">&#36;intersect</span>
<span style="color: black;">&#125;</span></pre></code></div></div><br /><br />
<br />
Différence de liste:<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;"># version de #MenzAgitat</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> ldiff <span style="color: black;">&#123;</span>list1 list2<span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
   <span style="color: #ff7700;font-weight:bold;">foreach</span> element <span style="color: #ff3333;">&#36;list1</span> <span style="color: black;">&#123;</span>
      <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span> <span style="color: #66cc66;">!</span><span style="color: black;">&#40;</span><span style="color: #ff3333;">&#36;element</span> <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #ff3333;">&#36;list2</span><span style="color: black;">&#41;</span> <span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
         <span style="color: #008000;">lappend</span> diff <span style="color: #ff3333;">&#36;element</span>
      <span style="color: black;">&#125;</span>
   <span style="color: black;">&#125;</span>
   <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #ff3333;">&#36;diff</span>
<span style="color: black;">&#125;</span></pre></code></div></div><br /><br />
<br />
Les mêmes en utilisant lmap<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> lintersect <span style="color: black;">&#123;</span>list1 list2 <span style="color: black;">&#123;</span>option -exact<span style="color: black;">&#125;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
   <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: #ff3333;">&#36;option</span> ne <span style="color: #483d8b;">&quot;-nocase&quot;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span> <span style="color: #ff7700;font-weight:bold;">set</span> option -exact <span style="color: black;">&#125;</span>
   <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span>lmap x <span style="color: #ff3333;">&#36;list1</span> <span style="color: black;">&#123;</span><span style="color: #ff7700;font-weight:bold;">expr</span> <span style="color: black;">&#123;</span><span style="color: black;">&#91;</span><span style="color: #008000;">lsearch</span> <span style="color: #ff3333;">&#36;option</span> <span style="color: #ff3333;">&#36;list2</span> <span style="color: #ff3333;">&#36;x</span><span style="color: black;">&#93;</span> <span style="color: #66cc66;">&gt;</span>= <span style="color: #ff4500;">0</span> <span style="color: #66cc66;">?</span> <span style="color: #ff3333;">&#36;x</span> : <span style="color: black;">&#91;</span><span style="color: #ff7700;font-weight:bold;">continue</span><span style="color: black;">&#93;</span><span style="color: black;">&#125;</span><span style="color: black;">&#125;</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">proc</span> ldiff <span style="color: black;">&#123;</span>list1 list2 <span style="color: black;">&#123;</span>option -exact<span style="color: black;">&#125;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
   <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: #ff3333;">&#36;option</span> ne <span style="color: #483d8b;">&quot;-nocase&quot;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span> <span style="color: #ff7700;font-weight:bold;">set</span> option -exact <span style="color: black;">&#125;</span>
   <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span>lmap x <span style="color: #ff3333;">&#36;list1</span> <span style="color: black;">&#123;</span><span style="color: #ff7700;font-weight:bold;">expr</span> <span style="color: black;">&#123;</span><span style="color: black;">&#91;</span><span style="color: #008000;">lsearch</span> <span style="color: #ff3333;">&#36;option</span> <span style="color: #ff3333;">&#36;list2</span> <span style="color: #ff3333;">&#36;x</span><span style="color: black;">&#93;</span> <span style="color: #66cc66;">&lt;</span> <span style="color: #ff4500;">0</span> <span style="color: #66cc66;">?</span> <span style="color: #ff3333;">&#36;x</span> : <span style="color: black;">&#91;</span><span style="color: #ff7700;font-weight:bold;">continue</span><span style="color: black;">&#93;</span><span style="color: black;">&#125;</span><span style="color: black;">&#125;</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span></pre></code></div></div><br /><br />
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Les hooks, rôle et utilité]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1771</link>
			<pubDate>Mon, 29 Jan 2024 15:10:49 +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=1771</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b">Explication de la problématique initiale</span><br />
Sur le script lycanobot (Les loups-garous de Thiercelieux), je dois importer des profils de joueurs particuliers qui doivent déclencher des actions à certains moments, et ses profils sont chargés en fonction du mode de jeu et/ou du nombre de joueurs. J'ai pris le parti de créer des fichiers annexes chargés à la demande.<br />
Il est donc assez complexe de prévoir dans le script initial quels seront les jobs chargés, d'autant plus que le but est de permettre facilement la création de nouveaux profils.<br />
<br />
Mon idée est d'avoir une structure quasi identique pour chaque job, avec des procédures normées qui seraient appelées si besoin est, et sans avoir à gérer dans le script principal toute une palanquée de conditions ou de vérifications pour savoir si tel ou tel job est chargé.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Solution : le hook</span><br />
<br />
Le hook, je le connais dans d'autres systèmes (et d'autres langages), c'est plus ou moins un système qui permet de raccrocher des fonctions à un déclencheur déterminé dans le programme principal. Et depuis tcl8.5, il y a un package hook.<br />
(la suite part du principe que vous avez déjà fait <code class="inline-code">package require hook</code>)<br />
<span style="text-decoration: underline;" class="mycode_u">Créer un hook (bind)</span><br />
Le hook se définit par 4 argument :<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;">hook bind subject hook observer binding</pre></code></div></div><br /><br />
subject et hook sont des paramètres qui permettent plus ou moins de définir une arborescence, et observer permet de distinguer qui est le destinataire du hook. binding est la procédure qui sera appelée.<br />
Dans mon cas, j'ai deux jobs (angel et thief), qui contiennent (dans leur propre namespace):<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;"># angel.job</span>
hook bind job start angel <span style="color: black;">&#91;</span><span style="color: #ff7700;font-weight:bold;">namespace</span> current<span style="color: black;">&#93;</span>::<span style="color: black;">start</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> start <span style="color: black;">&#123;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span> putlog <span style="color: #483d8b;">&quot;Angel is loaded&quot;</span> <span style="color: black;">&#125;</span>
<span style="color: #808080; font-style: italic;">#thief</span>
hook bind job start thief <span style="color: black;">&#91;</span><span style="color: #ff7700;font-weight:bold;">namespace</span> current<span style="color: black;">&#93;</span>::<span style="color: black;">start</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> start <span style="color: black;">&#123;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span> putlog <span style="color: #483d8b;">&quot;Thief is loaded&quot;</span> <span style="color: black;">&#125;</span></pre></code></div></div><br /><br />
Lorsque les scripts sont chargés (depuis le namespace principal), il pourront être appelés avec la bonne commande (on verra ensuite) en passant les infos "job" et "start". Si je veux ajouter d'autres hooks, je garderai "job" comme sujet, et je mettrai un autre hook (par exemple end pour appeler une procédure qui doit se déclencher à la fin).<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>.tcl hook bind<br />
Tcl: job<br />
.tcl hook bind job<br />
Tcl: start<br />
.tcl hook bind job start<br />
Tcl: angel thief</code></div></div>L'eggdrop voit donc les hooks propres à chaque sous-script, ce qui signifie que si un sous-script ne doit pas être appelé à un moment, il suffit qu'il n'ait pas son hook.<br />
<br />
<span style="text-decoration: underline;" class="mycode_u">Déclencher le hook (call)</span><br />
<br />
C'est la partie la plus simple: il vous suffit de faire:<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;">hook call subject hook arguments</pre></code></div></div><br /><br />
subject et hook sont donc dans mon cas "job" et "start", pour le hook de fin ce sera "job" et "end". Les arguments (s'ils existent) sont passés aux procédures déclarées en binding:<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>.tcl hook call job start<br />
[16:38] Angel is loaded<br />
[16:38] Thief is loaded</code></div></div><br />
Je ferai dans les jours qui viennent la page wiki concernant ce package qui peut s'avérer fort utile.]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b">Explication de la problématique initiale</span><br />
Sur le script lycanobot (Les loups-garous de Thiercelieux), je dois importer des profils de joueurs particuliers qui doivent déclencher des actions à certains moments, et ses profils sont chargés en fonction du mode de jeu et/ou du nombre de joueurs. J'ai pris le parti de créer des fichiers annexes chargés à la demande.<br />
Il est donc assez complexe de prévoir dans le script initial quels seront les jobs chargés, d'autant plus que le but est de permettre facilement la création de nouveaux profils.<br />
<br />
Mon idée est d'avoir une structure quasi identique pour chaque job, avec des procédures normées qui seraient appelées si besoin est, et sans avoir à gérer dans le script principal toute une palanquée de conditions ou de vérifications pour savoir si tel ou tel job est chargé.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Solution : le hook</span><br />
<br />
Le hook, je le connais dans d'autres systèmes (et d'autres langages), c'est plus ou moins un système qui permet de raccrocher des fonctions à un déclencheur déterminé dans le programme principal. Et depuis tcl8.5, il y a un package hook.<br />
(la suite part du principe que vous avez déjà fait <code class="inline-code">package require hook</code>)<br />
<span style="text-decoration: underline;" class="mycode_u">Créer un hook (bind)</span><br />
Le hook se définit par 4 argument :<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;">hook bind subject hook observer binding</pre></code></div></div><br /><br />
subject et hook sont des paramètres qui permettent plus ou moins de définir une arborescence, et observer permet de distinguer qui est le destinataire du hook. binding est la procédure qui sera appelée.<br />
Dans mon cas, j'ai deux jobs (angel et thief), qui contiennent (dans leur propre namespace):<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;"># angel.job</span>
hook bind job start angel <span style="color: black;">&#91;</span><span style="color: #ff7700;font-weight:bold;">namespace</span> current<span style="color: black;">&#93;</span>::<span style="color: black;">start</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> start <span style="color: black;">&#123;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span> putlog <span style="color: #483d8b;">&quot;Angel is loaded&quot;</span> <span style="color: black;">&#125;</span>
<span style="color: #808080; font-style: italic;">#thief</span>
hook bind job start thief <span style="color: black;">&#91;</span><span style="color: #ff7700;font-weight:bold;">namespace</span> current<span style="color: black;">&#93;</span>::<span style="color: black;">start</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> start <span style="color: black;">&#123;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span> putlog <span style="color: #483d8b;">&quot;Thief is loaded&quot;</span> <span style="color: black;">&#125;</span></pre></code></div></div><br /><br />
Lorsque les scripts sont chargés (depuis le namespace principal), il pourront être appelés avec la bonne commande (on verra ensuite) en passant les infos "job" et "start". Si je veux ajouter d'autres hooks, je garderai "job" comme sujet, et je mettrai un autre hook (par exemple end pour appeler une procédure qui doit se déclencher à la fin).<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>.tcl hook bind<br />
Tcl: job<br />
.tcl hook bind job<br />
Tcl: start<br />
.tcl hook bind job start<br />
Tcl: angel thief</code></div></div>L'eggdrop voit donc les hooks propres à chaque sous-script, ce qui signifie que si un sous-script ne doit pas être appelé à un moment, il suffit qu'il n'ait pas son hook.<br />
<br />
<span style="text-decoration: underline;" class="mycode_u">Déclencher le hook (call)</span><br />
<br />
C'est la partie la plus simple: il vous suffit de faire:<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;">hook call subject hook arguments</pre></code></div></div><br /><br />
subject et hook sont donc dans mon cas "job" et "start", pour le hook de fin ce sera "job" et "end". Les arguments (s'ils existent) sont passés aux procédures déclarées en binding:<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>.tcl hook call job start<br />
[16:38] Angel is loaded<br />
[16:38] Thief is loaded</code></div></div><br />
Je ferai dans les jours qui viennent la page wiki concernant ce package qui peut s'avérer fort utile.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Calcul de date future]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1753</link>
			<pubDate>Wed, 25 Oct 2023 13:42:57 +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=1753</guid>
			<description><![CDATA[Ce petit bout de code permet de convertir un délai au format <code class="inline-code">XXyXXwXXdXXhXXmXXs</code> (années, semaines, jours, heures, minutes, secondes) en un unix timestamp (nombre de secondes écoulées depuis le 1er janvier 1970 à 0h0m0s).<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: #ff7700;font-weight:bold;">namespace</span> <span style="color: #ff7700;font-weight:bold;">eval</span> dates <span style="color: black;">&#123;</span>
&nbsp;
   <span style="color: #ff7700;font-weight:bold;">variable</span> treg <span style="color: black;">&#123;</span>^<span style="color: black;">&#40;</span><span style="color: black;">&#40;</span>&#092;d<span style="color: black;">&#123;</span><span style="color: #ff4500;">1</span>,<span style="color: #ff4500;">2</span><span style="color: black;">&#125;</span><span style="color: black;">&#41;</span>y<span style="color: black;">&#41;</span><span style="color: #66cc66;">?</span><span style="color: black;">&#40;</span><span style="color: black;">&#40;</span>&#092;d<span style="color: black;">&#123;</span><span style="color: #ff4500;">1</span>,<span style="color: black;">&#125;</span><span style="color: black;">&#41;</span>w<span style="color: black;">&#41;</span><span style="color: #66cc66;">?</span><span style="color: black;">&#40;</span><span style="color: black;">&#40;</span>&#092;d<span style="color: black;">&#123;</span><span style="color: #ff4500;">1</span>,<span style="color: black;">&#125;</span><span style="color: black;">&#41;</span>d<span style="color: black;">&#41;</span><span style="color: #66cc66;">?</span><span style="color: black;">&#40;</span><span style="color: black;">&#40;</span>&#092;d<span style="color: black;">&#123;</span><span style="color: #ff4500;">1</span>,<span style="color: black;">&#125;</span><span style="color: black;">&#41;</span>h<span style="color: black;">&#41;</span><span style="color: #66cc66;">?</span><span style="color: black;">&#40;</span><span style="color: black;">&#40;</span>&#092;d<span style="color: black;">&#123;</span><span style="color: #ff4500;">1</span>,<span style="color: black;">&#125;</span><span style="color: black;">&#41;</span>m<span style="color: black;">&#41;</span><span style="color: #66cc66;">?</span><span style="color: black;">&#40;</span><span style="color: black;">&#40;</span>&#092;d<span style="color: black;">&#123;</span><span style="color: #ff4500;">1</span>,<span style="color: black;">&#125;</span><span style="color: black;">&#41;</span>s<span style="color: black;">&#41;</span><span style="color: #66cc66;">?&#36;</span><span style="color: black;">&#125;</span>
&nbsp;
   <span style="color: #ff7700;font-weight:bold;">proc</span> futur <span style="color: black;">&#123;</span>sdate<span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
      <span style="color: #ff7700;font-weight:bold;">set</span> more <span style="color: black;">&#123;</span><span style="color: black;">&#125;</span>
      <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: #66cc66;">!</span><span style="color: black;">&#91;</span><span style="color: #008000;">regexp</span> -nocase -- <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">dates</span>::<span style="color: black;">treg</span> <span style="color: #ff3333;">&#36;sdate</span> -<span style="color: #66cc66;">&gt;</span> Y y W w D d H h M m S s<span style="color: black;">&#93;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
         putlog <span style="color: #483d8b;">&quot;Désolé mais &#36;sdate n'est pas un format reconnu&quot;</span>
         <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span><span style="color: #008000;">clock</span> seconds<span style="color: black;">&#93;</span>
      <span style="color: black;">&#125;</span>
      <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: black;">&#91;</span><span style="color: #008000;">info</span> exists y<span style="color: black;">&#93;</span> <span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #ff3333;">&#36;y</span> ne <span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span> <span style="color: #008000;">lappend</span> more <span style="color: #483d8b;">&quot;&#36;y years&quot;</span> <span style="color: black;">&#125;</span>
      <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: black;">&#91;</span><span style="color: #008000;">info</span> exists w<span style="color: black;">&#93;</span> <span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #ff3333;">&#36;w</span> ne <span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span> <span style="color: #008000;">lappend</span> more <span style="color: #483d8b;">&quot;&#36;w weeks&quot;</span> <span style="color: black;">&#125;</span>
      <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: black;">&#91;</span><span style="color: #008000;">info</span> exists d<span style="color: black;">&#93;</span> <span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #ff3333;">&#36;d</span> ne <span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span> <span style="color: #008000;">lappend</span> more <span style="color: #483d8b;">&quot;&#36;d days&quot;</span> <span style="color: black;">&#125;</span>
      <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: black;">&#91;</span><span style="color: #008000;">info</span> exists h<span style="color: black;">&#93;</span> <span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #ff3333;">&#36;h</span> ne <span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span> <span style="color: #008000;">lappend</span> more <span style="color: #483d8b;">&quot;&#36;h hours&quot;</span> <span style="color: black;">&#125;</span>
      <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: black;">&#91;</span><span style="color: #008000;">info</span> exists m<span style="color: black;">&#93;</span> <span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #ff3333;">&#36;m</span> ne <span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span> <span style="color: #008000;">lappend</span> more <span style="color: #483d8b;">&quot;&#36;m minutes&quot;</span> <span style="color: black;">&#125;</span>
      <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: black;">&#91;</span><span style="color: #008000;">info</span> exists s<span style="color: black;">&#93;</span> <span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #ff3333;">&#36;s</span> ne <span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span> <span style="color: #008000;">lappend</span> more <span style="color: #483d8b;">&quot;&#36;s seconds&quot;</span> <span style="color: black;">&#125;</span>
      <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span><span style="color: #008000;">clock</span> add <span style="color: black;">&#91;</span><span style="color: #008000;">clock</span> seconds<span style="color: black;">&#93;</span> <span style="color: black;">&#123;</span><span style="color: #66cc66;">*</span><span style="color: black;">&#125;</span><span style="color: black;">&#91;</span><span style="color: #008000;">join</span> <span style="color: #ff3333;">&#36;more</span> <span style="color: #483d8b;">&quot; &quot;</span><span style="color: black;">&#93;</span><span style="color: black;">&#93;</span>
   <span style="color: black;">&#125;</span>
<span style="color: black;">&#125;</span></pre></code></div></div><br /><br />
<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>.tcl clock format [::dates::futur "abc"]<br />
Désolé mais abc n'est pas un format reconnu<br />
Tcl: Wed Oct 25 15:35:04 CEST 2023<br />
.tcl clock format [::dates::futur "1d3h"]<br />
Tcl: Thu Oct 26 18:35:04 CEST 2023<br />
.tcl clock format [::dates::futur "2y2w2h5s"]<br />
Tcl: Sat Nov 08 17:35:09 CEST 2025<br />
.tcl clock format [::dates::futur "2h2w2m5s"]<br />
Désolé mais 2h2w2m5s n'est pas un format reconnu<br />
Tcl: Wed Oct 25 15:35:04 CEST 2023</code></div></div><br />
L'ordre dans le délai est important, cela permet de garder une cohérence dans les valeurs entrées.<br />
En cas d'erreur (délai invalide), c'est le timestamp courant qui est retourné.]]></description>
			<content:encoded><![CDATA[Ce petit bout de code permet de convertir un délai au format <code class="inline-code">XXyXXwXXdXXhXXmXXs</code> (années, semaines, jours, heures, minutes, secondes) en un unix timestamp (nombre de secondes écoulées depuis le 1er janvier 1970 à 0h0m0s).<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: #ff7700;font-weight:bold;">namespace</span> <span style="color: #ff7700;font-weight:bold;">eval</span> dates <span style="color: black;">&#123;</span>
&nbsp;
   <span style="color: #ff7700;font-weight:bold;">variable</span> treg <span style="color: black;">&#123;</span>^<span style="color: black;">&#40;</span><span style="color: black;">&#40;</span>&#092;d<span style="color: black;">&#123;</span><span style="color: #ff4500;">1</span>,<span style="color: #ff4500;">2</span><span style="color: black;">&#125;</span><span style="color: black;">&#41;</span>y<span style="color: black;">&#41;</span><span style="color: #66cc66;">?</span><span style="color: black;">&#40;</span><span style="color: black;">&#40;</span>&#092;d<span style="color: black;">&#123;</span><span style="color: #ff4500;">1</span>,<span style="color: black;">&#125;</span><span style="color: black;">&#41;</span>w<span style="color: black;">&#41;</span><span style="color: #66cc66;">?</span><span style="color: black;">&#40;</span><span style="color: black;">&#40;</span>&#092;d<span style="color: black;">&#123;</span><span style="color: #ff4500;">1</span>,<span style="color: black;">&#125;</span><span style="color: black;">&#41;</span>d<span style="color: black;">&#41;</span><span style="color: #66cc66;">?</span><span style="color: black;">&#40;</span><span style="color: black;">&#40;</span>&#092;d<span style="color: black;">&#123;</span><span style="color: #ff4500;">1</span>,<span style="color: black;">&#125;</span><span style="color: black;">&#41;</span>h<span style="color: black;">&#41;</span><span style="color: #66cc66;">?</span><span style="color: black;">&#40;</span><span style="color: black;">&#40;</span>&#092;d<span style="color: black;">&#123;</span><span style="color: #ff4500;">1</span>,<span style="color: black;">&#125;</span><span style="color: black;">&#41;</span>m<span style="color: black;">&#41;</span><span style="color: #66cc66;">?</span><span style="color: black;">&#40;</span><span style="color: black;">&#40;</span>&#092;d<span style="color: black;">&#123;</span><span style="color: #ff4500;">1</span>,<span style="color: black;">&#125;</span><span style="color: black;">&#41;</span>s<span style="color: black;">&#41;</span><span style="color: #66cc66;">?&#36;</span><span style="color: black;">&#125;</span>
&nbsp;
   <span style="color: #ff7700;font-weight:bold;">proc</span> futur <span style="color: black;">&#123;</span>sdate<span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
      <span style="color: #ff7700;font-weight:bold;">set</span> more <span style="color: black;">&#123;</span><span style="color: black;">&#125;</span>
      <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: #66cc66;">!</span><span style="color: black;">&#91;</span><span style="color: #008000;">regexp</span> -nocase -- <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">dates</span>::<span style="color: black;">treg</span> <span style="color: #ff3333;">&#36;sdate</span> -<span style="color: #66cc66;">&gt;</span> Y y W w D d H h M m S s<span style="color: black;">&#93;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
         putlog <span style="color: #483d8b;">&quot;Désolé mais &#36;sdate n'est pas un format reconnu&quot;</span>
         <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span><span style="color: #008000;">clock</span> seconds<span style="color: black;">&#93;</span>
      <span style="color: black;">&#125;</span>
      <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: black;">&#91;</span><span style="color: #008000;">info</span> exists y<span style="color: black;">&#93;</span> <span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #ff3333;">&#36;y</span> ne <span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span> <span style="color: #008000;">lappend</span> more <span style="color: #483d8b;">&quot;&#36;y years&quot;</span> <span style="color: black;">&#125;</span>
      <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: black;">&#91;</span><span style="color: #008000;">info</span> exists w<span style="color: black;">&#93;</span> <span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #ff3333;">&#36;w</span> ne <span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span> <span style="color: #008000;">lappend</span> more <span style="color: #483d8b;">&quot;&#36;w weeks&quot;</span> <span style="color: black;">&#125;</span>
      <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: black;">&#91;</span><span style="color: #008000;">info</span> exists d<span style="color: black;">&#93;</span> <span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #ff3333;">&#36;d</span> ne <span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span> <span style="color: #008000;">lappend</span> more <span style="color: #483d8b;">&quot;&#36;d days&quot;</span> <span style="color: black;">&#125;</span>
      <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: black;">&#91;</span><span style="color: #008000;">info</span> exists h<span style="color: black;">&#93;</span> <span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #ff3333;">&#36;h</span> ne <span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span> <span style="color: #008000;">lappend</span> more <span style="color: #483d8b;">&quot;&#36;h hours&quot;</span> <span style="color: black;">&#125;</span>
      <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: black;">&#91;</span><span style="color: #008000;">info</span> exists m<span style="color: black;">&#93;</span> <span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #ff3333;">&#36;m</span> ne <span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span> <span style="color: #008000;">lappend</span> more <span style="color: #483d8b;">&quot;&#36;m minutes&quot;</span> <span style="color: black;">&#125;</span>
      <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: black;">&#91;</span><span style="color: #008000;">info</span> exists s<span style="color: black;">&#93;</span> <span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #ff3333;">&#36;s</span> ne <span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span> <span style="color: #008000;">lappend</span> more <span style="color: #483d8b;">&quot;&#36;s seconds&quot;</span> <span style="color: black;">&#125;</span>
      <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span><span style="color: #008000;">clock</span> add <span style="color: black;">&#91;</span><span style="color: #008000;">clock</span> seconds<span style="color: black;">&#93;</span> <span style="color: black;">&#123;</span><span style="color: #66cc66;">*</span><span style="color: black;">&#125;</span><span style="color: black;">&#91;</span><span style="color: #008000;">join</span> <span style="color: #ff3333;">&#36;more</span> <span style="color: #483d8b;">&quot; &quot;</span><span style="color: black;">&#93;</span><span style="color: black;">&#93;</span>
   <span style="color: black;">&#125;</span>
<span style="color: black;">&#125;</span></pre></code></div></div><br /><br />
<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>.tcl clock format [::dates::futur "abc"]<br />
Désolé mais abc n'est pas un format reconnu<br />
Tcl: Wed Oct 25 15:35:04 CEST 2023<br />
.tcl clock format [::dates::futur "1d3h"]<br />
Tcl: Thu Oct 26 18:35:04 CEST 2023<br />
.tcl clock format [::dates::futur "2y2w2h5s"]<br />
Tcl: Sat Nov 08 17:35:09 CEST 2025<br />
.tcl clock format [::dates::futur "2h2w2m5s"]<br />
Désolé mais 2h2w2m5s n'est pas un format reconnu<br />
Tcl: Wed Oct 25 15:35:04 CEST 2023</code></div></div><br />
L'ordre dans le délai est important, cela permet de garder une cohérence dans les valeurs entrées.<br />
En cas d'erreur (délai invalide), c'est le timestamp courant qui est retourné.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Comparaison de version de l'eggdrop]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1752</link>
			<pubDate>Wed, 25 Oct 2023 08:48:16 +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=1752</guid>
			<description><![CDATA[Plusieurs scripts sont fait pour fonctionner avec une version minimale d'eggdrop, en s'appuyant sur la variable <code class="inline-code">&#36;::version</code><br />
<br />
Cette variable a changé depuis eggdrop 1.8, précédement elle ne contenait que le N° de version d'eggdrop, désormais elle contient la version au format texte suivi du numéro de version:<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>.tcl putlog &#36;version<br />
1.9.2+stdin 1090204</code></div></div>Pour n'utiliser que le numéro de version, une variable a été introduite: <code class="inline-code">&#36;::numversion</code><br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>.tcl putlog &#36;numversion<br />
1090204</code></div></div>&#36;::numversion est sous la forme MNNRRPP, avec comme éléments:<ul class="mycode_list"><li>M : numéro de release Majeure sur 1 digit (donc 1 actuellement)<br />
</li>
<li>NN : numéro de release miNeure sur 2 digits (donc 09)<br />
</li>
<li>RR : numéro de sous-Release sur 2 digits (donc 02)<br />
</li>
<li>PP : numéro de Patch sur 2 digits (donc 04)<br />
</li>
</ul>
<br />
Un eggdrop 1.6.21-4 aurait donc le numversion 1062104, un eggdrop 1.8.3-2 serait 1080302 et la version actuelle d'eggdrop est 1090203<br />
<br />
<span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">Comment corriger les scripts ?</span></span><br />
Trouvez la ligne qui commence (souvent) par:<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;">if</span> <span style="color: black;">&#123;</span> <span style="color: black;">&#91;</span><span style="color: #008000;">regsub</span> -all <span style="color: black;">&#123;</span>&#092;.<span style="color: black;">&#125;</span> <span style="color: black;">&#91;</span><span style="color: #008000;">lindex</span> <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">version</span> <span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span> <span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#93;</span> <span style="color: #66cc66;">&lt;</span> <span style="color: #ff4500;">1620</span> <span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span></pre></code></div></div><br /><br />
<br />
Remplacez cette portion par (au choix):<br />
<br />
<span style="font-weight: bold;" class="mycode_b">1. l'utilisation de la bonne partie de &#36;version</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: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span> <span style="color: black;">&#91;</span><span style="color: #008000;">regsub</span> -all <span style="color: black;">&#123;</span>&#092;.<span style="color: black;">&#125;</span> <span style="color: black;">&#91;</span><span style="color: #008000;">lindex</span> <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">version</span> <span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span> <span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#93;</span> <span style="color: #66cc66;">&lt;</span> <span style="color: #ff4500;">1620</span> <span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span></pre></code></div></div><br /><br />
<br />
<span style="font-weight: bold;" class="mycode_b">2. la comparaison par l'utilitaire de package</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: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span> <span style="color: black;">&#91;</span><span style="color: #008000;">package</span> vcompare <span style="color: black;">&#91;</span><span style="color: #008000;">regexp</span> -inline <span style="color: black;">&#123;</span>^<span style="color: black;">&#91;</span><span style="color: black;">&#91;</span>:digit:<span style="color: black;">&#93;</span>&#092;.<span style="color: black;">&#93;</span>+<span style="color: black;">&#125;</span> <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">version</span><span style="color: black;">&#93;</span> 1.6.20<span style="color: black;">&#93;</span> == -<span style="color: #ff4500;">1</span> <span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span></pre></code></div></div><br /><br />
<br />
<span style="font-weight: bold;" class="mycode_b">3. l'utilisation de &#36;numversion</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: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: black;">&#91;</span><span style="color: #008000;">info</span> exists ::<span style="color: black;">numversion</span><span style="color: black;">&#93;</span> <span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">numversion</span> <span style="color: #66cc66;">&gt;</span> <span style="color: #ff4500;">1080000</span> <span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span></pre></code></div></div><br /><br />
Notez que cette dernière méthode ne sert qu'à tester que votre eggdrop est au moins en version 1.8. Si votre script est applicable aux eggdrops 1.6, préférez les méthodes précédentes.]]></description>
			<content:encoded><![CDATA[Plusieurs scripts sont fait pour fonctionner avec une version minimale d'eggdrop, en s'appuyant sur la variable <code class="inline-code">&#36;::version</code><br />
<br />
Cette variable a changé depuis eggdrop 1.8, précédement elle ne contenait que le N° de version d'eggdrop, désormais elle contient la version au format texte suivi du numéro de version:<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>.tcl putlog &#36;version<br />
1.9.2+stdin 1090204</code></div></div>Pour n'utiliser que le numéro de version, une variable a été introduite: <code class="inline-code">&#36;::numversion</code><br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>.tcl putlog &#36;numversion<br />
1090204</code></div></div>&#36;::numversion est sous la forme MNNRRPP, avec comme éléments:<ul class="mycode_list"><li>M : numéro de release Majeure sur 1 digit (donc 1 actuellement)<br />
</li>
<li>NN : numéro de release miNeure sur 2 digits (donc 09)<br />
</li>
<li>RR : numéro de sous-Release sur 2 digits (donc 02)<br />
</li>
<li>PP : numéro de Patch sur 2 digits (donc 04)<br />
</li>
</ul>
<br />
Un eggdrop 1.6.21-4 aurait donc le numversion 1062104, un eggdrop 1.8.3-2 serait 1080302 et la version actuelle d'eggdrop est 1090203<br />
<br />
<span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b">Comment corriger les scripts ?</span></span><br />
Trouvez la ligne qui commence (souvent) par:<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;">if</span> <span style="color: black;">&#123;</span> <span style="color: black;">&#91;</span><span style="color: #008000;">regsub</span> -all <span style="color: black;">&#123;</span>&#092;.<span style="color: black;">&#125;</span> <span style="color: black;">&#91;</span><span style="color: #008000;">lindex</span> <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">version</span> <span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span> <span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#93;</span> <span style="color: #66cc66;">&lt;</span> <span style="color: #ff4500;">1620</span> <span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span></pre></code></div></div><br /><br />
<br />
Remplacez cette portion par (au choix):<br />
<br />
<span style="font-weight: bold;" class="mycode_b">1. l'utilisation de la bonne partie de &#36;version</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: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span> <span style="color: black;">&#91;</span><span style="color: #008000;">regsub</span> -all <span style="color: black;">&#123;</span>&#092;.<span style="color: black;">&#125;</span> <span style="color: black;">&#91;</span><span style="color: #008000;">lindex</span> <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">version</span> <span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span> <span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#93;</span> <span style="color: #66cc66;">&lt;</span> <span style="color: #ff4500;">1620</span> <span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span></pre></code></div></div><br /><br />
<br />
<span style="font-weight: bold;" class="mycode_b">2. la comparaison par l'utilitaire de package</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: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span> <span style="color: black;">&#91;</span><span style="color: #008000;">package</span> vcompare <span style="color: black;">&#91;</span><span style="color: #008000;">regexp</span> -inline <span style="color: black;">&#123;</span>^<span style="color: black;">&#91;</span><span style="color: black;">&#91;</span>:digit:<span style="color: black;">&#93;</span>&#092;.<span style="color: black;">&#93;</span>+<span style="color: black;">&#125;</span> <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">version</span><span style="color: black;">&#93;</span> 1.6.20<span style="color: black;">&#93;</span> == -<span style="color: #ff4500;">1</span> <span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span></pre></code></div></div><br /><br />
<br />
<span style="font-weight: bold;" class="mycode_b">3. l'utilisation de &#36;numversion</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: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span><span style="color: black;">&#91;</span><span style="color: #008000;">info</span> exists ::<span style="color: black;">numversion</span><span style="color: black;">&#93;</span> <span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #66cc66;">&#36;</span>::<span style="color: black;">numversion</span> <span style="color: #66cc66;">&gt;</span> <span style="color: #ff4500;">1080000</span> <span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span></pre></code></div></div><br /><br />
Notez que cette dernière méthode ne sert qu'à tester que votre eggdrop est au moins en version 1.8. Si votre script est applicable aux eggdrops 1.6, préférez les méthodes précédentes.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Intersection de listes]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1668</link>
			<pubDate>Thu, 02 Mar 2017 08:04:02 +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=1668</guid>
			<description><![CDATA[Voici un petit bout de code qui est parfois utile: trouver tous les éléments d'une liste qui sont présents dans une autre liste:<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;"># Recherche les éléments de list1 contenus dans list2</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> lintersect <span style="color: black;">&#123;</span>list1 list2<span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
   <span style="color: #ff7700;font-weight:bold;">foreach</span> element <span style="color: #ff3333;">&#36;list1</span> <span style="color: black;">&#123;</span>
      <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span> <span style="color: black;">&#40;</span><span style="color: #ff3333;">&#36;element</span> <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #ff3333;">&#36;list2</span><span style="color: black;">&#41;</span> <span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span> <span style="color: #008000;">lappend</span> intersect <span style="color: #ff3333;">&#36;element</span> <span style="color: black;">&#125;</span>
   <span style="color: black;">&#125;</span>
   <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #ff3333;">&#36;intersect</span>
<span style="color: black;">&#125;</span></pre></code></div></div><br /><br />
]]></description>
			<content:encoded><![CDATA[Voici un petit bout de code qui est parfois utile: trouver tous les éléments d'une liste qui sont présents dans une autre liste:<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;"># Recherche les éléments de list1 contenus dans list2</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> lintersect <span style="color: black;">&#123;</span>list1 list2<span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
   <span style="color: #ff7700;font-weight:bold;">foreach</span> element <span style="color: #ff3333;">&#36;list1</span> <span style="color: black;">&#123;</span>
      <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span> <span style="color: black;">&#40;</span><span style="color: #ff3333;">&#36;element</span> <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #ff3333;">&#36;list2</span><span style="color: black;">&#41;</span> <span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span> <span style="color: #008000;">lappend</span> intersect <span style="color: #ff3333;">&#36;element</span> <span style="color: black;">&#125;</span>
   <span style="color: black;">&#125;</span>
   <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #ff3333;">&#36;intersect</span>
<span style="color: black;">&#125;</span></pre></code></div></div><br /><br />
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Putlog en couleurs]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1636</link>
			<pubDate>Sat, 08 Oct 2016 15:41:26 +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=1636</guid>
			<description><![CDATA[Le but de ce petit script est de pouvoir faire un putlog avec une mise en couleur du texte en fonction du degré d'importance du message.<br />
<br />
Source: <a href="http://tools.eggdrop.fr/pasteme/view/46ad7d7b" target="_blank" rel="noopener" class="mycode_url">http://tools.eggdrop.fr/pasteme/view/46ad7d7b</a><br />
<br />
Le fonctionnement est très simple:<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>::d::putlog "votre message à coloriser" [level]</code></div></div><span style="font-style: italic;" class="mycode_i">level</span> comprend 6 possibilités: error, warning, notice, debug, info, success<br />
Si vous ne mettez pas de niveau de criticité, ou qu'il ne fait pas parti de la liste prévue, le message est affiché normalement.<br />
Vous pouvez tester l'affichage en faisant en party-line: <span style="font-weight: bold;" class="mycode_b">.dtest</span><br />
<br />
<blockquote class="mycode_quote"><cite>Citation :</cite>.dtest<br />
[17:31:29] <span style="color: #ff0000;" class="mycode_color">Level is set to error</span><br />
[17:31:29] <span style="color: #ffcc33;" class="mycode_color">Level is set to warning</span><br />
[17:31:29] <span style="color: #66ffff;" class="mycode_color">Level is set to notice</span><br />
[17:31:29] <span style="color: #cc33cc;" class="mycode_color">Level is set to debug</span><br />
[17:31:29] <span style="color: #3333ff;" class="mycode_color">Level is set to info</span><br />
[17:31:29] <span style="color: #33cc33;" class="mycode_color">Level is set to success</span></blockquote>
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Avertissement :</span> Ce script fonctionne parfaitement sous linux et sous environnement de type Cygwin, mais je ne l'ai pas testé sous un environnement pur windows.]]></description>
			<content:encoded><![CDATA[Le but de ce petit script est de pouvoir faire un putlog avec une mise en couleur du texte en fonction du degré d'importance du message.<br />
<br />
Source: <a href="http://tools.eggdrop.fr/pasteme/view/46ad7d7b" target="_blank" rel="noopener" class="mycode_url">http://tools.eggdrop.fr/pasteme/view/46ad7d7b</a><br />
<br />
Le fonctionnement est très simple:<br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>::d::putlog "votre message à coloriser" [level]</code></div></div><span style="font-style: italic;" class="mycode_i">level</span> comprend 6 possibilités: error, warning, notice, debug, info, success<br />
Si vous ne mettez pas de niveau de criticité, ou qu'il ne fait pas parti de la liste prévue, le message est affiché normalement.<br />
Vous pouvez tester l'affichage en faisant en party-line: <span style="font-weight: bold;" class="mycode_b">.dtest</span><br />
<br />
<blockquote class="mycode_quote"><cite>Citation :</cite>.dtest<br />
[17:31:29] <span style="color: #ff0000;" class="mycode_color">Level is set to error</span><br />
[17:31:29] <span style="color: #ffcc33;" class="mycode_color">Level is set to warning</span><br />
[17:31:29] <span style="color: #66ffff;" class="mycode_color">Level is set to notice</span><br />
[17:31:29] <span style="color: #cc33cc;" class="mycode_color">Level is set to debug</span><br />
[17:31:29] <span style="color: #3333ff;" class="mycode_color">Level is set to info</span><br />
[17:31:29] <span style="color: #33cc33;" class="mycode_color">Level is set to success</span></blockquote>
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Avertissement :</span> Ce script fonctionne parfaitement sous linux et sous environnement de type Cygwin, mais je ne l'ai pas testé sous un environnement pur windows.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Afficher les séparateurs de milliers dans un nombre]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1577</link>
			<pubDate>Thu, 29 Jan 2015 20:10:15 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=324">MenzAgitat</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1577</guid>
			<description><![CDATA[<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> add_thousand_separators <span style="color: black;">&#123;</span>value<span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span>::<span style="color: black;">tcl</span>::<span style="color: #008000;">string</span>::<span style="color: black;">trimleft</span> <span style="color: black;">&#91;</span>::<span style="color: black;">tcl</span>::<span style="color: #008000;">string</span>::<span style="color: black;">reverse</span> <span style="color: black;">&#91;</span><span style="color: #008000;">regsub</span> -all <span style="color: black;">&#123;</span>...<span style="color: black;">&#125;</span> <span style="color: black;">&#91;</span>::<span style="color: black;">tcl</span>::<span style="color: #008000;">string</span>::<span style="color: black;">reverse</span> <span style="color: #ff3333;">&#36;value</span><span style="color: black;">&#93;</span> <span style="color: black;">&#123;</span><span style="color: #66cc66;">&amp;</span> <span style="color: black;">&#125;</span><span style="color: black;">&#93;</span><span style="color: black;">&#93;</span> <span style="color: #483d8b;">&quot; &quot;</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span></pre></code></div></div><br /><br />
<br />
<blockquote class="mycode_quote"><cite>Exemple a écrit :</cite>add_thousand_separators 16165152<br />
Tcl: 16 165 152</blockquote><br />
ou<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> add_thousand_separators <span style="color: black;">&#123;</span>value<span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span>::<span style="color: black;">tcl</span>::<span style="color: #008000;">string</span>::<span style="color: black;">trimleft</span> <span style="color: black;">&#91;</span>::<span style="color: black;">tcl</span>::<span style="color: #008000;">string</span>::<span style="color: black;">reverse</span> <span style="color: black;">&#91;</span><span style="color: #008000;">regsub</span> -all <span style="color: black;">&#123;</span>...<span style="color: black;">&#125;</span> <span style="color: black;">&#91;</span>::<span style="color: black;">tcl</span>::<span style="color: #008000;">string</span>::<span style="color: black;">reverse</span> <span style="color: #ff3333;">&#36;value</span><span style="color: black;">&#93;</span> <span style="color: black;">&#123;</span><span style="color: #66cc66;">&amp;</span>.<span style="color: black;">&#125;</span><span style="color: black;">&#93;</span><span style="color: black;">&#93;</span> <span style="color: #483d8b;">&quot;.&quot;</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span></pre></code></div></div><br /><br />
<br />
<blockquote class="mycode_quote"><cite>Exemple a écrit :</cite>add_thousand_separators 16165152<br />
Tcl: 16.165.152</blockquote><br />
Source : <a href="http://www.boulets.oqp.me/tcl/routines/tcl-toolbox-0001.html" target="_blank" rel="noopener" class="mycode_url">http://www.boulets.oqp.me/tcl/routines/t...-0001.html</a>]]></description>
			<content:encoded><![CDATA[<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> add_thousand_separators <span style="color: black;">&#123;</span>value<span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span>::<span style="color: black;">tcl</span>::<span style="color: #008000;">string</span>::<span style="color: black;">trimleft</span> <span style="color: black;">&#91;</span>::<span style="color: black;">tcl</span>::<span style="color: #008000;">string</span>::<span style="color: black;">reverse</span> <span style="color: black;">&#91;</span><span style="color: #008000;">regsub</span> -all <span style="color: black;">&#123;</span>...<span style="color: black;">&#125;</span> <span style="color: black;">&#91;</span>::<span style="color: black;">tcl</span>::<span style="color: #008000;">string</span>::<span style="color: black;">reverse</span> <span style="color: #ff3333;">&#36;value</span><span style="color: black;">&#93;</span> <span style="color: black;">&#123;</span><span style="color: #66cc66;">&amp;</span> <span style="color: black;">&#125;</span><span style="color: black;">&#93;</span><span style="color: black;">&#93;</span> <span style="color: #483d8b;">&quot; &quot;</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span></pre></code></div></div><br /><br />
<br />
<blockquote class="mycode_quote"><cite>Exemple a écrit :</cite>add_thousand_separators 16165152<br />
Tcl: 16 165 152</blockquote><br />
ou<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> add_thousand_separators <span style="color: black;">&#123;</span>value<span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span>::<span style="color: black;">tcl</span>::<span style="color: #008000;">string</span>::<span style="color: black;">trimleft</span> <span style="color: black;">&#91;</span>::<span style="color: black;">tcl</span>::<span style="color: #008000;">string</span>::<span style="color: black;">reverse</span> <span style="color: black;">&#91;</span><span style="color: #008000;">regsub</span> -all <span style="color: black;">&#123;</span>...<span style="color: black;">&#125;</span> <span style="color: black;">&#91;</span>::<span style="color: black;">tcl</span>::<span style="color: #008000;">string</span>::<span style="color: black;">reverse</span> <span style="color: #ff3333;">&#36;value</span><span style="color: black;">&#93;</span> <span style="color: black;">&#123;</span><span style="color: #66cc66;">&amp;</span>.<span style="color: black;">&#125;</span><span style="color: black;">&#93;</span><span style="color: black;">&#93;</span> <span style="color: #483d8b;">&quot;.&quot;</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span></pre></code></div></div><br /><br />
<br />
<blockquote class="mycode_quote"><cite>Exemple a écrit :</cite>add_thousand_separators 16165152<br />
Tcl: 16.165.152</blockquote><br />
Source : <a href="http://www.boulets.oqp.me/tcl/routines/tcl-toolbox-0001.html" target="_blank" rel="noopener" class="mycode_url">http://www.boulets.oqp.me/tcl/routines/t...-0001.html</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Convertir une date du format anglais au format français]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1574</link>
			<pubDate>Tue, 06 Jan 2015 18:11:38 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=324">MenzAgitat</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1574</guid>
			<description><![CDATA[<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;">clock</span> <span style="color: #008000;">format</span> <span style="color: black;">&#91;</span><span style="color: #008000;">clock</span> <span style="color: #008000;">scan</span> <span style="color: #483d8b;">&quot;Tue, 06 Jan 2015 5:30 pm&quot;</span><span style="color: black;">&#93;</span> -<span style="color: #008000;">format</span> <span style="color: #483d8b;">&quot;%a %d %b %Y %H:%M&quot;</span> -locale fr</pre></code></div></div><br /><br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>Tcl: mar. 06 janv. 2015 17:30</code></div></div><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;">clock</span> <span style="color: #008000;">format</span> <span style="color: black;">&#91;</span><span style="color: #008000;">clock</span> <span style="color: #008000;">scan</span> <span style="color: #483d8b;">&quot;Tue, 06 Jan 2015 5:30 pm&quot;</span><span style="color: black;">&#93;</span> -<span style="color: #008000;">format</span> <span style="color: #483d8b;">&quot;%A %d %B %Y %H:%M&quot;</span> -locale fr</pre></code></div></div><br /><br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>Tcl: mardi 06 janvier 2015 17:30</code></div></div><br />
Voir ici pour les différents codes de format : <a href="http://wiki.eggdrop.fr/Strftime" target="_blank" rel="noopener" class="mycode_url">http://wiki.eggdrop.fr/Strftime</a><br />
<br />
Source : <a href="http://www.boulets.oqp.me/tcl/routines/tcl-toolbox-0006.html" target="_blank" rel="noopener" class="mycode_url">http://www.boulets.oqp.me/tcl/routines/t...-0006.html</a>]]></description>
			<content:encoded><![CDATA[<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;">clock</span> <span style="color: #008000;">format</span> <span style="color: black;">&#91;</span><span style="color: #008000;">clock</span> <span style="color: #008000;">scan</span> <span style="color: #483d8b;">&quot;Tue, 06 Jan 2015 5:30 pm&quot;</span><span style="color: black;">&#93;</span> -<span style="color: #008000;">format</span> <span style="color: #483d8b;">&quot;%a %d %b %Y %H:%M&quot;</span> -locale fr</pre></code></div></div><br /><br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>Tcl: mar. 06 janv. 2015 17:30</code></div></div><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;">clock</span> <span style="color: #008000;">format</span> <span style="color: black;">&#91;</span><span style="color: #008000;">clock</span> <span style="color: #008000;">scan</span> <span style="color: #483d8b;">&quot;Tue, 06 Jan 2015 5:30 pm&quot;</span><span style="color: black;">&#93;</span> -<span style="color: #008000;">format</span> <span style="color: #483d8b;">&quot;%A %d %B %Y %H:%M&quot;</span> -locale fr</pre></code></div></div><br /><br />
<div class="codeblock"><div class="title">Code :</div><div class="body" dir="ltr"><code>Tcl: mardi 06 janvier 2015 17:30</code></div></div><br />
Voir ici pour les différents codes de format : <a href="http://wiki.eggdrop.fr/Strftime" target="_blank" rel="noopener" class="mycode_url">http://wiki.eggdrop.fr/Strftime</a><br />
<br />
Source : <a href="http://www.boulets.oqp.me/tcl/routines/tcl-toolbox-0006.html" target="_blank" rel="noopener" class="mycode_url">http://www.boulets.oqp.me/tcl/routines/t...-0006.html</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Convertir des nombres entre différentes bases numériques]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1548</link>
			<pubDate>Wed, 23 Jul 2014 15:57:22 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=324">MenzAgitat</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1548</guid>
			<description><![CDATA[<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;"># décimal -&gt; binaire</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> dec2bin value <span style="color: black;">&#123;</span>
	<span style="color: #008000;">binary</span> <span style="color: #008000;">scan</span> <span style="color: black;">&#91;</span><span style="color: #008000;">binary</span> <span style="color: #008000;">format</span> I <span style="color: #ff3333;">&#36;value</span><span style="color: black;">&#93;</span> B32 output
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #ff3333;">&#36;output</span>
<span style="color: black;">&#125;</span>
<span style="color: #808080; font-style: italic;">
# décimal -&gt; hexadécimal</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> dec2hex value <span style="color: black;">&#123;</span>
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span><span style="color: #008000;">format</span> <span style="color: #66cc66;">%</span>x <span style="color: #ff3333;">&#36;value</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span>
<span style="color: #808080; font-style: italic;">
# décimal -&gt; octal</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> dec2oct value <span style="color: black;">&#123;</span>
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span><span style="color: #008000;">format</span> <span style="color: #66cc66;">%</span>o <span style="color: #ff3333;">&#36;value</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span>
<span style="color: #808080; font-style: italic;">
# binaire -&gt; décimal</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> bin2dec value <span style="color: black;">&#123;</span>
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span>hex2dec <span style="color: black;">&#91;</span>bin2hex <span style="color: #ff3333;">&#36;value</span><span style="color: black;">&#93;</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span>
<span style="color: #808080; font-style: italic;">
# binaire -&gt; hexadécimal</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> bin2hex value <span style="color: black;">&#123;</span>
	array <span style="color: #ff7700;font-weight:bold;">set</span> bin2hex_array <span style="color: black;">&#123;</span>
		0000 <span style="color: #ff4500;">0</span> 0001 <span style="color: #ff4500;">1</span> 0010 <span style="color: #ff4500;">2</span> 0011 <span style="color: #ff4500;">3</span> 0100 <span style="color: #ff4500;">4</span>
		0101 <span style="color: #ff4500;">5</span> 0110 <span style="color: #ff4500;">6</span> 0111 <span style="color: #ff4500;">7</span> <span style="color: #ff4500;">1000</span> <span style="color: #ff4500;">8</span> <span style="color: #ff4500;">1001</span> <span style="color: #ff4500;">9</span>
		<span style="color: #ff4500;">1010</span> a <span style="color: #ff4500;">1011</span> b <span style="color: #ff4500;">1100</span> c <span style="color: #ff4500;">1101</span> d <span style="color: #ff4500;">1110</span> e <span style="color: #ff4500;">1111</span> f
	<span style="color: black;">&#125;</span>
	<span style="color: #ff7700;font-weight:bold;">set</span> diff <span style="color: black;">&#91;</span><span style="color: #ff7700;font-weight:bold;">expr</span> <span style="color: black;">&#123;</span><span style="color: #ff4500;">4</span>-<span style="color: black;">&#91;</span><span style="color: #008000;">string</span> length <span style="color: #ff3333;">&#36;value</span><span style="color: black;">&#93;</span><span style="color: #66cc66;">%</span>4<span style="color: black;">&#125;</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;diff</span> <span style="color: #66cc66;">!</span>= <span style="color: #ff4500;">4</span> <span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
		<span style="color: #ff7700;font-weight:bold;">set</span> value <span style="color: black;">&#91;</span><span style="color: #008000;">format</span> <span style="color: #66cc66;">%</span>0<span style="color: #66cc66;">&#36;</span><span style="color: black;">&#123;</span>diff<span style="color: black;">&#125;</span>d<span style="color: #ff3333;">&#36;value</span> <span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span>
	<span style="color: black;">&#125;</span>
	<span style="color: #008000;">regsub</span> -all .... <span style="color: #ff3333;">&#36;value</span> <span style="color: black;">&#123;</span><span style="color: #ff3333;">&#36;bin2hex_array</span><span style="color: black;">&#40;</span><span style="color: #66cc66;">&amp;</span><span style="color: black;">&#41;</span><span style="color: black;">&#125;</span> hex_value
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span><span style="color: #008000;">subst</span> <span style="color: #ff3333;">&#36;hex_value</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span>
<span style="color: #808080; font-style: italic;">
# binaire -&gt; octal</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> bin2oct value <span style="color: black;">&#123;</span>
	<span style="color: #ff7700;font-weight:bold;">set</span> dec_value <span style="color: black;">&#91;</span>hex2dec <span style="color: black;">&#91;</span>bin2hex <span style="color: #ff3333;">&#36;value</span><span style="color: black;">&#93;</span><span style="color: black;">&#93;</span>
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span><span style="color: #008000;">format</span> <span style="color: #66cc66;">%</span>o <span style="color: #ff3333;">&#36;dec_value</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span>
<span style="color: #808080; font-style: italic;">
# hexadécimal -&gt; décimal</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> hex2dec value <span style="color: black;">&#123;</span>
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span><span style="color: #ff7700;font-weight:bold;">expr</span> 0x<span style="color: #ff3333;">&#36;value</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span>
<span style="color: #808080; font-style: italic;">
# hexadécimal -&gt; binaire</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> hex2bin value <span style="color: black;">&#123;</span>
	array <span style="color: #ff7700;font-weight:bold;">set</span> hex2bin_array <span style="color: black;">&#123;</span>
		<span style="color: #ff4500;">0</span> 0000 <span style="color: #ff4500;">1</span> 0001 <span style="color: #ff4500;">2</span> 0010 <span style="color: #ff4500;">3</span> 0011 <span style="color: #ff4500;">4</span> 0100
		<span style="color: #ff4500;">5</span> 0101 <span style="color: #ff4500;">6</span> 0110 <span style="color: #ff4500;">7</span> 0111 <span style="color: #ff4500;">8</span> <span style="color: #ff4500;">1000</span> <span style="color: #ff4500;">9</span> <span style="color: #ff4500;">1001</span>
		a <span style="color: #ff4500;">1010</span> b <span style="color: #ff4500;">1011</span> c <span style="color: #ff4500;">1100</span> d <span style="color: #ff4500;">1101</span> e <span style="color: #ff4500;">1110</span> f <span style="color: #ff4500;">1111</span>
		A <span style="color: #ff4500;">1010</span> B <span style="color: #ff4500;">1011</span> C <span style="color: #ff4500;">1100</span> D <span style="color: #ff4500;">1101</span> E <span style="color: #ff4500;">1110</span> F <span style="color: #ff4500;">1111</span>
	<span style="color: black;">&#125;</span>
	<span style="color: #008000;">regsub</span> <span style="color: black;">&#123;</span>^<span style="color: #ff4500;">0</span><span style="color: black;">&#91;</span>xX<span style="color: black;">&#93;</span><span style="color: black;">&#125;</span> <span style="color: #ff3333;">&#36;value</span> <span style="color: black;">&#123;</span><span style="color: black;">&#125;</span> value
	<span style="color: #008000;">regsub</span> -all . <span style="color: #ff3333;">&#36;value</span> <span style="color: black;">&#123;</span><span style="color: #ff3333;">&#36;hex2bin_array</span><span style="color: black;">&#40;</span><span style="color: #66cc66;">&amp;</span><span style="color: black;">&#41;</span><span style="color: black;">&#125;</span> bin_value
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span><span style="color: #008000;">subst</span> <span style="color: #ff3333;">&#36;bin_value</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span>
<span style="color: #808080; font-style: italic;">
# hexadécimal -&gt; octal</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> hex2oct value <span style="color: black;">&#123;</span>
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span>dec2oct <span style="color: black;">&#91;</span>hex2dec <span style="color: #ff3333;">&#36;value</span><span style="color: black;">&#93;</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span>
<span style="color: #808080; font-style: italic;">
# octal -&gt; binaire</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> oct2bin value <span style="color: black;">&#123;</span>
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span>dec2bin <span style="color: black;">&#91;</span>oct2dec <span style="color: #ff3333;">&#36;value</span><span style="color: black;">&#93;</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span>
<span style="color: #808080; font-style: italic;">
# octal -&gt; décimal</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> oct2dec value <span style="color: black;">&#123;</span>
	<span style="color: #ff7700;font-weight:bold;">set</span> value <span style="color: #ff4500;">0</span><span style="color: #ff3333;">&#36;value</span>
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span><span style="color: #008000;">format</span> <span style="color: #66cc66;">%</span>i <span style="color: #ff3333;">&#36;value</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span>
<span style="color: #808080; font-style: italic;">
# octal -&gt; hexadécimal</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> oct2hex value <span style="color: black;">&#123;</span>
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span>dec2hex <span style="color: black;">&#91;</span>oct2dec <span style="color: #ff3333;">&#36;value</span><span style="color: black;">&#93;</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span></pre></code></div></div><br /><br />
Source : <a href="http://www.boulets.oqp.me/tcl/routines/tcl-toolbox-0002.html" target="_blank" rel="noopener" class="mycode_url">http://www.boulets.oqp.me/tcl/routines/t...-0002.html</a>]]></description>
			<content:encoded><![CDATA[<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;"># décimal -&gt; binaire</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> dec2bin value <span style="color: black;">&#123;</span>
	<span style="color: #008000;">binary</span> <span style="color: #008000;">scan</span> <span style="color: black;">&#91;</span><span style="color: #008000;">binary</span> <span style="color: #008000;">format</span> I <span style="color: #ff3333;">&#36;value</span><span style="color: black;">&#93;</span> B32 output
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #ff3333;">&#36;output</span>
<span style="color: black;">&#125;</span>
<span style="color: #808080; font-style: italic;">
# décimal -&gt; hexadécimal</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> dec2hex value <span style="color: black;">&#123;</span>
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span><span style="color: #008000;">format</span> <span style="color: #66cc66;">%</span>x <span style="color: #ff3333;">&#36;value</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span>
<span style="color: #808080; font-style: italic;">
# décimal -&gt; octal</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> dec2oct value <span style="color: black;">&#123;</span>
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span><span style="color: #008000;">format</span> <span style="color: #66cc66;">%</span>o <span style="color: #ff3333;">&#36;value</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span>
<span style="color: #808080; font-style: italic;">
# binaire -&gt; décimal</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> bin2dec value <span style="color: black;">&#123;</span>
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span>hex2dec <span style="color: black;">&#91;</span>bin2hex <span style="color: #ff3333;">&#36;value</span><span style="color: black;">&#93;</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span>
<span style="color: #808080; font-style: italic;">
# binaire -&gt; hexadécimal</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> bin2hex value <span style="color: black;">&#123;</span>
	array <span style="color: #ff7700;font-weight:bold;">set</span> bin2hex_array <span style="color: black;">&#123;</span>
		0000 <span style="color: #ff4500;">0</span> 0001 <span style="color: #ff4500;">1</span> 0010 <span style="color: #ff4500;">2</span> 0011 <span style="color: #ff4500;">3</span> 0100 <span style="color: #ff4500;">4</span>
		0101 <span style="color: #ff4500;">5</span> 0110 <span style="color: #ff4500;">6</span> 0111 <span style="color: #ff4500;">7</span> <span style="color: #ff4500;">1000</span> <span style="color: #ff4500;">8</span> <span style="color: #ff4500;">1001</span> <span style="color: #ff4500;">9</span>
		<span style="color: #ff4500;">1010</span> a <span style="color: #ff4500;">1011</span> b <span style="color: #ff4500;">1100</span> c <span style="color: #ff4500;">1101</span> d <span style="color: #ff4500;">1110</span> e <span style="color: #ff4500;">1111</span> f
	<span style="color: black;">&#125;</span>
	<span style="color: #ff7700;font-weight:bold;">set</span> diff <span style="color: black;">&#91;</span><span style="color: #ff7700;font-weight:bold;">expr</span> <span style="color: black;">&#123;</span><span style="color: #ff4500;">4</span>-<span style="color: black;">&#91;</span><span style="color: #008000;">string</span> length <span style="color: #ff3333;">&#36;value</span><span style="color: black;">&#93;</span><span style="color: #66cc66;">%</span>4<span style="color: black;">&#125;</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;diff</span> <span style="color: #66cc66;">!</span>= <span style="color: #ff4500;">4</span> <span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
		<span style="color: #ff7700;font-weight:bold;">set</span> value <span style="color: black;">&#91;</span><span style="color: #008000;">format</span> <span style="color: #66cc66;">%</span>0<span style="color: #66cc66;">&#36;</span><span style="color: black;">&#123;</span>diff<span style="color: black;">&#125;</span>d<span style="color: #ff3333;">&#36;value</span> <span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span>
	<span style="color: black;">&#125;</span>
	<span style="color: #008000;">regsub</span> -all .... <span style="color: #ff3333;">&#36;value</span> <span style="color: black;">&#123;</span><span style="color: #ff3333;">&#36;bin2hex_array</span><span style="color: black;">&#40;</span><span style="color: #66cc66;">&amp;</span><span style="color: black;">&#41;</span><span style="color: black;">&#125;</span> hex_value
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span><span style="color: #008000;">subst</span> <span style="color: #ff3333;">&#36;hex_value</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span>
<span style="color: #808080; font-style: italic;">
# binaire -&gt; octal</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> bin2oct value <span style="color: black;">&#123;</span>
	<span style="color: #ff7700;font-weight:bold;">set</span> dec_value <span style="color: black;">&#91;</span>hex2dec <span style="color: black;">&#91;</span>bin2hex <span style="color: #ff3333;">&#36;value</span><span style="color: black;">&#93;</span><span style="color: black;">&#93;</span>
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span><span style="color: #008000;">format</span> <span style="color: #66cc66;">%</span>o <span style="color: #ff3333;">&#36;dec_value</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span>
<span style="color: #808080; font-style: italic;">
# hexadécimal -&gt; décimal</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> hex2dec value <span style="color: black;">&#123;</span>
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span><span style="color: #ff7700;font-weight:bold;">expr</span> 0x<span style="color: #ff3333;">&#36;value</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span>
<span style="color: #808080; font-style: italic;">
# hexadécimal -&gt; binaire</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> hex2bin value <span style="color: black;">&#123;</span>
	array <span style="color: #ff7700;font-weight:bold;">set</span> hex2bin_array <span style="color: black;">&#123;</span>
		<span style="color: #ff4500;">0</span> 0000 <span style="color: #ff4500;">1</span> 0001 <span style="color: #ff4500;">2</span> 0010 <span style="color: #ff4500;">3</span> 0011 <span style="color: #ff4500;">4</span> 0100
		<span style="color: #ff4500;">5</span> 0101 <span style="color: #ff4500;">6</span> 0110 <span style="color: #ff4500;">7</span> 0111 <span style="color: #ff4500;">8</span> <span style="color: #ff4500;">1000</span> <span style="color: #ff4500;">9</span> <span style="color: #ff4500;">1001</span>
		a <span style="color: #ff4500;">1010</span> b <span style="color: #ff4500;">1011</span> c <span style="color: #ff4500;">1100</span> d <span style="color: #ff4500;">1101</span> e <span style="color: #ff4500;">1110</span> f <span style="color: #ff4500;">1111</span>
		A <span style="color: #ff4500;">1010</span> B <span style="color: #ff4500;">1011</span> C <span style="color: #ff4500;">1100</span> D <span style="color: #ff4500;">1101</span> E <span style="color: #ff4500;">1110</span> F <span style="color: #ff4500;">1111</span>
	<span style="color: black;">&#125;</span>
	<span style="color: #008000;">regsub</span> <span style="color: black;">&#123;</span>^<span style="color: #ff4500;">0</span><span style="color: black;">&#91;</span>xX<span style="color: black;">&#93;</span><span style="color: black;">&#125;</span> <span style="color: #ff3333;">&#36;value</span> <span style="color: black;">&#123;</span><span style="color: black;">&#125;</span> value
	<span style="color: #008000;">regsub</span> -all . <span style="color: #ff3333;">&#36;value</span> <span style="color: black;">&#123;</span><span style="color: #ff3333;">&#36;hex2bin_array</span><span style="color: black;">&#40;</span><span style="color: #66cc66;">&amp;</span><span style="color: black;">&#41;</span><span style="color: black;">&#125;</span> bin_value
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span><span style="color: #008000;">subst</span> <span style="color: #ff3333;">&#36;bin_value</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span>
<span style="color: #808080; font-style: italic;">
# hexadécimal -&gt; octal</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> hex2oct value <span style="color: black;">&#123;</span>
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span>dec2oct <span style="color: black;">&#91;</span>hex2dec <span style="color: #ff3333;">&#36;value</span><span style="color: black;">&#93;</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span>
<span style="color: #808080; font-style: italic;">
# octal -&gt; binaire</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> oct2bin value <span style="color: black;">&#123;</span>
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span>dec2bin <span style="color: black;">&#91;</span>oct2dec <span style="color: #ff3333;">&#36;value</span><span style="color: black;">&#93;</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span>
<span style="color: #808080; font-style: italic;">
# octal -&gt; décimal</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> oct2dec value <span style="color: black;">&#123;</span>
	<span style="color: #ff7700;font-weight:bold;">set</span> value <span style="color: #ff4500;">0</span><span style="color: #ff3333;">&#36;value</span>
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span><span style="color: #008000;">format</span> <span style="color: #66cc66;">%</span>i <span style="color: #ff3333;">&#36;value</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span>
<span style="color: #808080; font-style: italic;">
# octal -&gt; hexadécimal</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> oct2hex value <span style="color: black;">&#123;</span>
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#91;</span>dec2hex <span style="color: black;">&#91;</span>oct2dec <span style="color: #ff3333;">&#36;value</span><span style="color: black;">&#93;</span><span style="color: black;">&#93;</span>
<span style="color: black;">&#125;</span></pre></code></div></div><br /><br />
Source : <a href="http://www.boulets.oqp.me/tcl/routines/tcl-toolbox-0002.html" target="_blank" rel="noopener" class="mycode_url">http://www.boulets.oqp.me/tcl/routines/t...-0002.html</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Procédure universelle d'affichage de texte]]></title>
			<link>https://forum.eggdrop.fr/showthread.php?tid=1473</link>
			<pubDate>Fri, 06 Dec 2013 21:58:02 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.eggdrop.fr/member.php?action=profile&uid=324">MenzAgitat</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.eggdrop.fr/showthread.php?tid=1473</guid>
			<description><![CDATA[Cette procédure permet d'envoyer un message dans n'importe quelle file d'attente de l'Eggdrop (puthelp, putquick, putnow, putserv, putdcc, putlog ou putloglev), par message privé, public, ou par notice.<br />
<br />
Si le paramètre de configuration monochrome vaut 1 ou que le mode +c est détecté sur le chan cible, alors tous les codes de style seront automatiquement filtrés.<br />
De même si le message est destiné à un utilisateur en partyline et que celui-ci ne possède pas le flag h.<br />
<br />
Vous aurez également besoin de la procédure <a href="showthread.php?tid=1423">split_line</a>, qui permet de découper une ligne trop longue en plusieurs lignes.<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;">Variables à déclarer
<span style="color: #808080; font-style: italic;"># Filtrer les codes de style (couleurs, gras, ...) dans tous les affichages du</span>
<span style="color: #808080; font-style: italic;"># script ? (0 = non / 1 = oui)</span>
<span style="color: #ff7700;font-weight:bold;">variable</span> monochrome <span style="color: #ff4500;">0</span>
<span style="color: #808080; font-style: italic;">
# Longueur maximum d'une ligne affichable (si la fin de certaines lignes est</span>
<span style="color: #808080; font-style: italic;"># tronquée, cela signifie que vous devez diminuer cette valeur)</span>
<span style="color: #ff7700;font-weight:bold;">variable</span> max_line_length <span style="color: #ff4500;">435</span></pre></code></div></div><br /><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;">Procédure
<span style="color: #808080; font-style: italic;">###############################################################################</span>
<span style="color: #808080; font-style: italic;">### Affichage d'un texte, filtrage des styles si nécessaire.</span>
<span style="color: #808080; font-style: italic;">### * queue peut valoir help, quick, now, serv, dcc, log ou loglev</span>
<span style="color: #808080; font-style: italic;">### * method peut valoir PRIVMSG ou NOTICE et sera ignoré si queue vaut dcc, log</span>
<span style="color: #808080; font-style: italic;">###      ou loglev</span>
<span style="color: #808080; font-style: italic;">### * target peut être un nick, un chan ou un idx, et sera ignoré si queue vaut</span>
<span style="color: #808080; font-style: italic;">###      log ou loglev</span>
<span style="color: #808080; font-style: italic;">###############################################################################</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> display_output <span style="color: black;">&#123;</span>queue <span style="color: #ff7700;font-weight:bold;">method</span> target text<span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
<span style="color: #ff7700;font-weight:bold;">variable</span> monochrome
<span style="color: #ff7700;font-weight:bold;">variable</span> max_line_length
<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span>
<span style="color: black;">&#40;</span><span style="color: #ff3333;">&#36;monochrome</span><span style="color: black;">&#41;</span>
|| <span style="color: black;">&#40;</span><span style="color: black;">&#40;</span><span style="color: #66cc66;">!</span><span style="color: black;">&#91;</span>::<span style="color: black;">tcl</span>::<span style="color: #008000;">string</span>::<span style="color: black;">first</span> <span style="color: #483d8b;">&quot;#&quot;</span> <span style="color: #ff3333;">&#36;target</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
<span style="color: #66cc66;">&amp;&amp;</span> <span style="color: black;">&#40;</span><span style="color: black;">&#91;</span>::<span style="color: black;">tcl</span>::<span style="color: #008000;">string</span>::<span style="color: black;">match</span> <span style="color: #66cc66;">*</span>c<span style="color: #66cc66;">*</span> <span style="color: black;">&#91;</span><span style="color: #008000;">lindex</span> <span style="color: black;">&#91;</span><span style="color: #008000;">split</span> <span style="color: black;">&#91;</span>getchanmode <span style="color: #ff3333;">&#36;target</span><span style="color: black;">&#93;</span><span style="color: black;">&#93;</span> <span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
|| <span style="color: black;">&#40;</span><span style="color: black;">&#40;</span><span style="color: #ff3333;">&#36;queue</span> eq <span style="color: #483d8b;">&quot;dcc&quot;</span><span style="color: black;">&#41;</span>
<span style="color: #66cc66;">&amp;&amp;</span> <span style="color: black;">&#40;</span><span style="color: #66cc66;">!</span><span style="color: black;">&#91;</span>matchattr <span style="color: black;">&#91;</span>idx2hand <span style="color: #ff3333;">&#36;target</span><span style="color: black;">&#93;</span> h<span style="color: black;">&#93;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
<span style="color: black;">&#125;</span> <span style="color: #ff7700;font-weight:bold;">then</span> <span style="color: black;">&#123;</span>
<span style="color: #008000;">regsub</span> -all <span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">&#092;0</span>17&quot;</span> <span style="color: black;">&#91;</span>stripcodes abcgru <span style="color: #ff3333;">&#36;text</span><span style="color: black;">&#93;</span> <span style="color: #483d8b;">&quot;&quot;</span> text
<span style="color: black;">&#125;</span>
<span style="color: #ff7700;font-weight:bold;">switch</span> -- <span style="color: #ff3333;">&#36;queue</span> <span style="color: black;">&#123;</span>
help - quick - now - serv <span style="color: black;">&#123;</span>
<span style="color: #ff7700;font-weight:bold;">foreach</span> line <span style="color: black;">&#91;</span>split_line <span style="color: #ff3333;">&#36;text</span> <span style="color: #ff3333;">&#36;max_line_length</span><span style="color: black;">&#93;</span> <span style="color: black;">&#123;</span>
put<span style="color: #ff3333;">&#36;queue</span> <span style="color: #483d8b;">&quot;&#36;method &#36;target :&#36;line&quot;</span>
<span style="color: black;">&#125;</span>
<span style="color: black;">&#125;</span>
dcc <span style="color: black;">&#123;</span>
<span style="color: #ff7700;font-weight:bold;">foreach</span> line <span style="color: black;">&#91;</span>split_line <span style="color: #ff3333;">&#36;text</span> <span style="color: #ff3333;">&#36;max_line_length</span><span style="color: black;">&#93;</span> <span style="color: black;">&#123;</span>
putdcc <span style="color: #ff3333;">&#36;target</span> <span style="color: #ff3333;">&#36;line</span>
<span style="color: black;">&#125;</span>
<span style="color: black;">&#125;</span>
loglev <span style="color: black;">&#123;</span>
<span style="color: #ff7700;font-weight:bold;">foreach</span> line <span style="color: black;">&#91;</span>split_line <span style="color: #ff3333;">&#36;text</span> <span style="color: #ff3333;">&#36;max_line_length</span><span style="color: black;">&#93;</span> <span style="color: black;">&#123;</span>
putloglev o <span style="color: #66cc66;">*</span> <span style="color: #ff3333;">&#36;line</span>
<span style="color: black;">&#125;</span>
<span style="color: black;">&#125;</span>
log <span style="color: black;">&#123;</span>
<span style="color: #ff7700;font-weight:bold;">foreach</span> line <span style="color: black;">&#91;</span>split_line <span style="color: #ff3333;">&#36;text</span> <span style="color: #ff3333;">&#36;max_line_length</span><span style="color: black;">&#93;</span> <span style="color: black;">&#123;</span>
putlog <span style="color: #ff3333;">&#36;line</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></pre></code></div></div><br /><br />
<br />
Source : <a href="http://www.boulets.oqp.me/tcl/routines/tcl-toolbox-0013.html" target="_blank" rel="noopener" class="mycode_url">http://www.boulets.oqp.me/tcl/routines/t...-0013.html</a>]]></description>
			<content:encoded><![CDATA[Cette procédure permet d'envoyer un message dans n'importe quelle file d'attente de l'Eggdrop (puthelp, putquick, putnow, putserv, putdcc, putlog ou putloglev), par message privé, public, ou par notice.<br />
<br />
Si le paramètre de configuration monochrome vaut 1 ou que le mode +c est détecté sur le chan cible, alors tous les codes de style seront automatiquement filtrés.<br />
De même si le message est destiné à un utilisateur en partyline et que celui-ci ne possède pas le flag h.<br />
<br />
Vous aurez également besoin de la procédure <a href="showthread.php?tid=1423">split_line</a>, qui permet de découper une ligne trop longue en plusieurs lignes.<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;">Variables à déclarer
<span style="color: #808080; font-style: italic;"># Filtrer les codes de style (couleurs, gras, ...) dans tous les affichages du</span>
<span style="color: #808080; font-style: italic;"># script ? (0 = non / 1 = oui)</span>
<span style="color: #ff7700;font-weight:bold;">variable</span> monochrome <span style="color: #ff4500;">0</span>
<span style="color: #808080; font-style: italic;">
# Longueur maximum d'une ligne affichable (si la fin de certaines lignes est</span>
<span style="color: #808080; font-style: italic;"># tronquée, cela signifie que vous devez diminuer cette valeur)</span>
<span style="color: #ff7700;font-weight:bold;">variable</span> max_line_length <span style="color: #ff4500;">435</span></pre></code></div></div><br /><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;">Procédure
<span style="color: #808080; font-style: italic;">###############################################################################</span>
<span style="color: #808080; font-style: italic;">### Affichage d'un texte, filtrage des styles si nécessaire.</span>
<span style="color: #808080; font-style: italic;">### * queue peut valoir help, quick, now, serv, dcc, log ou loglev</span>
<span style="color: #808080; font-style: italic;">### * method peut valoir PRIVMSG ou NOTICE et sera ignoré si queue vaut dcc, log</span>
<span style="color: #808080; font-style: italic;">###      ou loglev</span>
<span style="color: #808080; font-style: italic;">### * target peut être un nick, un chan ou un idx, et sera ignoré si queue vaut</span>
<span style="color: #808080; font-style: italic;">###      log ou loglev</span>
<span style="color: #808080; font-style: italic;">###############################################################################</span>
<span style="color: #ff7700;font-weight:bold;">proc</span> display_output <span style="color: black;">&#123;</span>queue <span style="color: #ff7700;font-weight:bold;">method</span> target text<span style="color: black;">&#125;</span> <span style="color: black;">&#123;</span>
<span style="color: #ff7700;font-weight:bold;">variable</span> monochrome
<span style="color: #ff7700;font-weight:bold;">variable</span> max_line_length
<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#123;</span>
<span style="color: black;">&#40;</span><span style="color: #ff3333;">&#36;monochrome</span><span style="color: black;">&#41;</span>
|| <span style="color: black;">&#40;</span><span style="color: black;">&#40;</span><span style="color: #66cc66;">!</span><span style="color: black;">&#91;</span>::<span style="color: black;">tcl</span>::<span style="color: #008000;">string</span>::<span style="color: black;">first</span> <span style="color: #483d8b;">&quot;#&quot;</span> <span style="color: #ff3333;">&#36;target</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
<span style="color: #66cc66;">&amp;&amp;</span> <span style="color: black;">&#40;</span><span style="color: black;">&#91;</span>::<span style="color: black;">tcl</span>::<span style="color: #008000;">string</span>::<span style="color: black;">match</span> <span style="color: #66cc66;">*</span>c<span style="color: #66cc66;">*</span> <span style="color: black;">&#91;</span><span style="color: #008000;">lindex</span> <span style="color: black;">&#91;</span><span style="color: #008000;">split</span> <span style="color: black;">&#91;</span>getchanmode <span style="color: #ff3333;">&#36;target</span><span style="color: black;">&#93;</span><span style="color: black;">&#93;</span> <span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
|| <span style="color: black;">&#40;</span><span style="color: black;">&#40;</span><span style="color: #ff3333;">&#36;queue</span> eq <span style="color: #483d8b;">&quot;dcc&quot;</span><span style="color: black;">&#41;</span>
<span style="color: #66cc66;">&amp;&amp;</span> <span style="color: black;">&#40;</span><span style="color: #66cc66;">!</span><span style="color: black;">&#91;</span>matchattr <span style="color: black;">&#91;</span>idx2hand <span style="color: #ff3333;">&#36;target</span><span style="color: black;">&#93;</span> h<span style="color: black;">&#93;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
<span style="color: black;">&#125;</span> <span style="color: #ff7700;font-weight:bold;">then</span> <span style="color: black;">&#123;</span>
<span style="color: #008000;">regsub</span> -all <span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">&#092;0</span>17&quot;</span> <span style="color: black;">&#91;</span>stripcodes abcgru <span style="color: #ff3333;">&#36;text</span><span style="color: black;">&#93;</span> <span style="color: #483d8b;">&quot;&quot;</span> text
<span style="color: black;">&#125;</span>
<span style="color: #ff7700;font-weight:bold;">switch</span> -- <span style="color: #ff3333;">&#36;queue</span> <span style="color: black;">&#123;</span>
help - quick - now - serv <span style="color: black;">&#123;</span>
<span style="color: #ff7700;font-weight:bold;">foreach</span> line <span style="color: black;">&#91;</span>split_line <span style="color: #ff3333;">&#36;text</span> <span style="color: #ff3333;">&#36;max_line_length</span><span style="color: black;">&#93;</span> <span style="color: black;">&#123;</span>
put<span style="color: #ff3333;">&#36;queue</span> <span style="color: #483d8b;">&quot;&#36;method &#36;target :&#36;line&quot;</span>
<span style="color: black;">&#125;</span>
<span style="color: black;">&#125;</span>
dcc <span style="color: black;">&#123;</span>
<span style="color: #ff7700;font-weight:bold;">foreach</span> line <span style="color: black;">&#91;</span>split_line <span style="color: #ff3333;">&#36;text</span> <span style="color: #ff3333;">&#36;max_line_length</span><span style="color: black;">&#93;</span> <span style="color: black;">&#123;</span>
putdcc <span style="color: #ff3333;">&#36;target</span> <span style="color: #ff3333;">&#36;line</span>
<span style="color: black;">&#125;</span>
<span style="color: black;">&#125;</span>
loglev <span style="color: black;">&#123;</span>
<span style="color: #ff7700;font-weight:bold;">foreach</span> line <span style="color: black;">&#91;</span>split_line <span style="color: #ff3333;">&#36;text</span> <span style="color: #ff3333;">&#36;max_line_length</span><span style="color: black;">&#93;</span> <span style="color: black;">&#123;</span>
putloglev o <span style="color: #66cc66;">*</span> <span style="color: #ff3333;">&#36;line</span>
<span style="color: black;">&#125;</span>
<span style="color: black;">&#125;</span>
log <span style="color: black;">&#123;</span>
<span style="color: #ff7700;font-weight:bold;">foreach</span> line <span style="color: black;">&#91;</span>split_line <span style="color: #ff3333;">&#36;text</span> <span style="color: #ff3333;">&#36;max_line_length</span><span style="color: black;">&#93;</span> <span style="color: black;">&#123;</span>
putlog <span style="color: #ff3333;">&#36;line</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></pre></code></div></div><br /><br />
<br />
Source : <a href="http://www.boulets.oqp.me/tcl/routines/tcl-toolbox-0013.html" target="_blank" rel="noopener" class="mycode_url">http://www.boulets.oqp.me/tcl/routines/t...-0013.html</a>]]></content:encoded>
		</item>
	</channel>
</rss>