LesAlertes - caecilius/cocobot GitHub Wiki
#summary Les alertes du script « save-logged-user-in-database.pl »
= Introduction =
Le [saveLoggedUserInDatabase script « save-logged-user-in-database.pl »] permet de déclencher certaines alertes. Une alerte est soit un message XMPP ou soit un message envoyé à l'utilisateur connecté.
Des alertes peuvent-être déclenchées en analysant les propriétés des utilisateurs connectés, par exemple on peut déclencher une alerte si l'utilisateur avec le pseudo « Laws » se connecte, ou si un pseudo femme de trente ans se connecte, ou encore si un pseudo se connecte avec un code de vote « MYY ».
L'option « -A » du « save-logged-user-in-database.pl » active la fonction des alertes et le fichier « conf/alert.conf » est utilisé.
== La section <alert>
==
Le fichier « alert.conf » comporte la section <alert>
pour déclarer une nouvelle alerte.
Exemple : {{{ enable = 1 condition = $mynickname eq 'Laws' transport = XMPP recipient = cocoxmpp }}}
Dans cette exemple une alarme de type XMPP est déclenché si un pseudonyme « Laws » est connecté.
Les différentes directives sont :
- enable : « 1 » l'alerte est activée ou « 0 » elle est désactivée.
- condition : condition requise pour que l'alerte soit prise en compte. Les conditions sont du code Perl. Plusieurs directives condition peuvent exister, il suffit qu'une soit vraie pour que l'alerte soit déclenchée.
- transport : type d'alerte XMPP ou Message.
- recipient : gestionnaire de l'alerte.
=== Les conditions ===
Les directives conditions utilisent les propriétés de l'objet Cocoweb::user::Connected. En voici une liste non exhaustive :
- mynickname : le pseudonyme
- myage : l'âge
- mysex : le sexe : 1 ou 6 pour un homme, 2 ou 7 pour une femme
- citydio : le code spécifique correspondant au code postal. Si cette valeur est comprise entre 30915 et 30935 l'utilisateur à entré un code postal de la ville de Paris.
- myver : 4 si l'utilisateur dispose d'un abonnement Premium
- isNew : 1 si l'utilisateur vient de se connecter sur le tchat
- hasChange : 1 si le pseudo s'est reconnecté en changeant certaines propriétés, comme le pseudo, l'âge, le sexe, ...
- ISP : le FAI utilisé comme « Free SAS », « Orange » ou « SFR ».
- town : le point de connexion. Exemples : « FR- Neuilly-sur-seine », « FR- Paris », « FR- Sevran" », ...
Plusieurs directives condition peuvent se suivre. L'alerte est déclenchée si au moins une des directives condition est vraie.
Exemple l'alerte sera déclenchée si un utilisateur avec le pseudonyme femme « Laws » ou un utilisateur avec le code de vote « uhy » est connecté : {{{ condition = $mynickname eq 'Laws' and ($mysex eq "2" or $mysex eq "7") condition = $code eq 'uhy' }}}
Les conditions sont du code Perl et peuvent comporter des opérateurs comme and ou or ainsi que des parenthèses :
{{{ condition = ($town eq "FR- Aulnay-sous-bois" or $town eq "FR- Sevran") and $ISP eq "Free SAS" and $mysex eq "2" and $citydio >= 30915 and $citydio <= 30935 and $mynickname ne "ghete" and $mynickname ne "stephanie" and $code ne 'KEx' and $code ne 'Sf4' }}}
== La section <XMPP>
==
La section <XMPP>
sert à déclarer le gestionnaire de l'alerte de type XMPP. Dans notre exemple se base une un compte Google Talk. Cependant avec l'apparition de Google Hangouts il n'est pas certain qu'un compte Google nouvellement créé fonctionne avec les protocoles XMPP.
Voici un exemple de gestionnaire d'alerte XMPP : {{{ name = cocoxmpp hostname = talk.google.com port = 5222 componentname = gmail.com connectiontype = tcpip tls = 1 username = mon.utilitsateur.gmail password = mon.mot.de.passe.gmail to = [email protected] resource = Cocobot subject = Cocobot }}}
Voici par exemple une alerte utilisant le gestionnaire d'alerte XMPP précédent :
{{{ enable = 1 condition = $code eq 'uhy' transport = XMPP recipient = cocoxmpp }}}
Voici à quoi ressemble l'alerte envoyée quand l'utilisateur avec le code de vote « uhy » est connecté sur le site « Coco.fr » :
http://cocobot.googlecode.com/svn/wiki/alerts/alert-cocobot-mmechat.jpg
L'alerte a été envoyée à une personne qui a configuré le client de messagerie instantané [http://fr.wikipedia.org/wiki/Pidgin_(logiciel) Pidgin] sous [http://fr.wikipedia.org/wiki/Ubuntu Ubuntu Linux 13.10].
== La section <Message>
==
La section <Message>
sert à déclarer le gestionnaire de l'alerte qui envoie des messages textes aux Internautes connectés au site « Coco.fr ».
Exemple : {{{ name = salutations write = Mes hommages à vous. }}}
Cette section envoie le message « Mes hommages à vous. » à un utilisateur.
Voici par exemple une alerte utilisant le gestionnaire d'alerte Message précédent : {{{ enable = 1 condition = ($isNew != 0 or $hasChange != 0) and ($mysex eq "1" or $mysex eq "6") and eq $mynickname eq 'SimonTemplar' and $myage == 37 transport = Message recipient = salutations }}}
L'alerte est envoyée à un utilisateur :
- qui vient de se connecter ou qui a changé des informations sur son profil,
- de sexe masculin,
- avec le pseudonyme '!SimonTemplar'
- âgé de trente-sept ans.
=== Exemples de sections <Message>
===
Une section <Message>
peut comporter plusieurs directives write :
{{{
name = salutations2
write = Mes hommages à vous.
write = Comment allez-vous ?
write = Bien, j'ose l'espérer.
}}}
L'utilisateur recevra ces trois messages l'un après l'autre.
Si les messages sont séparés par un caractère barre verticale, un des messages sera sélectionnés au hasard : {{{ name = salutations3 write = Mes hommages à vous, Madame.|Mes hommages, Madame...|Madame, je vous présente mes hommages.|Madame, permettez-moi de vous présenter mes hommages.|Je vous salue bien bas, Madame.|Je tiens à vous présenter mes hommages, Madame| }}} Attention le dernière caractère de la directive write doit être un caractère barre verticale pour que les messages soient vus comme des messages séparés.
La directive write peut-être aussi spécifier un fichier texte si la chaîne commence par « file:/// » : {{{ name = citations write = file:///plain-text/quotations.txt }}} Le fichier texte doit se trouver dans le répertoire « ~/cocobot/conf » et comporter un message par ligne. Un message sera sélectionné au hasard.
=== Log de messages envoyés et reçus ===
Les messages envoyés aux utilisateurs son enregistrés dans des fichiers logs du répertoire « ~/var/alert-messages ».
Les messages envoyés par les utilisateur au bot son enregistrés dans des fichiers logs du répertoire « ~/var/messages ».
Le script « ~/cocobot/tools/read-messages.pl » permet d'afficher les réponses envoyés par les utilisateurs au bot en lisant les fichiers logs des deux répertoires précédents.