Change the behaviour to watch for invitation
This commit is contained in:
@@ -19,18 +19,22 @@ class AutoInviteBotModule:
|
|||||||
return config
|
return config
|
||||||
|
|
||||||
async def on_new_event(self, event, state_events):
|
async def on_new_event(self, event, state_events):
|
||||||
if event.type == "m.room.message":
|
# Respond only to membership changes, not all messages
|
||||||
|
if event.type == "m.room.member":
|
||||||
room_id = event.room_id
|
room_id = event.room_id
|
||||||
logger.debug("Processing new message event in room: %s", room_id)
|
target_user_id = event.state_key
|
||||||
|
membership = event.content.get("membership")
|
||||||
|
|
||||||
# Fetch current state to check bot's membership
|
logger.debug("Membership event in room %s for user %s: %s", room_id, target_user_id, membership)
|
||||||
current_state = await self.api.get_room_state(room_id)
|
|
||||||
bot_member_event = current_state.get(("m.room.member", self.bot_user_id), {})
|
# Fetch the current state to check the bot's membership status
|
||||||
bot_membership = bot_member_event.get("content", {}).get("membership")
|
current_state = await self.api.get_room_state_by_type(room_id, "m.room.member", self.bot_user_id)
|
||||||
|
bot_membership = current_state.get("content", {}).get("membership", "leave")
|
||||||
|
|
||||||
# Log current membership state
|
# Log current membership state
|
||||||
logger.debug("Bot's current membership in %s: %s", room_id, bot_membership)
|
logger.debug("Bot's current membership status in %s: %s", room_id, bot_membership)
|
||||||
|
|
||||||
|
# Invite bot if it is not already a member
|
||||||
if bot_membership != "join":
|
if bot_membership != "join":
|
||||||
logger.info("Bot is not a member of the room. Sending invite...")
|
logger.info("Bot is not a member of the room. Sending invite...")
|
||||||
try:
|
try:
|
||||||
@@ -48,4 +52,4 @@ class AutoInviteBotModule:
|
|||||||
|
|
||||||
def setup(config, api):
|
def setup(config, api):
|
||||||
module_config = AutoInviteBotModule.parse_config(config)
|
module_config = AutoInviteBotModule.parse_config(config)
|
||||||
return AutoInviteBotModule(module_config, api)
|
return AutoInviteBotModule(module_config, api)
|
||||||
|
Reference in New Issue
Block a user