Add option to send welcome message upon acceptance

This commit is contained in:
Panoramic 2024-08-17 19:50:53 +03:00
parent 912169657a
commit 337ab947ca
3 changed files with 25 additions and 1 deletions

View File

@ -52,6 +52,13 @@ vetting:
# The bot must be in these rooms and have the invite permission
additional_rooms: []
# Messages to send to the vetting room (optional)
# You can use the following variables:
# {mention} = https://matrix.to/#/@user:exmaple.com
message_on:
# Message to send once the invite has been confirmed
invited: "{mention}, you're in! 😎"
# Logging setup
logging:
# Logging level

View File

@ -205,7 +205,7 @@ class Callbacks:
if event.key == "confirm":
# Check which user the reaction is for (if any)
self.store.cursor.execute(
"SELECT mxid FROM vetting WHERE decision_event_id = ?",
"SELECT mxid, room_id FROM vetting WHERE decision_event_id = ?",
(event.reacts_to,),
)
row = self.store.cursor.fetchone()
@ -213,6 +213,7 @@ class Callbacks:
return
user_id = row[0]
user_room_id = row[1]
# Invite user to main space
logger.info("Inviting new user (%s) to the main space.", user_id)
@ -242,6 +243,18 @@ class Callbacks:
else:
logger.info("Invited %s to %s", user_id, room_id)
# Send message to vetting room notifying of the invite
if self.config.message_on_invited is not None:
invited_message = self.config.message_on_invited.format(
mention=f"https://matrix.to/#/{user_id}"
)
await send_text_to_room(
self.client,
user_room_id,
invited_message,
notice=False,
)
async def unknown(self, room: MatrixRoom, event: UnknownEvent) -> None:
"""Callback for when an event with a type that is unknown to matrix-nio is received.

View File

@ -142,6 +142,10 @@ class Config:
self._get_cfg(["vetting", "additional_rooms"], required=False, default=[])
)
self.message_on_invited: str = self._get_cfg(
["message_on", "invited"], required=False, default=None
)
def _get_cfg(
self,
path: List[str],