<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://montoyo.net/wdwiki/index.php?action=history&amp;feed=atom&amp;title=Gr%C3%BCnder_Chatbot</id>
		<title>Gründer Chatbot - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://montoyo.net/wdwiki/index.php?action=history&amp;feed=atom&amp;title=Gr%C3%BCnder_Chatbot"/>
		<link rel="alternate" type="text/html" href="https://montoyo.net/wdwiki/index.php?title=Gr%C3%BCnder_Chatbot&amp;action=history"/>
		<updated>2026-06-07T07:50:58Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://montoyo.net/wdwiki/index.php?title=Gr%C3%BCnder_Chatbot&amp;diff=177&amp;oldid=prev</id>
		<title>Montoyo: /* Dabber */</title>
		<link rel="alternate" type="text/html" href="https://montoyo.net/wdwiki/index.php?title=Gr%C3%BCnder_Chatbot&amp;diff=177&amp;oldid=prev"/>
				<updated>2018-10-20T11:23:33Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Dabber&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 11:23, 20 October 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l70&quot; &gt;Line 70:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 70:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;(Bon, j'avais vraiment pas d'exemple... désolé...)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;(Bon, j'avais vraiment pas d'exemple... désolé...)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;!chatbot dab find_multi dab :dab:&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;!chatbot dab find_multi dab :dab:&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Si je dis &amp;quot;allons dabber sur &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;hater &lt;/del&gt;vive le dab&amp;quot;, Gründer enverra deux messages avec l'émoji dab. Voilà, c'est de la grosse merde, faites en ce que vous voulez...&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Si je dis &amp;quot;allons dabber sur &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;les haters &lt;/ins&gt;vive le dab&amp;quot;, Gründer enverra deux messages avec l'émoji dab. Voilà, c'est de la grosse merde, faites en ce que vous voulez...&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Vous remarquerez cependant qu'on ne cherche pas '''le mot''' dab, mais la présence de d suivi de a suivi de b dans '''tout le message'''. Ainsi, le pattern matchera si votre message contient 'abracadabra'. Si vous souhaitez bel et bien matcher '''le mot''' dab, alors il faudra utiliser la regexp &amp;lt;code&amp;gt;/\bdab\b/&amp;lt;/code&amp;gt;. On notera la présence de '\b' avant et après dab, qui signifient &amp;quot;break&amp;quot;. Un break est soit un espace, soit le début ou la fin du message. C'est donc tout à fait ce que nous voulons.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Vous remarquerez cependant qu'on ne cherche pas '''le mot''' dab, mais la présence de &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'&lt;/ins&gt;d&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;', &lt;/ins&gt;suivi de &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'&lt;/ins&gt;a&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;', &lt;/ins&gt;suivi de &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'&lt;/ins&gt;b&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;' &lt;/ins&gt;dans '''tout le message'''. Ainsi, le pattern matchera si votre message contient 'abracadabra'. Si vous souhaitez bel et bien matcher '''le mot''' dab, alors il faudra utiliser la regexp &amp;lt;code&amp;gt;/\bdab\b/&amp;lt;/code&amp;gt;. On notera la présence de '\b' avant et après dab, qui signifient &amp;quot;break&amp;quot;. Un break est soit un espace, soit le début ou la fin du message. C'est donc tout à fait ce que nous voulons.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Montoyo</name></author>	</entry>

	<entry>
		<id>https://montoyo.net/wdwiki/index.php?title=Gr%C3%BCnder_Chatbot&amp;diff=176&amp;oldid=prev</id>
		<title>Montoyo: /* Dabber */</title>
		<link rel="alternate" type="text/html" href="https://montoyo.net/wdwiki/index.php?title=Gr%C3%BCnder_Chatbot&amp;diff=176&amp;oldid=prev"/>
				<updated>2018-10-20T11:22:20Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Dabber&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 11:22, 20 October 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l69&quot; &gt;Line 69:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 69:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Dabber===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Dabber===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;(Bon, j'avais vraiment pas d'exemple... désolé...)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;(Bon, j'avais vraiment pas d'exemple... désolé...)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* !chatbot dab find_multi dab :dab:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;code&amp;gt;&lt;/ins&gt;!chatbot dab find_multi dab :dab:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/code&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Si je dis &amp;quot;allons dabber sur hater vive le dab&amp;quot;, Gründer enverra deux messages avec l'émoji dab. Voilà, c'est de la grosse merde, faites en ce que vous voulez...&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Si je dis &amp;quot;allons dabber sur hater vive le dab&amp;quot;, Gründer enverra deux messages avec l'émoji dab. Voilà, c'est de la grosse merde, faites en ce que vous voulez...&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Vous remarquerez cependant qu'on ne cherche pas '''le mot''' dab, mais la présence de d suivi de a suivi de b dans '''tout le message'''. Ainsi, le pattern matchera si votre message contient 'abracadabra'. Si vous souhaitez bel et bien matcher '''le mot''' dab, alors il faudra utiliser la regexp &amp;lt;code&amp;gt;/\bdab\b/&amp;lt;/code&amp;gt;. On notera la présence de '\b' avant et après dab, qui signifient &amp;quot;break&amp;quot;. Un break est soit un espace, soit le début ou la fin du message. C'est donc tout à fait ce que nous voulons.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Vous remarquerez cependant qu'on ne cherche pas '''le mot''' dab, mais la présence de d suivi de a suivi de b dans '''tout le message'''. Ainsi, le pattern matchera si votre message contient 'abracadabra'. Si vous souhaitez bel et bien matcher '''le mot''' dab, alors il faudra utiliser la regexp &amp;lt;code&amp;gt;/\bdab\b/&amp;lt;/code&amp;gt;. On notera la présence de '\b' avant et après dab, qui signifient &amp;quot;break&amp;quot;. Un break est soit un espace, soit le début ou la fin du message. C'est donc tout à fait ce que nous voulons.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Montoyo</name></author>	</entry>

	<entry>
		<id>https://montoyo.net/wdwiki/index.php?title=Gr%C3%BCnder_Chatbot&amp;diff=175&amp;oldid=prev</id>
		<title>Montoyo: /* Trouver quelqu'un */</title>
		<link rel="alternate" type="text/html" href="https://montoyo.net/wdwiki/index.php?title=Gr%C3%BCnder_Chatbot&amp;diff=175&amp;oldid=prev"/>
				<updated>2018-10-20T11:21:55Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Trouver quelqu&amp;#039;un&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 11:21, 20 October 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l65&quot; &gt;Line 65:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 65:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Trouver quelqu'un===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Trouver quelqu'un===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;§chatbot trouver, whole, /^(?:Olivier|Gr[uü]nder)\s+trouve\s(.+)$/i, !trouver $1&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;§chatbot trouver, whole, /^(?:Olivier|Gr[uü]nder)\s+trouve\s(.+)$/i, !trouver $1&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/del&gt;Si je dis &amp;quot;Olivier trouve le respect&amp;quot;, il lancera la commande !trouver avec comme premier argument le premier groupe capturé, soit &amp;quot;le respect&amp;quot;. On remarquera la présence de '?:' dans les premières parenthèses. Cela indique à Java de ne pas considérer ce qu'il y a entre parenthèses comme un groupe. Si ces caractères n'étaient pas présents, alors le premier groupe ne serait pas &amp;quot;le respect&amp;quot; mais &amp;quot;Olivier&amp;quot;. On aurait aussi pu utiliser $2 au lieu de $1...&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Si je dis &amp;quot;Olivier trouve le respect&amp;quot;, il lancera la commande !trouver avec comme premier argument le premier groupe capturé, soit &amp;quot;le respect&amp;quot;. On remarquera la présence de '?:' dans les premières parenthèses. Cela indique à Java de ne pas considérer ce qu'il y a entre parenthèses comme un groupe. Si ces caractères n'étaient pas présents, alors le premier groupe ne serait pas &amp;quot;le respect&amp;quot; mais &amp;quot;Olivier&amp;quot;. On aurait aussi pu utiliser $2 au lieu de $1...&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Dabber===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Dabber===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Montoyo</name></author>	</entry>

	<entry>
		<id>https://montoyo.net/wdwiki/index.php?title=Gr%C3%BCnder_Chatbot&amp;diff=174&amp;oldid=prev</id>
		<title>Montoyo: Created page with &quot;Le commande Chatbot permet de faire réagir Gründer lors de la réception d'un message. Pour détecter un message, !chatbot dispose de 3 mode de détection (whole, find_once...&quot;</title>
		<link rel="alternate" type="text/html" href="https://montoyo.net/wdwiki/index.php?title=Gr%C3%BCnder_Chatbot&amp;diff=174&amp;oldid=prev"/>
				<updated>2018-10-20T11:19:25Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;Le commande Chatbot permet de faire réagir Gründer lors de la réception d&amp;#039;un message. Pour détecter un message, !chatbot dispose de 3 mode de détection (whole, find_once...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Le commande Chatbot permet de faire réagir Gründer lors de la réception d'un message. Pour détecter un message, !chatbot dispose de 3 mode de détection (whole, find_once et find_multi) ainsi que 2 mécanismes de détection : comparaison de chaîne ou expression régulière. Lorsqu'un message correspondant aux critères précédent est détecté, il peut réagir de deux manières : en envoyant un message ou en exécutant une commande. Chaque couple action/réaction possède un nom que vous lui attribuerez. Il sert notamment à supprimer le couple si besoin.&lt;br /&gt;
&lt;br /&gt;
==Paramètres principaux==&lt;br /&gt;
* Ajouter un couple action/réaction: &amp;lt;code&amp;gt;!chatbot name mode pattern whatToSay1 [whatToSay2 ...]&amp;lt;/code&amp;gt;&lt;br /&gt;
* Supprimer un couple: &amp;lt;code&amp;gt;!chatbot delete name&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===mode===&lt;br /&gt;
Ce paramètre peut prendre 3 valeurs:&lt;br /&gt;
* whole: le pattern doit matcher l'entièreté du message.&lt;br /&gt;
* find_once: le pattern peut se trouver n'importe où dans le message. La réaction ne sera réalisée qu'une fois, même si le pattern est trouvé à plusieurs endroits.&lt;br /&gt;
* find_multi: le pattern peut se trouver n'importe où dans le message. La réaction sera réalisée une fois par occurrence du pattern.&lt;br /&gt;
&lt;br /&gt;
===pattern===&lt;br /&gt;
Ce paramètre peut être soit une chaîne de caractère normale, soit une expression régulière. Si il contient un slash au début et à la fin, il sera considéré comme un expression régulière. Sinon, il sera considéré comme un chaîne de caractère simple. Exemples :&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Texte&lt;br /&gt;
!Interprétation&lt;br /&gt;
|-&lt;br /&gt;
|jaaj&lt;br /&gt;
|chaîne de caractères&lt;br /&gt;
|-&lt;br /&gt;
|/jaaj&lt;br /&gt;
|chaîne de caractères&lt;br /&gt;
|-&lt;br /&gt;
|/test/&lt;br /&gt;
|regexp&lt;br /&gt;
|-&lt;br /&gt;
|/test/i&lt;br /&gt;
|regexp avec flags&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Chaine de caractères====&lt;br /&gt;
En gros, c'est un CTRL+F dans le message. Si ce texte est trouvé, il exécutera la réaction; et sinon, rien. A noter que la recherche se fait '''en ignorant la casse'''.&lt;br /&gt;
&lt;br /&gt;
====Regexp====&lt;br /&gt;
La syntaxe de la regexp (la partie entre les slashs) peut se trouver sur la doc Java : [https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html#sum java.util.regex.Pattern] Le caractère (optionnel) se trouvant après le slash fermant la regexp '''est un flag'''. Il ajoute des informations supplémentaires sur comment la regexp doit être traitée. Gründer ne supporte (pour l'instant) qu'un seul flag: &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;. Lorsqu'il est présent, il indique que l'expression régulière est insensible à la casse. Pour tester vos regexp, je vous recommande l'excellent site [https://regex101.com/ Regex101].&lt;br /&gt;
&lt;br /&gt;
==Les réactions==&lt;br /&gt;
Lorsque plusieurs réactions sont précisées, Gründer choisira au hasard parmi les réactions proposées. Une réaction peut être soit un message à envoyer, soit une commande à executer; si ce paramètre commence par ! ou §, c'est une commande, et sinon c'est un message.&lt;br /&gt;
&lt;br /&gt;
===Le token $@===&lt;br /&gt;
Toute les occurrences de $@ seront remplacés par une mention de l'auteur du message qui a matché avec le pattern donné.&lt;br /&gt;
&lt;br /&gt;
===Le token $x, x étant un chiffre===&lt;br /&gt;
Dans le cas où pattern est une expression régulière, il est possible d'utiliser les &amp;quot;captures&amp;quot; (ou groupes) dans l'expression régulière (c'est ce qui est entre parenthèses, cf la doc java). Ainsi, si la réaction contient un $ suivi d'un chiffre, il sera remplacé par le contenu du groupe identifié par ce chiffre ($1 sera remplacé par le premier groupe, $2 par le 2ème etc...). Il existe aussi le groupe 0 ($0), qui est toujours présent, qui contient l'entièreté du match.&lt;br /&gt;
&lt;br /&gt;
===Échappement des tokens===&lt;br /&gt;
Il est bien évidemment possible d'échapper le symbole $ si vous ne voulez pas qu'il soit remplacé. Mettez simplement deux $ d'affilés. Exemple: &amp;lt;code&amp;gt;$$1&amp;lt;/code&amp;gt; ne sera pas remplacé par &amp;lt;code&amp;gt;$groupe1&amp;lt;/code&amp;gt; mais par &amp;lt;code&amp;gt;$1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Remarque sur les commandes===&lt;br /&gt;
Ne vous faites pas avoir par les espaces. Si vous appelez !chatbot avec le '!' (et non le '§'), les paramètres sont séparé par des espaces. Ainsi, &amp;lt;code&amp;gt;!chatbot casse find_once test !insulter Vincent&amp;lt;/code&amp;gt; '''n'insultera pas Vincent''' mais aura une chance sur 2 de lancer la commande &amp;lt;code&amp;gt;!insulter&amp;lt;/code&amp;gt; ou d'envoyer le message &amp;lt;code&amp;gt;Vincent&amp;lt;/code&amp;gt; lorsque &amp;lt;code&amp;gt;test&amp;lt;/code&amp;gt; est détecté dans un message. Pour régler ce problème, il faut bien évidemment utiliser '§' de cette manière : &amp;lt;code&amp;gt;§chatbot passe, find_once, test, !insulter Vincent&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
La vraie question est alors, comment faire si la commande que je dois appeler requiert elle aussi l'utilisation de '§' ? Marine dirait: &amp;quot;euuuh, nique ta mère&amp;quot;. Mais je ne suis pas Marine et il existe une solution: échapper '§' et ',' avec un autre '§'. Démonstration : &amp;lt;code&amp;gt;§chatbot test, find_once, test, §§ma_commande paramètre 1 §, paramètre 2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Exemples==&lt;br /&gt;
===Répondre bonjour===&lt;br /&gt;
* &amp;lt;code&amp;gt;!chatbot bonjour whole bonjour Bonjour&amp;lt;/code&amp;gt;: lorsque quelqu'un envoie &amp;quot;Bonjour&amp;quot;, Gründer répondra &amp;quot;Bonjour&amp;quot;&lt;br /&gt;
Bon, on est d'accord, c'est nul. Il pourrait au moins pas dire tout le temps la même chose : &lt;br /&gt;
* &amp;lt;code&amp;gt;!chatbot bonjour whole bonjour Bonjour Yo Salut Heyyyy&amp;lt;/code&amp;gt;&lt;br /&gt;
C'est mieux, mais on pourrait aller plus loin. Ca serait bien de dire le nom de la personne à qui ont dit Bonjour :&lt;br /&gt;
* &amp;lt;code&amp;gt;§chatbot bonjour, whole, bonjour, Bonjour, Yo $@, Salut $@, Heyyyy&amp;lt;/code&amp;gt;&lt;br /&gt;
Mieux. Mais si ont dit salut à la place de bonjour, mon truc est niqué. Je vous propose donc :&lt;br /&gt;
* &amp;lt;code&amp;gt;§chatbot bonjour, whole, /^(Bonjour|Yo|Salut|Hey+)(\s+Olivier)?(\s+Gr[uü]nder)?$/i, Bonjour, Yo $@, Salut $@, Heyyyy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Trouver quelqu'un===&lt;br /&gt;
* &amp;lt;code&amp;gt;§chatbot trouver, whole, /^(?:Olivier|Gr[uü]nder)\s+trouve\s(.+)$/i, !trouver $1&amp;lt;/code&amp;gt;&lt;br /&gt;
 Si je dis &amp;quot;Olivier trouve le respect&amp;quot;, il lancera la commande !trouver avec comme premier argument le premier groupe capturé, soit &amp;quot;le respect&amp;quot;. On remarquera la présence de '?:' dans les premières parenthèses. Cela indique à Java de ne pas considérer ce qu'il y a entre parenthèses comme un groupe. Si ces caractères n'étaient pas présents, alors le premier groupe ne serait pas &amp;quot;le respect&amp;quot; mais &amp;quot;Olivier&amp;quot;. On aurait aussi pu utiliser $2 au lieu de $1...&lt;br /&gt;
&lt;br /&gt;
===Dabber===&lt;br /&gt;
(Bon, j'avais vraiment pas d'exemple... désolé...)&lt;br /&gt;
* !chatbot dab find_multi dab :dab:&lt;br /&gt;
Si je dis &amp;quot;allons dabber sur hater vive le dab&amp;quot;, Gründer enverra deux messages avec l'émoji dab. Voilà, c'est de la grosse merde, faites en ce que vous voulez...&lt;br /&gt;
&lt;br /&gt;
Vous remarquerez cependant qu'on ne cherche pas '''le mot''' dab, mais la présence de d suivi de a suivi de b dans '''tout le message'''. Ainsi, le pattern matchera si votre message contient 'abracadabra'. Si vous souhaitez bel et bien matcher '''le mot''' dab, alors il faudra utiliser la regexp &amp;lt;code&amp;gt;/\bdab\b/&amp;lt;/code&amp;gt;. On notera la présence de '\b' avant et après dab, qui signifient &amp;quot;break&amp;quot;. Un break est soit un espace, soit le début ou la fin du message. C'est donc tout à fait ce que nous voulons.&lt;/div&gt;</summary>
		<author><name>Montoyo</name></author>	</entry>

	</feed>