« Sextium » : différence entre les versions
→Manuel : Récupération de l'aide en ligne! ajout du lien, correction ortho, suppress de truc présent l'aide en ligne |
|||
(8 versions intermédiaires par un autre utilisateur non affichées) | |||
Ligne 2 : | Ligne 2 : | ||
=== Projet créé pour se divertir sur le chans IRC. === | === Projet créé pour se divertir sur le chans IRC. === | ||
Ce bot est le successeur d'une version écrit en C moins modulable que cette version en Perl. | 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. | 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. | 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> | |||
<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] | |||
(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. | |||
</pre> | |||
</div/> | |||
</html> | |||
=== Conception === | === Conception === | ||
Ligne 30 : | Ligne 132 : | ||
#** conçu pour être lisible et donc modifiable rapidement | #** 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<span> </span>: 331 du Topic envoyé par le serveur, les nouveaux codes<span> </span>: 396, ... | #** 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<span> </span>: 331 du Topic envoyé par le serveur, les nouveaux codes<span> </span>: 396, ... | ||
# | # La deuxième, les commandes de base séparées en 4 parties: | ||
#* Mybot.pm | #* Mybot.pm | ||
#**Contient &on_cmd qui gère les messages et notifications (PRIVMSG et NOTICE) provenant du serveur. | #**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 | #* Channel.pm | ||
#** Gestion des évènements des channels | |||
#* Macro.pm | #* Macro.pm | ||
#* Dico.pm | #* Dico.pm | ||
Il évite de flooder le serveur avec sa gestion d'évènement (fonction &send_sleep2) | 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 === | === Paramétrable === | ||
Un fichier "bot.cfg" permet de régler bot à souhait. Il est géré partiellement avec [https://metacpan.org/pod/Config::General Config::General] et une de mes adaptations. | Un fichier "bot.cfg" permet de régler le bot à souhait. Il est géré partiellement avec [https://metacpan.org/pod/Config::General Config::General] et une de mes adaptations. | ||
* Serveurs à utiliser | * Serveurs à utiliser | ||
Ligne 48 : | Ligne 156 : | ||
* Log de fonctionne et mode débugge | * Log de fonctionne et mode débugge | ||
* Noms des fichiers<span> </span>: utilisateur, macro, niveaux choisis, stats... | * Noms des fichiers<span> </span>: 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 === | === 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.
- 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, ...
- Sextium.pm
- 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
- Mybot.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
Si votre navigateur refuse de télécharger le paquet, veuillez utiliser un autre ou copié/collé lien dans une nouvelle page