Détecteur de vents
Description
Ce script détecte lorsque quelqu'un se prend un "vent" et fait répondre le bot d'une façon amusante.
Si quelqu'un pose une question et que personne n'y répond ou si quelqu'un entame un monologue assez long sans que personne n'intervienne, il s'agit d'un vent.
Une option permet à l'Eggdrop de détecter ses propres questions laissées dans le vent, ce qui peut être amusant si vous l'utilisez comme chatterbot.
Détails techniques
La phrase contenant la question doit comporter un point d'interrogation et un certain temps s'écouler sans que personne ne parle pour que le détecteur de vent s'active.
Les copier/coller et le flood rapide sont exclus de la détection de monologue.
Ce script peut être utilisé sur un chatterbot car si une phrase contient le nick de l'Eggdrop, elle sera ignorée par le Détecteur de vents.
Un utilisateur discutant avec l'Eggdrop ne sera donc pas considéré comme étant en train de monologuer et ses questions qu'il lui pose ne seront pas comptées.
La détection par l'Eggdrop de ses propres vents ne s'activera pas s'il répond à une commande ou qu'il cite une url, ce qui permet d'éviter qu'il détecte une question lorsqu'il affiche le résultat d'une commande, lorsqu'une uri contient un "?" ou qu'il annonce des flux RSS.
Les différentes réponses possibles ne se répèteront pas avant d'avoir été toutes utilisées une fois. L'ordre sera chaque fois différent.
Si une question contient le nick d'une personne présente sur le chan et que cette personne n'est pas l'avant-dernière à avoir parlé, les réponses contenant :LASTNICK: seront évitées.
Les commandes que vous tapez sont exclues de la détection.
Activation
Pour activer le détecteur de vents sur un chan, vous devez taper ceci en partyline :
.chanset #NomDuChan +DDV
et ceci pour le désactiver :
.chanset #NomDuChan -DDV
Screenshot
Changelog
1.0
1.1
- Le bot ne met plus de double vents.
1.2
- Amélioration de la détection des questions.
- Correction de quelques bugs.
1.3
- Les copier/coller et le flood ne sont plus considérés comme étant un monologue.
- Correction d'un petit bug.
- Ajout d'un VERITABLE support multi-channel (celui d'avant était foireux).
2.0
- Réécriture quasi-totale du code car il s'agissait d'un de mes premiers scripts et il était farci de mes erreurs de débutant.
- Ajout d'une option permettant de faire fonctionner le détecteur de vents en collaboration avec l'Interface MegaHAL (script du même auteur à télécharger séparément).
- Ajout d'un mode chatterbot afin d'exclure de la détection les phrases qui contiennent le nick du bot, ce qui peut être utile si vous utilisez une intelligence artificielle sur votre eggdrop et que les utilisateurs ont pour habitude de discuter avec lui.
- Ajout d'une option vous permettant de définir les symboles que vous utilisez pour préfixer vos commandes, afin d'exclure de la détection les lignes de commandes.
- Ajout d'une procédure de désinstallation.
- La détection considère maintenant l'ident@host plutôt que le nick pour identifier les individus, ce qui la rend plus fiable en cas de changement de nick.
- L'activation/désactivation du script sur chaque chan se fait maintenant au moyen de la commande .chanset #NomDuChan [+/-]DDV (à taper en partyline).
- Ajout de deux nouveaux codes utilisables dans les réponses :
:RANDNICK: sera substitué par le nick d'une personne présente sur le chan et choisie au hasard.
:CHAN: sera substitué par le nom du chan.
- Ajout de quelques nouvelles réponses.
- Passage sous licence Creative Commons.
2.1
- Si l'option megahal_interface est activée, le script détecte maintenant proprement si l'Interface MegaHAL est bien chargée et s'il s'agit bien de la version attendue.
- Correction : avec le mode chatterbot activé, si le nick de l'eggdrop commençait ou se terminait par un caractère non-alphabétique, la détection ne fonctionnait pas correctement et on se prenait un vent en posant une question au bot.
- Correction : avec le mode chatterbot activé et lorsqu'une question était en suspens, le script ne détectait pas une intervention d'un autre utilisateur comme une interruption si sa phrase contenait le nick du bot.
- Correction : si une question était en suspens et que le détecteur de vents était désactivé manuellement sur ce chan avant que le vent soit signalé, il y répondait quand même.
- Quelques optimisations du code.
2.2
- Ajout : nouvelle variable :LASTNICK: à utiliser dans les réponses du script; elle sera remplacé par le nom de l'avant-dernière personne à avoir parlé.
- Ajout : nouveau paramètre de configuration randnick_exempted_users, vous permettant de définir certains nick ou handles qui ne seront jamais choisis lors de la substitution des variables :RANDNICK:.
- Modification : les vents ne seront désormais plus signalés si l'utilisateur concerné n'est plus présent sur le chan.
- Modification : les changements de nick sont maintenant surveillés, ce qui permet de signaler le vent au nick actuel de l'utilisateur et non pas à l'ancien.
- Modification : le fonctionnement de la variable :RANDNICK: a été amélioré.
Si plusieurs :RANDNICK: sont utilisés dans une même réponse, on s'assure qu'un même nick ne sera pas utilisé plus d'une fois.
Si on a plus de :RANDNICK: à remplacer qu'il n'y a d'users sur le chan, on remplace ceux en trop par "quelqu'un".
- Modification : les codes de style (couleurs, gras, ...) sont automatiquement filtrés si le mode +c est activé sur un chan.
- Diverses optimisations et corrections du code.
- Ajout de nouvelles réponses dans la base de données.
2.21
- Modification : les réponses contenant :LASTNICK: ne seront plus utilisées si l'avant-dernière personne à avoir parlé ne se trouve plus sur le chan.
2.3
- Ajout : l'Eggdrop est désormais capable de détecter ses propres vents lorsqu'il pose une question qui reste sans réponse. Voir les paramètres de configuration chatterbot_mode, Eggdrop_detects_own_blown_off, wait_time_after_cmd et blown_off_Eggdrop_question.
- Ajout : les CTCP ACTION (/me) sont maintenant pris en compte.
- Ajout : les différentes réponses possibles ne se répèteront pas avant d'avoir été toutes utilisées une fois. L'ordre sera chaque fois différent.
- Modification : si un vent est signalé pour une question sans réponse, la même personne ne pourra plus s'en prendre un deuxième d'affilée s'il pose une autre question.
- Modification : les questions contenant un des nicks ou handles spécifiés dans le paramètre exempt_list sont maintenant ignorées.
- Modification : amélioration de la détection des questions pour réduire les erreurs.
Téléchargement
Détecteur de vents v2.3
Laissez vos commentaires / questions / suggestions / rapports de bugs
ici.