Bon, depuis quelques jours ou semaines (ou quelque chose comme ça), j'ai une espèce d'idée de projet un peu bizarre. En même temps, j'ai souvent des idées de projets un peu bizarres, je crois, que je mets pas toujours en pratique, enfin parfois si mais pas toujours. Alors du coup je me dis que j'aurais qu'à l'écrire ici, comme ça si jamais ça tombe dans un trou de mon cerveau et que je le fais pas, au moins ça fait une trace.

L'idée c'est qu'il y a peu de clients MUC corrects, genre aussi aboutis que les clients IRC, par exemple. Pis aussi, les gens ils ont l'habitude de leur client IRC, par exemple irssi, mIRC, etc.. Du coup, je me dis que ça serait marrant d'avoir un serveur IRC qui se baserait en arrière-plan sur un serveur MUC. Une autre manière de le dire c'est que ce serait un client MUC contrôlable via le protocole IRC. Par exemple tu te connectes au serveur IRC en question, tu fais un /list, et pouf tu as la liste des chans du serveur MUC. L'instant d'après, tu rentres sur un des chans du serveur IRC, et paf, en vrai tu es sur un salon MUC. Comme tout client Jabber qui se respecte, le serveur IRC utiliserait son propre JID, et se connecterait au réseau Jabber avec une ressource distincte pour chaque client IRC.

Voilà en gros l'idée, donc au final c'est un peu le symétrique de la passerelle IRC telle que celle présente dans ejabberd.

Après ça pose quelques problèmes "conceptuels", du coup faut que je réfléchisse encore. Par exemple, sur IRC, la notion de nick est générale sur tout le serveur, alors que sur Jabber on peut prendre un nick différent pour chaque chan. C'est un problème un peu chiant, hein, faut bien l'avouer. Une solution de contournement serait de présenter, comme nick IRC, non pas le nick sur le MUC (après tout, c'est un parallèle possible, mais ce n'est pas le seul), mais le JID complet, genre nomdusalon@serveur/nick, ou encore le JID réel de la personne si le MUC l'expose. Du coup ça permettrait de "désambigüiser" le nick, mais par contre c'est moins joli, et le problème aussi c'est que les RFC relatives à IRC n'autorisent pas le @ et le / dans les nicks. Après, c'est pas comme si le respect des RFC était l'aspect le plus marquant du monde IRC, donc faut voir si l'impact réel serait si problématique. Une autre idée serait tout bêtement de n'autoriser qu'un seul chan par connexion, mais par contre d'autoriser plein de connexions pour chaque client, pour se faire pardonner. Ça résoudrait en partie le problème, vu que le nick serait bien sûr différent pour chaque connexion. Par contre ça empêcherait de choisir le même nick pour plusieurs chans, donc au final c'est le problème contraire, du coup c'est pas super malin mon garçon, mais merci d'avoir essayé.

Enfin voilà, y'a évidemment d'autres problèmes, telle que les caractères autorisés ici et là, à commencer par les nicks IRC qui sont trouze-mille fois plus restrictifs que sur Jabber (toi aussi tu aimes ton espace dans ton nick IRC). Après, y'a moyen de faire un mapping entre le nick Jabber et un pseudo-nick IRC forgé en remplaçant les espaces par des underscores, les lettres accentuées sans l'accent, etc. (en gérant bien sûr l'unicité, quitte à rajouter un underscore à la fin si le nick est déjà pris), et de présenter aux gens côté IRC juste le pseudo-nick (idem pour les noms de chans zarb), m'enfin c'est moins drôle, quoi. Les problèmes de charset seraient aussi pas très marrants à gérer, vu que le protocole IRC ne spécifie juste pas de charset (la RFC dit, presque texto, "y'a pas de charset ici, on envoie 8 bits et ça fait 1 octet, faites pas chier avec vos conneries, déjà c'est compatible avec vos terminaux ASCII alors vous plaignez pas.").

Pour le langage, en python ça peut être pas mal, et en plus il existe un mini serveur IRC nommé miniircd, donc ça fait déjà une super bonne base pour démarrer.

Bref au final ça peut être un projet rigolo, avec des fonctionnalités bien sûr limitées en tant que serveur IRC, et clairement aussi en tant que client MUC (mais bon ça c'est normal, si on choisit d'utiliser un client IRC on s'attend pas à avoir toutes les power-features des MUC Jabber), m'enfin ça permettrait déjà de dire « hé, toi, viens sur mon chan #truc, il est sur le serveur IRC "blablabla"», et paf la personne vient et capte même pas que c'est du Jabber, haha, ouah l'autre, trop bête, mouarf, lol. Ahem. Bref. Ça a l'air bien, nan ?