Différences entre les versions de « Sextium »
m (→Manuel : ajout de talk / shutup) |
|||
(6 versions intermédiaires par le même 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 22 : | Ligne 24 : | ||
=== 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... | 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... | ||
Voici un extrait partiel : | |||
<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 utilisé 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 sur chan u Bot : | |||
13:12 * AsteriX est en coloère contre CIXX | |||
13:13 -!- CIXX was kicked from #Gyptis by AsteriX [passe le bonjour à Poutine] | |||
Utilisation: $testor nickname | |||
Ajout d'alias de macro. | |||
$add say NameAlias $testor | |||
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 envoit 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 je refuse :) | |||
level [nick] | |||
Renvoit le level d'un utilisateur sous forme numérique OU | |||
toutes les informations connus dans userlist de $from... | |||
Si pas d'argument, alors elle renvoit 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... | |||
info | |||
envoit les information 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 fa | |||
ire agir / parler. | |||
shutup | chute | tg | |||
Inverse de talk, il met le bot en silence. | |||
Les utilisateurs non connus du bot ou bas niveau ne peuvent plus faire agir | |||
/ parler. | |||
sleep time | |||
Marque un temps d'attente. | |||
macro [ name ] [ N° ] | |||
$name(N°) | |||
name Correspond au nom de la macro existante. Si elle n'existe pas, une erreur est renvoyé à l'utilisateur. | |||
N° Est une 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. | |||
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. | |||
del "macro name" [option] | |||
del "macro name" | |||
option: | |||
ALL pour effecer toutes les macros qui porte 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 58 : | Ligne 154 : | ||
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]] | [[Catégorie:Perl]] |
Version actuelle datée du 4 octobre 2022 à 21:43
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
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...
Voici un extrait partiel :
add [user | say | action] ... say | action %n Nickname du demandeur %c channel courant %s nickname du destinataire Ajout de macro pour utilisé 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 sur chan u Bot : 13:12 * AsteriX est en coloère contre CIXX 13:13 -!- CIXX was kicked from #Gyptis by AsteriX [passe le bonjour à Poutine] Utilisation: $testor nickname Ajout d'alias de macro. $add say NameAlias $testor 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 envoit 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 je refuse :) level [nick] Renvoit le level d'un utilisateur sous forme numérique OU toutes les informations connus dans userlist de $from... Si pas d'argument, alors elle renvoit 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... info envoit les information 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 fa ire agir / parler. shutup | chute | tg Inverse de talk, il met le bot en silence. Les utilisateurs non connus du bot ou bas niveau ne peuvent plus faire agir / parler. sleep time Marque un temps d'attente. macro [ name ] [ N° ] $name(N°) name Correspond au nom de la macro existante. Si elle n'existe pas, une erreur est renvoyé à l'utilisateur. N° Est une 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. 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. del "macro name" [option] del "macro name" option: ALL pour effecer toutes les macros qui porte 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