-
Notifications
You must be signed in to change notification settings - Fork 624
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature Request: DMing users across platform #191
Comments
Sorry, I'm a newb to your project, @42wim but it's pretty promising for my use case and so I had to reach out. I got it up and running between XMPP and Rocket.Chat in a jiff. But it only seems to work between channels, and doesn't support direct messages. However, I take it from this FR and that it closes several other trackers, that direct message bridging is now supported... is that so? If so, I don't see how to enable that. Is there a special gateway channel format to use? |
no, this FR is still open, other requests are just closed to avoid duplication |
is there any plan to add support for direct messages? Actually I am planning to use matterbridge with my personal account credentials, as I do not have access to server settings, so I'd like to have also direct messages in my XMPP-world. |
I've been thinking about how to support this, but I don't really see an option to have this directly in matterbridge, it's too cumbersome to chat between users as shown in a possible example here: As in the example of @NikkyAI e.g. matterbridge is in slack as a bot called matterslack and also is running in irc server as matterbot. So if you want to DM from yourself (user1 on irc) to user2 on slack.
This isn't very user-friendly and will be very confusing when DM multiple people. So maybe a solution for this is setting up an out-of-band chat (preferably P2P and E2EE), so the example will be: So if you want to DM from yourself (user1 on irc) to user2 on slack:
User1/User2 chat with each other on the specific URL. Other ideas/remarks/suggestions on how you would see DM's between two users are welcome. |
For the out of band chat we could piggyback off public IRC servers? We could let users select their "provider" of choice. The ToS of freenode / rizon etc would need to be checked. GitHub Pages can of course be used for any website hosting — a fork of kiwiirc with changes specific to matterbridge. I've always considered the following quote to be a necessary caveat for this feature:
With that in mind, the idea I've had in the past is to do something like:
Alternatively:
Fwiw my IRC bridge has PM support and it's really bad! I'll edit this later with info about that if I find anything useful to share. |
with any kind of state like setting a target user one has to keep in mind that this has to easily work across matterbridge restarts, having to add complexion by parsing user settings at startup from some file or sqlite database would suck and potentially add more ways to crash on config change i like the idea of using something like a fork of kiwiirc to act as webinterface for matterbridge.. as a fallback for platforms where implementing PM delivery or interaction is too annoying |
Some protocols support some kind of virtual direct messaging (on xmpp this system is called transports) i believe other protocols have similar features. For the start we could just develope a a way to send dms via those systems which schould be relatively easy and possibly later think of a way to connect the other protocols. |
Do we have a list of platforms that do support PM bridging? Is it just XMPP? @Humorhenker, for XMPP, I've found this info:
Do you have any other useful links? The wiki page suggests that you need to transfer credentials, which may be undesirable |
Oooooo i like that kiwiirc tactic, but maybe it could be even simpler -- just drop patcon@slack and anon2@irc into urls like this: So someone messages a matterbot with ( |
I've just realised that if we went the way of IRC, we don't even need to use irc channels (e.g. @patcon's IRC channels can still be used for group PMs. |
Good point! A room still feels most straightforward imho, as we don't need to tell people to type some techno-genius-looking command in order to start. (kiwiIRC can't auto-run an arbitrary command on join, like desktop clients can, so can't auto-init the DM session) But maybe I'm suffering from a failure of imagination :) What would you imagine the best-case interaction for IRC private message to be @qaisjp? I'm thinking the best we could do is, if message from patcon@slack to anon2@irc:
So just one more step from the room way, but also chance of confusion if someone doesn't realize that the other person won't see the messages they type before arrival. Of course, the same issue exists in the |
Hm, i dont want to be the one pessimistic here. But that still would be a pretty userunfriendly way afterall. Especially the fact that there will be no offline messages with that method and this whole process of initialization would turn off many users in my opinion.
and the other user would recieve them directly from the bot with a note of the sender. |
We would fork KiwiIRC so our client automatically sets up a direct message channel. Ideally we'd completely hide the fact that IRC is being used — lock it down a little. |
@Humorhenker agreed, unfortunately
Originally liked this approach too. The catch of that is that being in more than one conversation is quite confusing to user. All messages would come in as DM's from matterbridge-bot and be intermixed, right? (Or am I misunderstanding?) Technically doable though.
@qaisjp Ah, ok, wasn't expecting that scope. I guess I'm lacking a sense of what scope there's willingness to accomodate (e.g. setting up a mandatory supporting platform) re: IRC private message approach. seems quite onerous, especially since it doesn't seem to offer a significantly better experience than simply using an obfuscated public channel. IRC PM's seeming require either (1) build/host a custom kiwiIRC client, or (2) expect user to run some IRC commands on join. |
i kind of do not get.. if we plan between using a existing irc backend.. and hosting one.. why not implement the message routing between clients on the already running program? (matterbridge) |
Nothing would be hosted. Existing services would be piggybacked, so it's privacy preserving (the bridge doesn't see PMs).
Do you mean the first example here #191 (comment) and here #191 (comment)?
|
I dont get how that would offer more privacy. The bridge hoster sees every message with bridged channels nevertheless. You will need to trust the bridge hoster. |
Thanks for the useful feedback! I like the idea of using kiwiirc instead of developing something from scratch ;-) @Humorhenker wrt to privacy, matterbridge now only does "public/group" channels, as in data meant to be at lease some what public. Private/direct messages are something else. But that's probably too ambitious, so maybe we can start with the low-hanging fruit for now. Grouping the suggestions together we end up with something like this:
Wrt to that irc server: using a public irc-server probably opens up the "private" messages to more people then just the matterbridge owner (as @Humorhenker correctly notices). So maybe we can add a built-in irc server to matterbridge so users can choose to use a public/private or built-in irc server. |
after doing a quick search https://github.com/fimad/ggircd/ seems to be a good fit. Small and easy to implement. Afterall there will be the problem of no offline messages when we deside to use irc. That is a huge downpoint for me. |
TBH if I wanted to PM someone on another platform, I'd just switch platform. If we forked kiwiirc (instead of just using it) we could make it so that messages are saved in |
An idea I have is to add a command that when sent in a DM to the bot, would create a private channel/room for the DM. |
Perhaps it would be possible to take a similar approach to the one that Mio does (m.io)? Their approach seems to be to create a new "app" for every direct message, their video gives a good explanation on the subject: https://www.youtube.com/watch?v=nNxF_svA59Y |
https://github.com/ehForwarderBot/ehForwarderBot Maybe we can learn from thid project |
I don't think there's any "seamless" way to do this, not as long as you have one chat (you + the bot account) acting as a proxy for many chats (you + your friends). There's basically three solutions to this: fake accounts on demand, mode switching, or addressing every message. fake accounts on demandthe bridge creates fake accounts for every user, and you just message the appropriate "puppet" to DM that user.
mode switchingyou have one bot DM, and you issue a command to switch who you're DM-ing, like this:
address every messageyou have one bot DM, and you prefix every message with the user you're talking to, like this:
personally I think addressing every message is the way to go. maybe you could even give short nicknames to the people you dm the most often, like
|
Trying to write a bot using the api i came across the limitations of "just" sending messages to the gateways, so a way to reply to users available to users and bots would be very useful
I am not enterily sure how to adress a specific user and a specific platform using eg. irc or slack in a intuitive way..
but sending a DM to the bridge bot starting with
{username}@{account}
would provide enough information to search for eg.[email protected]
each platform would search for nicknames before username and optionally insert the string needed to reply eg:
[email protected]
as nick/user nameusig this system a bot can send respond to any user on any (DM-capable) platform, i hope
PS: actually just having the bots part implemented would be plenty features for me at the moment
The text was updated successfully, but these errors were encountered: