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/