matrix-org / matrix-org/matrix-spec
Appserviceless/homeserverless ghosts/puppets (IRCv3 RELAYMSG)
Nobody has claimed this yet.
- Dominant language
- HTML
- Stars
- 330
- Forks
- 150
- Avg merge
- 2h 21m
- Merged PRs (30d)
- 3
Description
Suggestion
Ergo IRCd (previously known as Oragono) has implemented IRCv3 draft RELAYMSG (https://github.com/ircv3/ircv3-specifications/pull/417) which allows relaybots (think of bridges without 1:1 PM ability) to send messages from other protocols like they were native to IRC. In Matrix this is possible with appservices/bridges, but that requires running a homeserver which may be too much of treshold from running a simple bot (that doesn't even require a domain).
I would like Matrix to offer something similar and I hope that in the future matrix-appservice-irc could recognise it, other bridges without PM ability would use it too and thus send relaymsg'd Matrix messages to IRC as relaymsg's thus causing less load and not taking connection slots benefiting both bridge operators and IRC networks that don't want users of other networks into theirs.
Example of RELAYMSG on IRC
2021-148 18:28:05 EEST <M1kaela/T> /ping
2021-148 18:28:05 EEST <@R-66Y> pong
Here M1kaela is a Telegram user, / is the separator that the IRC network uses for RELAYMSG (and forbids from real nicknames to combat abuse), R-66Y is a IRC bot (with no idea what is Telegram) and T4 would be the relaybot (matterbridge), but as it's using RELAYMSG it's not visible (to plain sight). The other combat towards abuse is that to use RELAYMSG, the sending bot must have op status on the channel (or be configured as oper in IRCd config).
This is stateless so M1kaela does not appear in IRC user/names list and the nickname cannot be autocompeted, but it's still pretter and prettier than having to see <T4> <M1kaela/Telegram> /ping which practically no bot would recognise on IRC side.
Ergo IRCd integrated documentation on the command
2021-148 18:33:41 EEST -- RELAYMSG :RELAYMSG <channel> <spoofed nick> :<message>
2021-148 18:33:41 EEST -- RELAYMSG :
2021-148 18:33:41 EEST -- RELAYMSG :This command lets channel operators relay messages to their
2021-148 18:33:41 EEST -- RELAYMSG :channel from other messaging systems using relay bots. The
2021-148 18:33:41 EEST -- RELAYMSG :spoofed nickname MUST contain a forwardslash.
2021-148 18:33:41 EEST -- RELAYMSG :
2021-148 18:33:41 EEST -- RELAYMSG :For example:
2021-148 18:33:41 EEST -- RELAYMSG : RELAYMSG #ircv3 Mallory/D :Welp, we linked Discord...
2021-148 18:33:41 EEST -- RELAYMSG :End of /HELPOP
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the linked IRCv3 RELAYMSG draft and Ergo IRCd's command documentation, then review how matrix-appservice-irc currently handles bridged messages. The issue does not name Matrix specification files or tests; done would require an agreed protocol design and clearly specified compatibility behavior for relaybots and bridges.
Written by the indexing model from the issue text.
Assessment
- Domain
- backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100