NewSyndrome
Version : 1.6.8
Documenation du kernel
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[Bot IRC]
Projet: NewSyndrome
Documentation: Le kernel de NewSyndrome
Auteur: Thaeron
Version: 1.6.8 (correspond au kernel de NewSyndrome)
Licence: GPL
Copyright (C) 2004 - 2010 Thaeron

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
USA
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Ce document a pour but d'expliquer comment lancer le bot NewSyndrome ainsi que la configuration propre au kernel.


1 . Comment lancer le bot
Sous linux/*bsd et tous les unix-like il ne faut pas lancer directement le binaire NewSyndrome (à moins que vous ayez copié le fichier libtd_bdd.so dans votre répertoire de lib et que vous ayez lancé ldconfig ensuite).
Pour le lancer : ./NewSyndrome.sh
Sous windows il suffit de lancer NewSyndrome.exe

2 . Les options qu'on peut passer au lancement
--conf nom_du_fichier_de_config (voir partie 3)
--log nom_du_fichier_de_log (voir partie 4)
--version ou -v (pour connaitre la version du bot)
--daemon ou -d (pour lancer le bot en demon)
--user ou -u (pour changer l'user du bot s'il est lancé en root)
--group ou -g (pour changer le group du bot s'il est lancé en root)
--pidfile fichier_pid ou -p fichier_pid (écrit le pid du bot dans fichier_pid, le fichier sera supprimé lors de l'arrêt du bot)


3 . Où mettre le fichier de configuration
Il y'a pour cela plusieurs possibilités :
Lors du lancement le bot va tout d'abord regarder dans le répertoire du binaire si le fichier NewSyndrome.conf est présent, si celui-ci est présent il va alors être traité.
Dans le cas contraire le bot va chercher dans ~/.newsyndrome/NewSyndrome.conf

On peut aussi indiquer un fichier de configuration spécifique ce qui est pratique si on désire lancer plusieurs fois le bot (sur des serveurs différents par exemple) sans recopier tous les binaires. Pour cela lancer le bot avec l'option :
--conf nom_du_fichier_de_config

4 . Le log du bot
Le log est par défaut écrit dans le répertoire du user qui lance le bot, dans tmp si ce n'est pas possible, mais on peut spécifier un path et un nom de fichier via l'option au lancement --log nom_du_fichier_de_log
Celui-ci contient les informations relatives au chargement des modules, à la connexion au serveur, aux erreurs relatives aux modules, etc.

5 . La configuration
Le fichier de configuration est utilisé à la fois par le kernel et par les modules, ce qui est plus pratique que d'avoir 36 fichiers de configurations.
Ici ne sera détaillée que la configuration du kernel, pour les modules il faudra regarder leur documentation propre.

Important : le caractère % met en commentaire jusqu'à la fin de la ligne.

% Adresse du serveur (host ou ip)
server = irc.sagwin.org
% Le port du serveur
port = 6667
% Le pseudo utilisé par le bot (il n'y pas de possibilité de définir un pseudo alternatif)
nick = Syndrome
% L'ident du bot
ident = NoOne
% Le nom du bot qui apparaît dans le whois
realname = New Syndrome @ local

% Si vous avez une ip dédiée vous pouvez la configurer pour que le bot l'utilise
myip = 82.138.68.187

% Le délai entre la dernière requête reçue du serveur et la déconnexion/reconnexion (time out).
reco_delay = 360

% Si vous avez compilé avec le support du SSL pour la connexion à l'IRCd et que vous voulez l'activer
use_ssl = yes

% Les salons que le bot va automatiquement rejoindre après la connexion (mettre autant de fois le mot clef qu'il ya de
% salons à rejoindre).
channel = #programmation channel = #syndrome channel = #youpie

% Si le pseudo du bot est enregistré sur le nickserv vous pouvez configurer le pass pour qu'il s'authentifie à chaque connexion.
nickserv = youpieahah

% Si le serveur utilise une clef à la connexion comme Voila, vous pouvez la configurer comme cela.
server_pass = la_clef_du_serveur

% Le bot gère les conversions de charset, surtout utiles si vous êtes en UTF8 sur le salon car les modules ne supportent que l'ISO.
% Note : La conversion se fait dans les 2 sens, les messages du salon seront aussi convertis mais vers charset_from
% charset des messages à envoyer (les modules sont en iso).
charset_from = ISO8859-15
% charset utilisé sur le salon
charset_to = UTF-8

% LE (pas les) caractère utilisé par le bot pour les commandes par exemple si vous mettez ! les commandes seront !commande (!op par exemple).
commande = !

% Le bot possède certaines protections, si un module prend trop de temps il sera déchargé par le kernel.
antifreeze_default = yes
% temps (en seconde) dont dispose le kernel pour exécuter sa tâche ensuite il sera déchargé.
antifreeze_delay = 10

% path du repertoire qui va contenir toutes les bases de données du bot, mêmes celles des modules.
% le path est relatif au path du fichier de configuration.
bdd = bases/

% Chargement des modules : module = fichier_du_module (mettre autant de fois le mot clef qu'il y'a de modules).
% répertoire où sont les modules (relatif au path du binaire NewSyndrome)
module_path=modules/
% Cependant vous pouvez mettre un chemin absolue pour indiquer un module n'importe où sur votre disque dur.
% Il n'est pas obligatoire d'indiquer l'extension du fichier.
% exemple :
% Ce module est quasiment obligatoire sinon vous ne pourrez pas charger les autres modules à la volée.
module = admin
% Ce module est quasiment obligatoire si vous ne voulez pas voir le bot partir en "ping timeout" sans cesse.
module = pong

module = ctcp
% important : les modules peuvent être inter-dépendants, par exemple le module kick va nécessiter le module auth. Lisez la
% documentation de chaque module pour savoir s'ils nécessitent un ou plusieurs autres modules.
Sagwin
Miroir SVN [03/07/2011]
Le serveur hébergeant le dépôt SVN est down en ce moment. Heureusement un miroir est en place permettant de checkout : svn co http://svn.sagwin.org/newsyndrome/trunk/ newsyndrome

N'hésitez pas à nous soumettre vos idées, suggestions, ou vos souhaits via les tickets (quand le serveur sera de nouveau up) ou par mail ou sur l'IRC car la période de développement instensif devrait bientôt commencer.
1.6.8 RELEASED [07/11/2010]
Voici une release intermédiaire afin d'éprouver les changements qu'il y a eu dans le bot et de mettre à jour les modules web (dico, urbandico, tele, telesoir etc). Rendez-vous section téléchargement pour la récupèrer.
Maintenant NewSyndrome supporte la connexion à l'IRCd en IPv6 (option --enable-ipv6 de configure), ainsi que le SSL sans vérifications (option --enable-ssl de configure). Beaucoup d'améliorations (consommation de ressources CPU diminuée de 97%), corrections de bugs et en plus de nouveaux modules sont présents dont bugmenot, nioutaik, mod_update (pour mettre à jour les autres modules), reversemd5 et bot_get_ip. Je vous invite à jeter un oeil sur le changelog et sur la documentation des modules.

En cas de problèmes : ticket sur TRAC | IRC | mail.
Si vous utilisez NewSyndrome ça serait sympa de vous ajouter sur la NSList.
NS logo redesigned [27/10/2010]
Vous avez sûrement remarqué que le logo et la bannière de NewSyndrome ont changé (contrairement au reste du site qui est toujours aussi moche) ! Eh bien on doit ces merveilles à lastrodamo qui a eu la gentillesse et le talent de créer ces robots 3D pour NewSyndrome. Allez faire un petit tour sur son site qui contient d'autres de ses créations : http://www.3dminfographie.com/
<joke>Pour chaque visite sur son site un module de plus sera codé.</joke>

Encore merci lastrodamo !
NS is not dead [21/10/2010]
Non NewSyndrome n'est pas mort ! Bien que la release 1.7 ait plus d'un an de retard, les évolutions et les modifications se font régulièrement.
J'invite tous les utilisateurs à passer à la version courante des sources du dépôt SVN. Toutes les modifications apportées dans le trunk sont stables et fonctionnelles. Vous pouvez télécharger les snapshots ici.

Depuis plus d'un mois une grosse amélioration du noyau du bot est testée, elle permet de diminuer de plus de 97% les ressources système consommées !!
Le système de mise à jour des modules directement via l'IRC est en cours de test et pour l'instant fonctionne parfaitement.
Je remercie Blopdak qui a travaillé sur un bind permettant de charger des modules écrits en Java dans NS.

Si vous codez des modules n'hésitez pas à me les envoyer et n'hésitez pas à me contacter (par IRC, TRAC ou mail) si vous avez une question ou un problème.
1.6.6 RELEASED [15/03/2009]
Le bug est corrigé ! Ce genre de mésaventure ne devrait plus se reproduire puisque nous avons prévu de coder des modules de non-régression et d'auto test (pour la version 1.7).

Allez section téléchargement pour la récupèrer.

Si vous trouvez des bugs (ou des failles) n'hésitez pas à laisser un ticket sur le TRAC, ou m'envoyer un mail ou via l'IRC.

Copyleft Thaeron 2005 - 2008 - Site sous Licence GPL - Sagwin