Accueil





Open Eye


Description

Vous en avez marre, chaque fois que vous vous absentez, de devoir relire des kilomètres de logs pour savoir si vos utilisateurs adorés n'ont pas trop foutu le bordel en votre absence ?

Vous êtes en charge de surveiller un chan assez fréquenté et vous attrapez des migraines à force de devoir lire chaque ligne pour savoir si tout le monde reste sage ?

Vous rêvez d'avoir un concierge privé qui garderait l'oeil ouvert en permanence et qui vous ferait un résumé des évènements dignes d'intérêt dès votre retour ?

Ou alors vous préféreriez peut-être qu'il avertisse en temps réel sur un chan de votre choix (ou même en pv) dès qu'il se passe quelque chose d'inhabituel ?

C'est précisément tout ce à quoi sert Open Eye.

Open Eye est un système de surveillance complet qui vous rapportera tout ce que vous lui aurez demandé de surveiller.

Il existe 15 types de surveillance différents et chacun de ces types possède un nombre variable de sous-types pour un total de 57 critères de surveillance.

Voici les 15 types de base : Chaque type se décline en sous-types.
Pour le type keyword par exemple, il est possible de détecter l'évènement en fonction du nick de la personne qui a parlé, de son host, de son handle, de ce qu'il a dit, ou encore de tous ces sous-types à la fois.

Voici les différents sous-types possibles (certains ne sont disponibles que pour certains types) : Comme je l'expliquais juste avant, certains sous-types ne sont disponibles que pour certains types :


Quelques exemples concrets



Informations complémentaires

Si le nom de certains de vos chans comporte des majuscules, assurez-vous de les avoir ajouté à l'Eggdrop (avec la commande .+chan) en respectant la casse des caractères, sans quoi Open Eye ne fonctionnera pas correctement.
Si vous avez fait l'erreur d'ajouter un chan à votre Eggdrop sans en respecter les majuscules et que vous ne voulez pas le supprimer / recréer pour ne pas perdre vos paramétrages, voici ce que vous pouvez faire :
- arrêtez votre Eggdrop
- éditez le fichier eggdrop.chan et remplacez toutes les occurrences du nom du chan que vous voulez rectifier
- démarrez votre Eggdrop

Veuillez noter que toutes les commandes doivent être tapées en partyline, et que l'affichage de l'historique de surveillance se fait lui aussi en partyline pour des raisons de rapidité d'affichage de nombreuses lignes de texte.

Vous pouvez contrôler si Open Eye doit appliquer ou non un style visuel (couleurs, gras, soulignement) sur ce qu'il affiche en partyline, au moyen du flag h.
Par exemple si vous voulez utiliser la coloration, vous devez taper :
.chattr VotreHandle +h

et si vous préférez ne pas utiliser de style visuel du tout :
.chattr VotreHandle -h

Vous ne verrez pas les couleurs si vous vous connectez à votre bot en telnet; pour les voir, connectez-vous à lui par CTCP chat.

Lorsqu'un déclencheur de type keyword (mot clé dans un message public) enregistre une ligne dans le rapport, vous noterez qu'il ajoute également les quelques lignes précédant la ligne qui l'a déclenché, ainsi que les quelques lignes qui suivent.
Il est ainsi possible de reconstituer le contexte de ce qui a été dit.
La ligne contenant le déclencheur est signalée au moyen d'un marqueur rouge afin de la différencier des lignes appartenant au contexte.

Les différents types de surveillance peuvent être activés/désactivés séparément sur chaque chan (au moyen de la commande .survey set) et ils sont sont tous désactivés par défaut si c'est la première fois que vous lancez ce script.

Dans le rapport de surveillance, les lignes impliquant deux utilisateurs (comme par exemple un kick impliquant l'auteur et la cible) ont une forme particulière : les deux derniers champs indiquent (handle_user1 / host_user1) et (handle_user2 / host_user2).

Dans le rapport de surveillance, les détections de type KEYWORD indiquent leur type de la façon suivante :
message normal :
<nick> blabla bla
notice au chan :
-nick- blabla bla
ctcp action (/me) :
* nick blabla bla

Il est possible pour d'autres scripts d'envoyer des lignes à Open Eye afin de les adjoindre au rapport, une procédure existe dans ce but précis.
Cette procédure se trouve en dehors du namespace d'Open Eye afin d'offrir une plus grande facilité d'utilisation; le revers potentiel est que si vous utilisez un autre script qui définit une procédure du même nom, vous aurez un conflit sur les bras.
Vous pourrez facilement corriger ce problème en modifiant le nom de ladite procédure dans Open Eye.
Voici comment utiliser cette fonction :
add_to_report <nom_du_script_appelant> <#chan> <information_à_ajouter>
Si l'information ne concerne pas un chan en particulier, mettez "-" à la place du nom du chan.
Nom_du_script_appelant doit être le nom du script qui envoie l'information.
Soyez prudent dans la façon dont vous utilisez cette fonction, si vous envoyez par exemple "\n" comme information, ça provoquera un retour à la ligne inopiné en plein milieu du fichier rapport et Open Eye n'aimera pas ça.
Open Eye déclare le package "OpenEye" afin que vous puissiez vérifier sa présence depuis d'autres scripts au moyen de la commande package require OpenEye.



Syntaxe

.survey <on/off>
Active/désactive la surveillance (agit comme un interrupteur global).

.survey set [#chan] <type> <on/off>
Active/désactive la surveillance d'un type donné.

.survey <add/del> <global/#chan> <type> <subtype> <chaîne de détection>
Ajoute/supprime une chaîne de détection du type et du sous-type spécifié.

.survey list <global/#chan> <type> <subtype>
Affiche les chaînes de détection du type et du sous-type spécifié.
Si subtype vaut *, affiche les chaînes de détection de tous les sous-types confondus.

.survey lists <global/#chan>
Affiche un récapitulatif de toutes les listes de détection.

.survey copy <#chan1> <#chan2>
Copie les listes de détection de #chan1 sur #chan2 (il s'agit d'une fusion, aucun paramètre préexistant de #chan2 ne sera effacé)

.survey status [#chan]
Affiche un récapitulatif du statut de la surveillance sur tous les chans, ou seulement celui de #chan si ce dernier est spécifié.

.report <*/#chan/server> [date ou étendue de dates]
Affiche le rapport de surveillance complet, celui de #chan, ou le rapport d'évènements concernant le serveur (comme par exemple les connexions et déconnexions de l'Eggdrop).
Il est possible de filtrer les résultats en spécifiant une date ou une étendue de dates.
De nombreux formats de dates sont reconnus, en voici quelques exemples :
maintenant, aujourd'hui, jour, hier, lundi, sam, jeudi 23h10, 05/02, 5 février, février, février 2015, février 15, 5 fev 15, 5 février 2015, 5 février 2015 23:10, 02/2015, 2015, 23:10, 23:10:58, 23h, 23, 23h10, ...
D'autres variantes sont acceptées, notamment les équivalents anglais (now, today, yesterday, february, feb, saturday, sat, ...)
Syntaxe des étendues de dates :
date : seulement cette date (exemple : 05/02 = le 5 février dernier entre 0h et 23h59)
-date : avant cette date (exemple : -février 2015 = avant le 5 février 2015 à 0h00)
date- : à partir de cette date (exemple : 6h- = à partir de 6h aujourd'hui)
date1-date2 : entre ces deux dates incluses (exemple : 5 février 23:10-12/02 = entre le 5 février dernier à 23h10 et le 12 février dernier à 23h59)

.report search <*/#chan/server> <text/id> <arguments de recherche>
Effectue une recherche dans les rapports.
En spécifiant "text", la recherche s'effectuera dans le texte (messages, notices, messages de kick, ...).
En spécifiant "id", la recherche s'effectuera dans les informations d'identification (nick, handle, host, cible).

.report chanlist
Affiche une liste des emplacements surveillés pour lesquels des évènements ont été rapportés.

.report range <*/#chan/server>
Affiche le nombre d'éléments présents dans le rapport de surveillance de l'emplacement spécifié, ainsi que l'étendue temporelle couverte par tous ces éléments.

.report purge <*/#chan/server>
Efface tous les rapports de surveillance, celui de #chan, ou le rapport d'évènements concernant le serveur.



Informations complémentaires relatives à la syntaxe

Valeurs possibles pour l'argument type : keyword join part quit netsplit rejoin invite nickchange kick ban unban mode topic.

Pour la commande .survey set, 2 types supplémentaires sont disponibles : connect et disconnect.
Si type vaut connect ou disconnect, vous ne devez pas spécifier #chan car ces 2 types de surveillance ne sont pas liés à un chan en particulier.
Exemples :
Activer la surveillance des changements de nick sur #monchan :
.survey set #monchan nickchange on
Désactiver la surveillance des déconnexions du serveur :
.survey set disconnect off


Valeurs possibles pour l'argument subtype : nick hand host text msg topic targetnick targethand targethost newnick mode banmask arg ou all

Pour la commande .survey list, subtype peut aussi valoir *, auquel cas seront affichées les chaînes de correspondances de tous les sous-types à la fois.

Dans les chaînes de détection, la casse des caractères importe peu car tout est mis en minuscule SAUF en ce qui concerne les modes. En effet, les modes +m et +M n'ont pas la même signification par exemple.

Les chaînes de détection peuvent contenir des jokers :
? remplace n'importe quel caractère (te?t matche "test" et "text" mais pas "tesst" ni "tet")
* remplace n'importe quel nombre de caractères, y compris aucun (*test* matche "test", "abctestabc" et "ceci est un test !")

Les chaînes de détection sont littérales sauf en ce qui concerne les caractères jokers * et ?

Pour ajouter une chaîne de détection comportant un espace, entrez-la naturellement sans utiliser de guillemets.
Exemple :
.survey add #monchan keyword text ceci est un test


Pour ajouter une chaîne de détection devant matcher littéralement ? ou *, c'est à dire sans les considérer comme des jokers, faites-les précéder d'un antislash comme ceci : \? et \*



Changelog
1.0 1.1 1.2 1.21 1.3 1.4 1.5



Téléchargement

Open Eye v1.5

Laissez vos commentaires / questions / suggestions / rapports de bugs ici.

©2005-2016 Menz Agitat