UrBridge

UrBridge makes the connection between the chats of urlab (irc, urlab discord, CI discord)

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

Lien vers le github urbridge

fonctionalités suportées

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:

  • modifications: avec discord, un message peut être modifié après avoir été posté, les modifications sont ignorées par le bridge (on peut donc techniquement faire figurer une information uniquement dans un channel en postant cette info dans une modification)
  • réactions: les emotes en réaction aux messages ne sont pas prises en compte
  • réponses: un message posté sous discord en temps que réponse à un autre message est traité par le bridge comme un message normal
  • sondages, web hook et autres features similaires de discord ne sont pas prises en compte non plus (elle sont répercutées comme un message vide)

formatage

le bridge formate diféremment les messages destinés à discord et à irc, coté discord on utilise marckdown, coté irc on et en plain text

ping

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.

casse du salon irc

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

Infos importantes :

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

100%
Dernière modification : il y a 5 jours, 18 heures
Mainteneur : g.lagaffe
Participant : g.lagaffe
Je veux participer !



Tâches

Commentaires