Projet pour copier-coller les messages entre l'irc #UrLab, le channel discord de l'urlab #👾│irc-urlab-general et le channel discord du Cercle Informatique #👾-irc-urlab
si dans le futur l'urlab possède d'autres chat (ptit matrix ouuuuuu ?) urbridge poura permettre de les lier également
discord et irc ne suportent pas les mêmes fonctionalitées, le bridge ne peut donc pas rendre les différents channels 100% identiques, actuellment le bridge supporte le sous ensemble de features commun a tous les channels liés. En soit, on pourrait supporter un peu plus, par exemple, on pourrait avoir un full suport des features discord entre le channel discord du CI et le channel discord de l'Urlab. Il faudrait alors déclarer les features supportées par chaque channel.
features notables:
le bridge formate diféremment les messages destinés à discord et à irc, coté discord on utilise marckdown, coté irc on et en plain text
le bridge gère les pings
réception:
coté discord, les ping sont reçut sous le format <@user_id> qui se retrouve transformé en @user_name
envoie:
coté discord les pings sont ensuite envoyés sous forme de vrai ping (<@user_id>) uniquement dans un channel parmis les channel accessibles pour l'utilisateur ciblé (pour éviter d'avoir des doubles pings pour les compte présent à la fois dans le discord urlab et le discord ci). Dans les autres channels, le ping apprait sous la forme @user_name en temps que simple texte (pas de notif, pas de surlignage)
ce système permet de ping un utilisateur présent dans un autre channel que celui ou le ping est émis. ça marche aussi pour irc, on peut ping un utilisateur discord depuis irc. ping un groupe/role, est toujours transmi sous forme de texte.
irc permet de join indémendament de la casse (/join #room = /join #RoOm)
MAIS, si le nom d'un chan irc contient des majuscules, les messages reçus venant de ce chan auront comme chan de provenance la version du nom avec les majuscules. pour toutes les comparaisons de nom de channel, le code fait un .toLower
déploiment: container podman lancé dans un service systemd (on a pas trouvé plus simple)
todo:
- utiliser des webhooks pour un meilleur rendu visuel coté discord (nom et pp de l'utilisateur sur discord)
- ajouter les /command du lechebot pour avoir l'auto completion de discord
- permetre de lier le compte discord au compte irc