Rss

Q3MB, Quake3 Messages Broker

Note : le projet a été déménagé depuis qmb/qmbd vers q3mb/qmbd.

QMB, pour Quake3 Messages Broker, est un petit daemon qui accepte des connexions TCP d’un côté et utilise un bot IRC pour transmettre les messages sur un canal.

Le code du serveur Quake3 doit bien sûr être modifié pour pouvoir contacter QMB, on verra cette partie plus tard ; en attendant, le code de qmbd est disponible sur gitorious sous les termes de la licence ISC.

La version 0.1 de qmbd représente un ensemble de classes Python et un programme principal, un fichier de configuration d’exemple est aussi fourni. La fonctionnalité des fortunes nécessite aussi la présence d’un ou plusieurs fichiers de type « fortunes » (avec le symbole « % » comme séparateur d’enregistrements).

Basiquement, le code met en place un daemon qui se charge de récupérer la configuration puis de lancer un thread avec un client IRC et un autre avec un serveur TCP, ce dernier créera un thread pour chacune des connexions à traiter.

Le bot IRC rejoins le canal configuré et attends. Quand quelqu’un rejoint le canal, il le salut et quand un joueur se connecte, se disconnecte ou change de map sur un serveur Q3, le bot le dit sur le canal. Et, pour le fnu, quand on l’interpelle sur le canal, le bot sort une fortune ^^

En résumé, c’est pour l’instant assez basique mais ça représente un projet sympa pour se mettre à Python 🙂

Merci à ceux qui partagent leurs savoirs, voici les crédits, tels qu’inscrits dans le fichier README :

Code is based on various useful infos found here and there;
the Fortunes class is based on comment by Peter Otten found at
http://bytes.com/topic/python/answers/29976-esrs-fortune-pl-redone-python-request-critique
QmbIrcBot is based on the testbot.py example provided with irclib
QmbListener and QmbListenerRequestHandler are based on the SocketServer documentation:
http://docs.python.org/library/socketserver.html
QmbDaemon is based on code by Sander Marechal found at
http://www.jejik.com/articles/2007/02/a_simple_unix_linux_daemon_in_python/

Comments are closed.