Skip to content

Add Mass Mentions to the backend #394

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

Merged
merged 66 commits into from
Apr 5, 2025
Merged

Conversation

IAmTomahawkx
Copy link
Member

@IAmTomahawkx IAmTomahawkx commented Jan 31, 2025

This adds support for Mass Mentions to the backend.
This allows for the mentioning of roles, @ everyone, and @ online.

Currently the following permission bits are used (subject to change):
MentionEveryone = 1 << 37 (@ everyone / @ online )
MentionRoles = 1 << 38

The following message flags have been added for bot use:
MentionsEveryone = 1 << 2
MentionsOnline = 1 << 3
Note that the two are mutually exclusive, and MentionsEveryone takes precedence over MentionsOnline.
Additionally, the SuppressNotifications flag actually works now.

This PR involves updating the mongodb driver to V3.1.
This PR involves updating authifier to V1.0.10.

The format is as follows:

  • @ everyone (without the space) - pings everyone that can see the channel
  • @ online (without the space) - pings everyone who can see the channel and is online
  • <%roleid> - pings everyone with the role that can see the channel.

Please make sure to check the following tasks before opening and submitting a PR

  • I understand and have followed the contribution guide
  • I have tested my changes locally and they are working as intended

Copy link
Member

@insertish insertish left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would probably be worth writing some tests.

@github-project-automation github-project-automation bot moved this from 🔨 Testing to 🛑 Changes requested in Pull Request Overview Mar 31, 2025
@insertish insertish moved this from 🛑 Changes requested to 🆕 Untriaged in Pull Request Overview Apr 2, 2025
@IAmTomahawkx IAmTomahawkx moved this from 🆕 Untriaged to 🏗 In Progress in Pull Request Overview Apr 3, 2025
@insertish insertish moved this from 🏗 In Progress to 🆕 Untriaged in Pull Request Overview Apr 3, 2025
@IAmTomahawkx IAmTomahawkx requested a review from insertish April 3, 2025 07:16
@IAmTomahawkx IAmTomahawkx moved this from 🆕 Untriaged to 💬 Awaiting review in Pull Request Overview Apr 3, 2025
@IAmTomahawkx IAmTomahawkx marked this pull request as ready for review April 3, 2025 07:17
@insertish insertish moved this from 💬 Awaiting review to 🆕 Untriaged in Pull Request Overview Apr 3, 2025
@Felitendo
Copy link

Could you also add @here as an alias to @online?

@IAmTomahawkx
Copy link
Member Author

This was discussed and rejected. Clients may choose to display a hint when someone types @here, but the API itself will not consider it.

@IAmTomahawkx IAmTomahawkx moved this from 🆕 Untriaged to 💬 Awaiting review in Pull Request Overview Apr 3, 2025
@insertish insertish moved this from 💬 Awaiting review to 🆕 Untriaged in Pull Request Overview Apr 3, 2025
@IAmTomahawkx IAmTomahawkx moved this from 🆕 Untriaged to 💬 Awaiting review in Pull Request Overview Apr 3, 2025
Copy link
Member

@insertish insertish left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@someone

@github-project-automation github-project-automation bot moved this from 💬 Awaiting review to 💡 Ready to merge in Pull Request Overview Apr 4, 2025
@IAmTomahawkx IAmTomahawkx merged commit 2540860 into main Apr 5, 2025
4 checks passed
@github-project-automation github-project-automation bot moved this from 💡 Ready to merge to ✅ Merged in Pull Request Overview Apr 5, 2025
@github-project-automation github-project-automation bot moved this from Pending Other to ✅ Done in Revolt Project Apr 5, 2025
Zomatree pushed a commit that referenced this pull request Apr 29, 2025
* feat: create base of push daemon

Signed-off-by: IAmTomahawkx <[email protected]>

* Add outbound senders

* Make web_push send to rabbit instead (temp stuff)

* feat: stability and friend requests

* make vapid fr stuff not suck

* swap naming of queue

* move pushd into daemons folder

* fix cargo file for move into daemons folder

* feat: probably working fcm push notifs

* comment out fcm webpush stuff since the config keys dont exist

* fix fcm, name queues according to their prod status and configure routing keys

* add pushd to docker

* mix: Remove old code, add stuff to pushd

* fix: lockfile

* feat: update rocket to 5.0.1

* fix: fix queues and ack bugs

* Move rabbit messsage processing into ack queue

* chore: update readme

* chore: optimizations for ack database hits

* pushd flowchart

* misc: update flowchart

* exit dependancy hell

* add rocket_impl flag to authifier

* make the tests file of delta actually compile

* fix: don't silence every push message

* fix: don't silence all messages

* add debug logging for sending data to rabbit from message events

* validate mentions at a server membership level

* put back that import that was actually important

* minor fix to lockfile

* update delta authifier

* feat: proper permissions for push notifications

* add unit test for mention sanitization

* remove local file dependancy on authifier

* update ports to proper defaults

* fixTM the node bindings

* Theoretically configure docker releases for pushd

Signed-off-by: IAmTomahawkx <[email protected]>

* declare exchange in pushd and delta

* fix createbuckets script

Signed-off-by: IAmTomahawkx <[email protected]>

* fix: reference db implementation

Signed-off-by: IAmTomahawkx <[email protected]>

* fix: remove finally redundant code

Signed-off-by: IAmTomahawkx <[email protected]>

* fix: changes

Signed-off-by: IAmTomahawkx <[email protected]>

* fix: other changes

Signed-off-by: IAmTomahawkx <[email protected]>

* fix: make channel name return result

Signed-off-by: IAmTomahawkx <[email protected]>

* Add role mention parsing

* feat: update to mongo 3.1, add member generator.

* integrate mass mentions into pushd

* patch redis-rs with updated versions

* feat: chunk role mentions

* move permission bits to 37/38 to avoid livekit conflict

* change role mention format to <%id>

* fix the lockfile from merge

* fix: PR change requests

* feat: add tests

* fix: i am a dumbass

* fix: tests, again

---------

Signed-off-by: IAmTomahawkx <[email protected]>
@IAmTomahawkx IAmTomahawkx deleted the feat/mention-everything branch June 7, 2025 03:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Status: ✅ Done
Development

Successfully merging this pull request may close these issues.

3 participants