Add option to invite new members to additional rooms
This commit is contained in:
parent
82266ff3de
commit
171bd7e52a
|
@ -48,6 +48,9 @@ vetting:
|
||||||
max_no_votes: 0
|
max_no_votes: 0
|
||||||
# Minimum power level to automatically invite users from vetting room
|
# Minimum power level to automatically invite users from vetting room
|
||||||
power_level_invite: 10
|
power_level_invite: 10
|
||||||
|
# List of additional rooms to invite vetted members to
|
||||||
|
# The bot must be in these rooms and have the invite permission
|
||||||
|
additional_rooms: []
|
||||||
|
|
||||||
# Logging setup
|
# Logging setup
|
||||||
logging:
|
logging:
|
||||||
|
|
|
@ -212,16 +212,15 @@ class Callbacks:
|
||||||
if row is None:
|
if row is None:
|
||||||
return
|
return
|
||||||
|
|
||||||
# Invite the user
|
|
||||||
user_id = row[0]
|
user_id = row[0]
|
||||||
|
|
||||||
|
# Invite user to main space
|
||||||
logger.info("Inviting new user (%s) to the main space.", user_id)
|
logger.info("Inviting new user (%s) to the main space.", user_id)
|
||||||
|
|
||||||
resp = await self.client.room_invite(self.config.main_space_id, user_id)
|
resp = await self.client.room_invite(self.config.main_space_id, user_id)
|
||||||
if isinstance(resp, RoomInviteError):
|
if isinstance(resp, RoomInviteError):
|
||||||
text = f"Failed inviting user: {resp}"
|
text = f"Failed inviting user: {resp}"
|
||||||
logger.error(text, stack_info=True)
|
logger.error(text, stack_info=True)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
text = f"Invited {user_id}."
|
text = f"Invited {user_id}."
|
||||||
logger.info(text)
|
logger.info(text)
|
||||||
|
@ -229,6 +228,20 @@ class Callbacks:
|
||||||
self.client, self.config.vetting_room_id, text, notice=True
|
self.client, self.config.vetting_room_id, text, notice=True
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Invite user to additional rooms
|
||||||
|
for room_id in self.config.additional_rooms:
|
||||||
|
resp = await self.client.room_invite(room_id, user_id)
|
||||||
|
if isinstance(resp, RoomInviteError):
|
||||||
|
logger.error(
|
||||||
|
"Couldn't invite %s to %s: %s",
|
||||||
|
user_id,
|
||||||
|
room_id,
|
||||||
|
resp,
|
||||||
|
stack_info=True,
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
logger.info("Invited %s to %s", user_id, room_id)
|
||||||
|
|
||||||
async def unknown(self, room: MatrixRoom, event: UnknownEvent) -> None:
|
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.
|
"""Callback for when an event with a type that is unknown to matrix-nio is received.
|
||||||
|
|
||||||
|
|
|
@ -138,6 +138,10 @@ class Config:
|
||||||
self._get_cfg(["vetting", "power_level_invite"], required=True)
|
self._get_cfg(["vetting", "power_level_invite"], required=True)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
self.additional_rooms: tuple[str] = tuple(
|
||||||
|
self._get_cfg(["vetting", "additional_rooms"], required=False, default=[])
|
||||||
|
)
|
||||||
|
|
||||||
def _get_cfg(
|
def _get_cfg(
|
||||||
self,
|
self,
|
||||||
path: List[str],
|
path: List[str],
|
||||||
|
|
Loading…
Reference in New Issue