matrix-org / matrix-appservice-discord

A bridge between Matrix and Discord.
Apache License 2.0
804 stars 152 forks source link

Forum channels bridging #849

Open erkinalp opened 2 years ago

erkinalp commented 2 years ago

Is your feature request related to a problem? Please describe. Discord unveiled forum channels, which are channels that cannot have any top level messages posted, instead, they can only posted messages within a thread.

Describe the solution you'd like Forum channels should be bridges as spaces, and threads within it as chat rooms with knock_restricted join rule. Auto-archival by Discord should not be bridged, however, manual archival should be bridged.

Describe alternatives you've considered Threads-as-relations, but not useful in this use case

Miepee commented 2 years ago

Forum channels should be bridges as spaces, and threads within it as chat rooms

Why? A forum channel is pretty much just a normal text channel which has locked permissions to not have any top level permissions (it's nicely visible if you still have an older (mobile) client which doesn't support forums yet but support threads) It'd make much more sense IMO to just bridge a forum channel to a matrix-text-channel, and make every new forum-thread a new matrix-thread in that text channel.

erkinalp commented 2 years ago

@Miepee: Organisation wise they are really parent channels (just like spaces are rooms of rooms), UX wise too, except that it has a few moderation aids. Forum overview: resim Forum with a "post" (child channel) open: resim

Why? A forum channel is pretty much just a normal text channel which has locked permissions

Wrong. They are type-locked to not have any top level messages. (parent channel is typed GUILD_FORUM and child channels GUILD_PUBLIC_THREAD) They can only have new thread channels created in it. Actually a stricter distinction than m.space and generic text chat rooms.

Miepee commented 2 years ago

Considering most people already use spaces (and subspaces) as a representation of guild/channel categories, I feel like this can get a bit confusing. For example, it's not uncommon for bigger guilds to have 10 posts a day. Most (if not all) clients which implement Space exploration, do it by showing all children, which would mean you'd have a very cluttered Space very fast. And because most threads on Discord are used "temporarily" (not have any conversation after a few weeks), it'd not only be cluttered, but also with a ton of inactive rooms too.

Doomsdayrs commented 1 year ago

I feel like the best way is to create matrix threads in a room, and have the app auto create the threads matrix<->discord.

1 forum thread on discord <-> 1 thread in a room on matrix

Each message in matrix channel creates a thread on discord, and the thread is started on the matrix side with a message of "this conversation is now a thread" and alerts the user to the thread.

This preserves history of threads, and keeps it organized.

jackmawer commented 1 year ago

it makes sense to me as has been suggested above to just bridge forum channels as a regular matrix channel with threads. making a "top level post" in matrix can be bridged as just making a new forum post. the only complication I see is deciding what to treat as the thread title and what to treat as the message body from the matrix side

Doomsdayrs commented 1 year ago

the only complication I see is deciding what to treat as the thread title and what to treat as the message body from the matrix side

First line is title, the rest is body

Greendogo commented 1 year ago

Has there been any progress on this discussion elsewhere besides here in the last several months?

BlaiZephyr commented 2 months ago

given it's been almost a year, i would also know if there has been any discussion/progress on that topic

Miepee commented 2 months ago

From what I'm aware, this bridge seems unmaintained currently (I have barely, if at all, seen any activities from maintainers in a whiiile)

TomCasavant commented 2 months ago

There's a similar issue filed at the more actively maintained Discord bridge https://github.com/mautrix/discord/issues/101