Module Url_Mysql v0.2
But :
Permettre le stockage d'url ainsi que de leur description dans une base de données de type Mysql. L'ajout, la suppression, la consultation se se fait via l'irc par des commandes
Logiciels nécessaires :
Les programmes suivants doivent être installés et correctement configurer sur votre poste :
- New Syndrome v1.4
- Mysql
Installation :
Après avoir installer et compiler le module au sein de
NewSyndrome, ainsi qu'installer Mysql et tester son fonctionnement. Il ne reste plus qu'à créer la/les table(s) qui va/vont recevoir les données des urls ainsi qu'un acces à cette/ces table(s). Suivant la configuration de Mysql sur votre serveur. Il se peut qu'il faille créer une base de données au sein de votre serveur, dans mes explication je pars du principe qu'il existe une base de donnée bot sur le serveur réservé au bot irc.
Voici le script de création de la table qui est a exécuter autant de fois qu'il y a de table :
CREATE TABLE IF NOT EXISTS urls # Seul le nom de la table peut être modifié (ici : urls)
(
id_url INTEGER AUTO_INCREMENT PRIMARY KEY,
date_url DATE NOT NULL,
nick_url VARCHAR(32) NOT NULL,
link_url VARCHAR(200) NOT NULL,
desc_url VARCHAR(400)
)
ENGINE=INNODB;
Voici l'ordre SQL pour ajouter un utilisateur ayant des droits sur la table précédament créée (il faut être root ou avoir le droit de créer des utilisateurs pour pouvoir l'utiliser) :
GRANT SELECT, INSERT, UPDATE, DELETE # l'utilisateur à le droit de lecture, de suppression et de modification
ON bot.urls # sur la table urls appartenant à la base de données bot
TO '
NewSyndrome'@'%' # le login de l'utilisateur est
NewSyndrome et il est autorisé à se connecter de n'importe quelle ip (%)
IDENTIFIED BY '
NewSyndrome'; # le password est
NewSyndrome
Cette ordre SQL est a exéctuer autant de fois qu'il y a de table (pour les utilisateurs avancés adaptez-le à votre configuration).
Configuration :
Pour configurer ce module, il y'a six paramètres à configurer via le fichier de configuration du bot :
- "login_url" : Login de connexion à la base de données Mysql (défaut :
NewSyndrome).
- "pwd_url" : Password de connexion à la base de données Mysq (défaut :
NewSyndrome).
- "db_url" : Base de données contenant la table (défaut :
NewSyndrome).
- "table_url" : Plusieurs cas possibles:
- Une table pour tous les channels, il suffit de mettre le nom de la table => table_urls
- Une table par channels => table_url=#chanel1:table_url_1,#chanel1:table_url_2,etc...
- Une table pour le channel xxxx et tous les autres channels sur la même table => table_url=#xxxx:table_url_1,*:table_url_2
Ne pas mettre d'espace entre les , ou : et toujours mettre le channel * (celui représentant tous les channels restants) en fin de ligne de configuration. Par défaut toutes les quotes de tous les channels vont dans la table url_bot.
- "ip_url" : Ip du serveur Mysql (défaut : 127.0.0.1).
- "port_url" : Port du serveur Mysql (défaut : 3306).
Exemple :
=> login_url=
NewSyndrome
ou
=> table_url=url => tous les channels sont envoyés dans la table url.
ou
=> table_url=#programmation:url_programmation,#syndrome:url_syndrome => chaque channel a sa table, si le bot est présent sur un channel qui n'est pas configurer le bot affichera un message d'erreur.
ou
=> table_url=#programmation:url_programmation,*:url_others => Tout ce qui vient de programmation dans la table url_programmation et tout ce qui vient des autres channels dans la table url_others.
Ces paramètres sont à configurer suivant les paramètres que vous avez mis lors de la création de la table/utilisateur.
Utilistation :
A chaque url stockée dans la base de données correspond au moins un identifiant (un nombre que l'on appellera id ou id_url).
Ce module répond à 5 commandes irc "publiques", sur le channel où chaque commande est précédée du caractère de commande du bot :
- addurl : Ajout d'url dans la base de données
=> Utilisation : addurl url description
- infourl : Affiche des informations sur une url donnée
=> Utilisation : infourl id_url
- url : Affiche l'url correspondant à l'id communiqué par l'utilisateur
=> Utilisation : url id_url
- rmurl : Supprime l'url correspondant à l'id communiqué par l'utilisateur. Seul les administrateurs et les opérateurs peuvent supprimer des urls, attention un opérateur d'un channel x peut supprimer les urls ajoutées par quelqu'un du channel y.
=> Utilisation : rmurl id_url
- searchurl : Permet d'effectuer une recherche dans la base de données.
=> Utilisation : searchurl mot_rechercher : Affiche les 3 premieres urls ayant le mot recherché dans l'url.
ou
=> Utilisation : searchurl desc mot_rechercher : Affiche les 3 premieres urls ayant le mot recherché dans leur description.
Exemple de construction des mots : pierre, p%e, pier%.
FAQ :
1) J'ai le messages qui s'affiche sur la console de New Syndrome :
"Erreur : Requête incorrecte : XXXXXXXXXXX"
=> Vérifier que la table sur laquelle la requête essaye de travailler existe.
=> Verifier que la requête et correcte, si ce n'est pas le cas, envoyez-la moi par mail.
2) J'ai le messages qui s'affiche sur la console de New Syndrome :
"Erreur : Impossible de se connecter à la bd mysql, vérifiez vos paramètres :
" * host : localhost"
" * port : 3306"
" * db : bot"
" * table : urls"
" * login :
NewSyndrome "
" * password : xxxxx "
=> Vérifier que le serveur Mysql est en fonctionnement sur le bon port.
=> Vérifier que le login/password permet bien de se connecter au serveur Mysql.
=> Verifier que la base de données et la table existent.
3) J'ai le messages qui s'affiche sur la console de New Syndrome :
"Erreur : la requête : %s à supprimer plusieurs engregistrements (pseudo : toto)"
=> Un problème s'est produit dans la base de données, plusieurs URL avaient le même identifiant et on été supprimés.
Si ce problème se reproduit plusieurs fois, il faut contrôler le contenu de la base de données et chercher des doublons sur les identifiants.
4) J'ai le messages qui s'affiche sur la console de New Syndrome :
"Erreur : Pas de table mysql pour les urls de #yyyy"
=> Votre configuration n'est pas correcte (le paramètre table_url) il manque la configuration pour le channel #yyyy.
5) J'ai trouvé un bug dans ce module, que dois-je faire?
=> Contactez-moi par mail en me donnant le plus d'information possible (version de New Syndrome, du système d'exploitation, de Mysql, du compilateur et de la libmysql).
6) J'ai une idée pour améliorer ce module, qui dois-je contacter?
=> Moi ;-), par mail de préference.