Résumé : Concierge électronique et cafteur en chef, vous rapporte les paroles et faits intéressants qui se sont déroulés durant votre absence.
Description :
Description
Vous en avez marre, chaque fois que vous vous absentez, de devoir relire des kilomètres de logs pour savoir si vos users adorés n'ont pas trop foutu le bordel en votre absence ?
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 ?
C'est précisément ce à quoi sert Open Eye.
Open Eye est un système de surveillance complet qui note dans un rapport tout ce que vous lui direz de surveiller.
Ce rapport peut ensuite être consulté au moment voulu.
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 :
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) :
1- mettons que je veuille qu'Open Eye me rapporte quand quelqu'un prononce le mot "p0rn" sur le chan #monchan.
Je dois dans un premier temps activer la surveillance des mots clés dans les messages publics sur #monchan :
Ensuite, je dois ajouter une chaîne de détection comme ceci :
J'utilise des "*" afin qu'il détecte le mot p0rn même en plein milieu d'une phrase et non pas uniquement lorsqu'il est employé tout seul.
2- maintenant je veux qu'Open Eye me rapporte chaque fois qu'un user dont le host contient "BsMax" ouvre la bouche sur #monchan pour dire quelque chose; il me suffit d'ajouter une chaîne de détection supplémentaire :
3- je souhaite aussi qu'Open Eye m'informe chaque fois qu'un user est banni sur n'importe quel chan où se trouve mon eggdrop :
En définissant des détections globales, assurez-vous que le type de surveillance en question soit activé au moins sur l'un de vos chans, sinon Open Eye ne verra pas grand-chose.
4- enfin, j'aimerais qu'Open Eye enregistre chaque fois que le mode m est mis ou enlevé sur #monchan :
Le ? remplaçant n'importe quel caractère, ?m détectera les modes +m et -m.
Veuillez noter que toutes les commandes doivent être tapées en partyline et que l'affichage du rapport se fait lui aussi en partyline, pour des raisons de confidentialité et 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, au moyen du flag h.
Par exemple si vous voulez utiliser la coloration, vous devez taper :
et si vous préférez ne pas utiliser de style visuel du tout :
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é.
Ca permet de mieux comprendre le contexte de ce qui a été dit.
La ligne contenant le déclencheur est indiqué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 pour 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.
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 :
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 du tout ça.
Open Eye déclare le package "OpenEye" afin que vous puissiez vérifier sa présence depuis d'autres scripts au moyen de :
Syntaxe
.survey <on/off>
Active/désactive la surveillance (agit comme un interrupteur global).
.survey set [#chan] <setting> <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>
Affiche le rapport de surveillance global ou celui de #chan.
.report purge <*/#chan>
Efface le rapport de surveillance global ou celui de #chan.
Informations complémentaires relatives à la syntaxe
Screenshots
![[Image: reportq.gif]](http://img202.imageshack.us/img202/9097/reportq.gif)
post support ici
Description
Vous en avez marre, chaque fois que vous vous absentez, de devoir relire des kilomètres de logs pour savoir si vos users adorés n'ont pas trop foutu le bordel en votre absence ?
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 ?
C'est précisément ce à quoi sert Open Eye.
Open Eye est un système de surveillance complet qui note dans un rapport tout ce que vous lui direz de surveiller.
Ce rapport peut ensuite être consulté au moment voulu.
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 :
- keyword = surveillance des mots clés dans tous les messages, notices et ctcp action (/me) publics.
- join = surveillance des utilisateurs rejoignant #chan.
- part = surveillance des utilisateurs quittant #chan.
- quit = surveillance des utilisateurs se déconnectant.
- netsplit = surveillance des utilisateurs perdus lors d'un netsplit.
- rejoin = surveillance des utilisateurs rejoignant #chan après un netsplit.
- invite = surveillance des invitations sur #chan.
- nickchange = surveillance des changements de nick sur #chan.
- kick = surveillance des kicks sur #chan.
- ban = surveillance des bannissements sur #chan.
- unban = surveillance des dé-bannissements sur #chan.
- mode = surveillance des changements de modes sur #chan.
- topic = surveillance des changements de topic sur #chan.
- connect = surveillance des connexions de votre eggdrop au serveur.
- disconnect = surveillance des déconnexions de votre eggdrop du serveur.
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) :
- nick = la chaîne de détection sera comparée avec le nick de l'user qui a déclenché l'évènement.
- hand = la chaîne de détection sera comparée avec le handle de l'user qui a déclenché l'évènement.
- host = la chaîne de détection sera comparée avec le host de l'user qui a déclenché l'évènement.
- text = la chaîne de détection sera comparée avec le texte que l'user a écrit en public.
- msg = la chaîne de détection sera comparée avec le message de part, de quit ou de kick, selon le cas.
- topic = la chaîne de détection sera comparée avec le topic.
- targetnick = la chaîne de détection sera comparée avec le nick de la cible d'une invitation ou d'un kick, selon le cas.
- targethand = la chaîne de détection sera comparée avec le handle de la cible d'une invitation ou d'un kick, selon le cas.
- targethost = la chaîne de détection sera comparée avec le host de la cible d'une invitation ou d'un kick, selon le cas.
- newnick = la chaîne de détection sera comparée avec le nouveau nick d'un user qui vient d'en changer.
- banmask = la chaîne de détection sera comparée avec le masque de ban ou d'unban, selon le cas.
- mode = la chaîne de détection sera comparée avec le mode.
- arg = la chaîne de détection sera comparée avec l'argument du mode.
- all = la chaîne de détection sera comparée avec tous les sous-types disponibles à la fois.
- pour le type keyword, le sous-type peut être nick hand host text ou all
- pour le type join, le sous-type peut être nick hand host ou all
- pour le type part, le sous-type peut être nick hand host msg ou all
- pour le type quit, le sous-type peut être nick hand host msg ou all
- pour le type netsplit, le sous-type peut être nick hand host ou all
- pour le type rejoin, le sous-type peut être nick hand host ou all
- pour le type invite, le sous-type peut être nick hand host targetnick targethand targethost ou all
- pour le type nickchange, le sous-type peut être nick hand host newnick ou all
- pour le type kick, le sous-type peut être nick hand host targetnick targethand targethost msg ou all
- pour le type ban, le sous-type peut être nick hand host banmask ou all
- pour le type unban, le sous-type peut être nick hand host banmask ou all
- pour le type mode, le sous-type peut être nick hand host mode arg ou all
- pour le type topic, le sous-type peut être nick hand host topic ou all
1- mettons que je veuille qu'Open Eye me rapporte quand quelqu'un prononce le mot "p0rn" sur le chan #monchan.
Je dois dans un premier temps activer la surveillance des mots clés dans les messages publics sur #monchan :
tcl
.survey set #monchan keyword on
Ensuite, je dois ajouter une chaîne de détection comme ceci :
tcl
.survey add #monchan keyword text *p0rn*
J'utilise des "*" afin qu'il détecte le mot p0rn même en plein milieu d'une phrase et non pas uniquement lorsqu'il est employé tout seul.
2- maintenant je veux qu'Open Eye me rapporte chaque fois qu'un user dont le host contient "BsMax" ouvre la bouche sur #monchan pour dire quelque chose; il me suffit d'ajouter une chaîne de détection supplémentaire :
tcl
.survey add #monchan keyword host *bsmax*
3- je souhaite aussi qu'Open Eye m'informe chaque fois qu'un user est banni sur n'importe quel chan où se trouve mon eggdrop :
tcl
.survey add global ban nick *
En définissant des détections globales, assurez-vous que le type de surveillance en question soit activé au moins sur l'un de vos chans, sinon Open Eye ne verra pas grand-chose.
4- enfin, j'aimerais qu'Open Eye enregistre chaque fois que le mode m est mis ou enlevé sur #monchan :
tcl
.survey add #monchan mode mode ?m
Le ? remplaçant n'importe quel caractère, ?m détectera les modes +m et -m.
Veuillez noter que toutes les commandes doivent être tapées en partyline et que l'affichage du rapport se fait lui aussi en partyline, pour des raisons de confidentialité et 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, au moyen du flag h.
Par exemple si vous voulez utiliser la coloration, vous devez taper :
tcl
.chattr VotreHandle +h
et si vous préférez ne pas utiliser de style visuel du tout :
tcl
.chattr VotreHandle -h
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é.
Ca permet de mieux comprendre le contexte de ce qui a été dit.
La ligne contenant le déclencheur est indiqué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 pour 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.
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 :
tcl
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 du tout ça.
Open Eye déclare le package "OpenEye" afin que vous puissiez vérifier sa présence depuis d'autres scripts au moyen de :
tcl
package require OpenEye
Syntaxe
.survey <on/off>
Active/désactive la surveillance (agit comme un interrupteur global).
.survey set [#chan] <setting> <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>
Affiche le rapport de surveillance global ou celui de #chan.
.report purge <*/#chan>
Efface le rapport de surveillance global ou celui de #chan.
Informations complémentaires relatives à la syntaxe
- Valeurs possibles pour l'argument setting (de la commande .survey set) : keyword join part quit netsplit rejoin invite nickchange kick ban unban mode topic connect ou disconnect.
Si setting vaut connect ou disconnect, vous ne devez pas spécifier #chan car ces 2 types de surveillance sont indépendants du chan.
Exemples :tcl.survey set #chan nickchange on .survey set disconnect off
- Valeurs possibles pour l'argument type : keyword join part quit netsplit invite nickchange kick ban unban mode ou topic.
- 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.
- 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 \*
Screenshots
![[Image: status.gif]](http://img708.imageshack.us/img708/6062/status.gif)
![[Image: lists.gif]](http://img163.imageshack.us/img163/8254/lists.gif)
![[Image: reportq.gif]](http://img202.imageshack.us/img202/9097/reportq.gif)
post support ici
Changelog
Version 1.5 par MenzAgitat (11/08/2015)46 téléchargements
Correction : le mécanisme de rotation des logs ne comptait pas le bon nombre de lignes à supprimer parmi les entrées les plus anciennes.
Correction : des traitements inutiles impliquant le parsing de chaque ligne du rapport se produisaient à chaque lecture du fichier log.
Correction : l'affichage des rapports consommait plus de RAM que nécessaire, car il était dupliqué en mémoire avant l'affichage.
Correction : la procédure de désinstallation ne supprimait pas la procédure d'interopératibilité ::add_to_report
Correction : le rappel de syntaxe donné en cas d'emplacement erroné n'était pas complet.
Correction : le message informant que des éléments ont été omis en raison du filtrage par date n'était pas correctement mis au pluriel en fonction du nombre de lignes omises.
Correction : certains caractères spéciaux dans les nicks n'étaient pas correctement interprétés lors de l'ajout aux logs.
Correction : le caractère "*" n'était pas interprété correctement dans les messages lors de l'ajout aux logs.
Correction : la base de données est désormais mieux formatée afin de respecter exactemnt 11 champs par entrée.
Les bases de données créées par des versions antérieures de Open Eye seront automatiquement converties au nouveau format au chargement du script.
Correction : les appels à "::tcl::clock::scan" ont été remplacés par "clock scan" car ils posaient problème sur certains Eggdrops.
Correction : Open Eye ne fonctionnait pas sur les chans dont le nom comporte des majuscules.
Si malgré la réparation de ce bug vous rencontrez encore des problèmes de fonctionnement sur les chans comportant des majuscules, veuillez vous reporter à la note sur ce sujet dans la documentation (sous INFORMATIONS COMPLEMENTAIRES).
Correction : "maintenant" n'était pas reconnu comme un format de date valide pour le filtrage par date de la commande .report
Correction : un problème d'encodage cassait parfois les caractères accentués.
Correction : des caractères accentués à la fin d'un texte (message, message de quit ou de kick, ...) pouvait corrompre la structure de la base de données contenant les rapports.
Correction : lors de la suppression d'un chan de l'Eggdrop, ses listes de détection et ses rapports restaient en place mais ne pouvaient ni être consultés, ni être supprimés. Ils sont désormais correctement effacés en même temps que le chan.
Ajout : commande .report range <*/#chan/server> permettant de connaître le nombre d'éléments présents dans le log pour un emplacement donné, ainsi que leur étendue dans le temps.
Ajout : commande .report search <*/#chan/server> <text/id> <arguments de recherche> vous permettant d'effectuer une recherche dans les rapports.
La recherche peut s'effectuer dans le texte (message, message de quit, ...) ou dans les informations d'identification (nick, handle, host, cible).
Ajout : un en-tête est maintenant ajouté aux bases de données, afin de permettre d'en vérifier la version. Cet en-tête comporte également un rappel de la structure d'une entrée dans la base de données.
Ajout : les lignes trop longues pour être affichées en une seule fois seront désormais découpées en autant de lignes que nécessaires pour pouvoir afficher toute l'information.
Ajout : Open Eye utilise désormais des fichiers de langue pour l'affichage des messages du script.
Des fichiers pour la langue française et la langue anglaise sont fournis.
Un nouveau paramètre de configuration permettant de contrôler la langue a été ajouté, ainsi qu'un autre afin de contrôler l'emplacement des fichiers de langue.
Ajout : le handle / host d'un utilisateur ayant changé un topic sera maintenant affiché dans les rapports.
Ajout : l'Eggdrop "se voit" maintenant parler, ce qui permet de surveiller ses propos.
De plus, il pourra désormais apparaître dans le contexte des logs comme n'importe quel autre utilisateur.
Ajout : création quotidienne d'une copie de sauvegarde des bases de données.
Le nouveau paramètre de configuration backup_time a été ajouté.
Nombreuses optimisations du code.
Version 1.2 par MenzAgitat (26/01/2012)
216 téléchargements
Correction : les modes +b ou -b ne sont plus adjoints au destinataire d'un ban/unban dans les rapports.
Correction : faire partir l'Eggdrop d'un chan non défini comme statique ne provoque plus d'erreur.
Correction : les CTCP ACTION (/me) sont maintenant clairement différenciés des messages normaux dans les rapports.
Correction : le rapport est maintenant proprement déchargé de la mémoire après l'avoir consulté ou avoir fait un effacement sélectif.
Ajout de l'option post_context_size permettant de définir un nombre de lignes qui seront ajoutées au rapport après qu'un mot clé a été détecté.
Modification de l'option context_size qui s'appelle désormais pre_context_size.
Ajout de l'option limit_logfile pour permettre de limiter la taille du rapport.
Ajout de l'option limit_method permettant de choisir parmi 2 méthodes de limitation : limiter par nombre de lignes et par chan, ou définir une taille en octets à ne pas dépasser pour le fichier rapport.
Ajout de l'option max_value_for_limit pour définir la valeur pour la limitation.
Quelques ajustements mineurs du code ci et là.
Version 1 par MenzAgitat (13/03/2010)
94 téléchargements
Version initiale