Aller au contenu

« Sextium » : différence entre les versions

De Site à José Mans
Mans (discussion | contributions)
mAucun résumé des modifications
Manuel : Récupération de l'aide en ligne! ajout du lien, correction ortho, suppress de truc présent l'aide en ligne
 
(5 versions intermédiaires par un autre utilisateur non affichées)
Ligne 7 : Ligne 7 :


Ces macros sont enregistrées par les utilisateurs sous forme d'actions, de messages ou commandes IRC. Il est possible de créer une macro avec plusieurs macros à la suite. Il garde aussi un historie de celles effacées.
Ces macros sont enregistrées par les utilisateurs sous forme d'actions, de messages ou commandes IRC. Il est possible de créer une macro avec plusieurs macros à la suite. Il garde aussi un historie de celles effacées.


=== Fonctionnalités ===
=== Fonctionnalités ===
Ligne 21 : Ligne 23 :


=== Manuel ===
=== Manuel ===
Un fichier d'aide avait était écrit en XML/XSL mais celui a été perdu. Une lecture du code source Mybot.pm devrait permette de comprendre comment fonctionnent les macros assez rapidement...
 
Le fichier XML contient toutes les commandes du BOT et est utilisé sur IRC avec $help CMD.
 
Une version complète est disponible en XML à http://obelix.gyptis.org/help/index.xml.
Sa mise en forme se fait avec XSL; Vous devrez donc avoir un navigateur compatible...
 
Une des commande ($invite) n'est pas visible dans l'aide en ligne ou dans le bot sur IRC et pour cause, elle est complexe à mettre en œuvre avec XML.
Comme le BOT est abandonné, voici un aperçue :
 
<!-- Un fichier d'aide avait était écrit en XML/XSL mais celui a été perdu. Une lecture du code source Mybot.pm devrait permette de comprendre comment fonctionnent les macros assez rapidement...
-->
 


<html>
<html>
<pre>
<div style="sextium_help"><pre>
add [user | say | action] ...
 
    say | action
        %n Nickname du demandeur
        %c channel courant
        %s nickname du destinataire
 
    Ajout de macro pour utiliser sur les channels.
 
        $add action testor est sur %s ; $say pas trop lourd %s ?
 
        $add action colere est en colère contre %s ; $k %s passe le bonjour à Poutine
 
        Utilisation: $colere nickname
            Réponse du Bot sur chan :
                13:12  * AsteriX est en coloère contre CIXX
                13:13 -!- CIXX was kicked from #Gyptis by AsteriX [passe le bonjour à Poutine]
 
 
    Ajout d'alias de macro.
        $add say NameAlias $testor
        voir l'aide en ligne pour les détails !
 
 
invite [A] || [B] || [C]
invite [A] || [B] || [C]
(A) $invite nick1 [nickN ...]
(A) $invite nick1 [nickN ...]
Ligne 33 : Ligne 70 :


(C) $invite #chan1 [#ChanN ...]
(C) $invite #chan1 [#ChanN ...]
         Doit inviter l'utilisateur qui envoit la demande sur le chan courant
         Doit inviter l'utilisateur qui envoie la demande sur le chan courant
         il sera invité sur les #channels précisés : #chan1 chanN....
         il sera invité sur les #channels précisés : #chan1 #chanN....


<!> Si le nick du bot est précisé il est remplacé par celui du demandeur.
<!> Si le nick du bot est précisé il est remplacé par celui du demandeur.
     Si l'invite est effectué en Privé (PRIVMSG) sans channel alors je refuse :)
     Si l'invite est effectué en Privé (PRIVMSG) sans channel alors il refuse :)


level [nick]
level [nick]
     Renvoit le level d'un utilisateur sous forme numérique OU
     Renvoie le level d'un utilisateur sous forme numérique OU
     toutes les informations connus dans userlist de $from...
     toutes les informations connues dans userlist de $from...
     Si pas d'argument, alors elle renvoit le level de
     Si pas d'argument, alors elle renvoie le level de
     l'utilisateur précédent. Dans tous les cas elle est lancée
     l'utilisateur précédent. Dans tous les cas elle est lancée
     au début de &on_cmd() et donc elle possède toujours
     au début de &on_cmd() et donc elle possède toujours
     les bons réglages de l'utilisateur courant...
     les bons réglages de l'utilisateur courant/demandeur...


info
info
     envoit les information du bot et des channels qui l'occupe.
     envoie les informations du bot et des channels qui l'occupe.
     Précise s'il est en mode talk ou pas.
     Précise s'il est en mode talk ou pas.




sleep time
talk | verbose | parle
     Marque un temps d'attente.
     Autorise le bot à afficher le résultat des macros.
    En d'autre terme, il devient verbeux, les utilisateurs normaux peuvent le faire agir / parler.
 
 
shutup | chute | tg
    Inverse de talk, il met le bot en silence.
    Quand le bot devient trop casse-pieds il est pratique de le mettre sous silence.
    Les utilisateurs non connus du bot ou bas niveau ne peuvent plus le faire agir / parler.
 


macro [ name ] [ N° ]
macro [ name ] [ N° ]
$name(N°)
$name(N°)
     name    Correspond au nom de la macro existante. Si elle n'existe pas, une erreur est renvoyé à l'utilisateur.
     name    Correspond au nom de la macro existante. Si elle n'existe pas, une erreur est renvoyée à l'utilisateur.
     N°      Est une numéro de macro existante, ou une suite.
     N°      Est un numéro de macro existante, ou une suite.
             ex1 $macro 1 8 353 renvera les macro N°1, 8 et 353. Si elle existe, sinon le bot ne réagit pas.
             ex1 $macro 1 8 353 renverra les macros N°1, 8 et 353. Si elles existent, sinon le bot ne réagit pas.
             ex2 $mirc(30)
             ex2 $mirc(30)
                 Cette est très pratique lorsque vous ajouter plusieurs macro dans une seul. Elle garanti l'emploi de la bonne macro et des ses version aléatoire.
                 Cette est très pratique lorsque vous ajouter plusieurs macro dans une seul. Elle garanti l'emploi de la bonne macro et non une version aléatoire.


del "macro name" [option]
del "macro name" [option]
del "macro name"
del "macro name"
     option:
     option:
         ALL pour effecer toutes les macros qui porte le même nom. (désactivé)
         ALL pour effacer toutes les macros qui portent le même nom. (désactivé)
         ID  N° de la macro. Il peut y avoir plusieurs macro portant le même nom, préciser l'ID
         ID  N° de la macro. Il peut y avoir plusieurs macro portant le même nom, préciser l'ID
             indique laquelle effacer.
             indique laquelle effacer.
         SANS OPTIONS
         SANS OPTIONS
         Efface la dernière macro qui a été utilisée ou ajoutée.
         Efface la dernière macro qui a été utilisée ou ajoutée.




</pre>
</pre>
</div/>
</html>
</html>


=== Conception ===
=== Conception ===
Ligne 111 : Ligne 160 :
Le fichier des macros est enregistré en XML. Ceci pour facilement la gestion.
Le fichier des macros est enregistré en XML. Ceci pour facilement la gestion.
Le format XML employé dans ce fichier est "fait maison", il est donc très succinct , Idem pour le Xparser qui est un mixte de syntaxe Perl et XML....
Le format XML employé dans ce fichier est "fait maison", il est donc très succinct , Idem pour le Xparser qui est un mixte de syntaxe Perl et XML....
=== Histoire ===
Pour l'histoire du nom, il date depuis l'arrivé du Pentium d'intel ou nous nous amusions, sur les BBS, aux jeux de mots du prochain nom de la marque.




=== Téléchargement ===
=== Téléchargement ===
Version 0.5.10 de 2008 {{software_depot}}Sextium-0.5.10.tar.bz2
Version 0.5.10 de 2008 {{software_depot}}Sextium-0.5.10.tar.bz2
Version actualisée <html><a href="https://sourceforge.net/projects/sextium/files/latest/download"><img alt="Download Sextium" src="https://a.fsdn.com/con/app/sf-download-button" width=276 height=48 srcset="https://a.fsdn.com/con/app/sf-download-button?button_size=2x 2x"></a></html>


<span class="warningbox">Si votre navigateur refuse de télécharger le paquet, veuillez utiliser un autre ou copié/collé lien dans une nouvelle page</span>
<span class="warningbox">Si votre navigateur refuse de télécharger le paquet, veuillez utiliser un autre ou copié/collé lien dans une nouvelle page</span>




[[Catégorie:Perl]]
 
[[index.php?title=Catégorie:Perl]]

Dernière version du 28 décembre 2024 à 12:18

Bot IRC écrit en Perl

Projet créé pour se divertir sur le chans IRC.

Ce bot est le successeur d'une version écrit en C qui est moins modulable que cette version en Perl.

Il est conçu pour se divertir lors des échanges sur IRC. Il permet d'afficher des macros sur un channel IRC.

Ces macros sont enregistrées par les utilisateurs sous forme d'actions, de messages ou commandes IRC. Il est possible de créer une macro avec plusieurs macros à la suite. Il garde aussi un historie de celles effacées.


Fonctionnalités

Il peut aussi effectuer d'autres petites tâches :

  • Statistique de l'activité des chans avec Pisg
  • Statistique des mots employés, nombre de fois...
  • Anagramme en utilisation du Dictionnaire de René Cougnenc
    • Dico encore présent dans les distribution à base de Debian
  • Gestion des droits à l'activer, des utilisateurs
    • Autorisation d'interagir
    • Blocage d'un utilisateur
  • Protection des utilisateurs définis contre les Kick, MODE -o, ban...

Manuel

Le fichier XML contient toutes les commandes du BOT et est utilisé sur IRC avec $help CMD.

Une version complète est disponible en XML à http://obelix.gyptis.org/help/index.xml. Sa mise en forme se fait avec XSL; Vous devrez donc avoir un navigateur compatible...

Une des commande ($invite) n'est pas visible dans l'aide en ligne ou dans le bot sur IRC et pour cause, elle est complexe à mettre en œuvre avec XML. Comme le BOT est abandonné, voici un aperçue :


add [user | say | action] ...

    say | action
        %n Nickname du demandeur
        %c channel courant
        %s nickname du destinataire

    Ajout de macro pour utiliser sur les channels.

        $add action testor est sur %s ; $say pas trop lourd %s ?

        $add action colere est en colère contre %s ; $k %s passe le bonjour à Poutine

        Utilisation: $colere nickname
            Réponse du Bot sur chan :
                13:12  * AsteriX est en coloère contre CIXX
                13:13 -!- CIXX was kicked from #Gyptis by AsteriX [passe le bonjour à Poutine]


    Ajout d'alias de macro.
        $add say NameAlias $testor
        voir l'aide en ligne pour les détails !


invite [A] || [B] || [C]
(A) $invite nick1 [nickN ...]
        Doit inviter les nick sur le channel où est reçu la demande d'invite

(B) $invite nick1 [nickN ...] #chan1 [#chanN...]
        Doit inviter les nicks sur les channels qui suivent les nicks : #chan1 #chanN...

(C) $invite #chan1 [#ChanN ...]
        Doit inviter l'utilisateur qui envoie la demande sur le chan courant
        il sera invité sur les #channels précisés : #chan1 #chanN....

 Si le nick du bot est précisé il est remplacé par celui du demandeur.
    Si l'invite est effectué en Privé (PRIVMSG) sans channel alors il refuse :)

level [nick]
    Renvoie le level d'un utilisateur sous forme numérique OU
    toutes les informations connues dans userlist de $from...
    Si pas d'argument, alors elle renvoie le level de
    l'utilisateur précédent. Dans tous les cas elle est lancée
    au début de &on_cmd() et donc elle possède toujours
    les bons réglages de l'utilisateur courant/demandeur...

info
    envoie les informations du bot et des channels qui l'occupe.
    Précise s'il est en mode talk ou pas.


talk | verbose | parle
    Autorise le bot à afficher le résultat des macros.
    En d'autre terme, il devient verbeux, les utilisateurs normaux peuvent le faire agir / parler.


shutup | chute | tg
    Inverse de talk, il met le bot en silence.
    Quand le bot devient trop casse-pieds il est pratique de le mettre sous silence.
    Les utilisateurs non connus du bot ou bas niveau ne peuvent plus le faire agir / parler.


macro [ name ] [ N° ]
$name(N°)
    name    Correspond au nom de la macro existante. Si elle n'existe pas, une erreur est renvoyée à l'utilisateur.
    N°      Est un numéro de macro existante, ou une suite.
            ex1 $macro 1 8 353 renverra les macros N°1, 8 et 353. Si elles existent, sinon le bot ne réagit pas.
            ex2 $mirc(30)
                Cette est très pratique lorsque vous ajouter plusieurs macro dans une seul. Elle garanti l'emploi de la bonne macro et non une version aléatoire.

del "macro name" [option]
del "macro name"
    option:
        ALL pour effacer toutes les macros qui portent le même nom. (désactivé)
        ID  N° de la macro. Il peut y avoir plusieurs macro portant le même nom, préciser l'ID
            indique laquelle effacer.
        SANS OPTIONS
        Efface la dernière macro qui a été utilisée ou ajoutée.





Conception

Le Bot est conçu en deux parties.

  1. Celle gérant la connexion au serveur IRC
    • Sextium.pm
      • conçu pour être lisible et donc modifiable rapidement
      • chaque fonction IRC est définie "sub on_irc_IRC_Valide", rendant plus simple l'analyse et l'ajout de fonction. Il ne référence pas tous les code IRC, ex : 331 du Topic envoyé par le serveur, les nouveaux codes : 396, ...
  2. La deuxième, les commandes de base séparées en 4 parties:
    • Mybot.pm
      • Contient &on_cmd qui gère les messages et notifications (PRIVMSG et NOTICE) provenant du serveur.
      • Utilisateurs
      • Commande de base : ban, adduser, ident, log
    • Channel.pm
      • Gestion des évènements des channels
    • Macro.pm
    • Dico.pm

Il évite de flooder le serveur avec sa gestion d'évènement (fonction &send_sleep2). Très pratique pour le "mode Guerre" :D, les commandes sont prioritaires par rapport aux autres. Un utilisateur pourrait tenter de flooder, faire ralentir, le Bot que ça ne gênerait pas pour défendre ses amis.

Un kick, un ban sont donc prioritaire par rapport à quelque chose de moins comme les macros...

Paramétrable

Un fichier "bot.cfg" permet de régler le bot à souhait. Il est géré partiellement avec Config::General et une de mes adaptations.

  • Serveurs à utiliser
  • Nick name du bot
  • Channel où se connecter
    • condition pour joindre un canal, nombre de fois, temps d'attente entre chaque connexion...
  • Log de fonctionne et mode débugge
  • Noms des fichiers : utilisateur, macro, niveaux choisis, stats...

Fichiers

Le fichier des macros est enregistré en XML. Ceci pour facilement la gestion. Le format XML employé dans ce fichier est "fait maison", il est donc très succinct , Idem pour le Xparser qui est un mixte de syntaxe Perl et XML....


Histoire

Pour l'histoire du nom, il date depuis l'arrivé du Pentium d'intel ou nous nous amusions, sur les BBS, aux jeux de mots du prochain nom de la marque.


Téléchargement

Version 0.5.10 de 2008 https://mans.gyptis.org/ce_que_je_fais/logiciels_softs/Sextium-0.5.10.tar.bz2

Version actualisée Download Sextium

Si votre navigateur refuse de télécharger le paquet, veuillez utiliser un autre ou copié/collé lien dans une nouvelle page


index.php?title=Catégorie:Perl


Debug data: