diff --git a/kickbot/bot.py b/kickbot/bot.py index 562ac2b..d1e9eb8 100644 --- a/kickbot/bot.py +++ b/kickbot/bot.py @@ -150,6 +150,28 @@ class KickBot(Plugin): #need to somehow regularly fetch and update the list of room ids that are associated with a given space #to track events within so that we are actually only paying attention to those rooms + ## loop through each room and report people who are "guests" (in the room, but not members of the space) + @activity.subcommand("guests", help="generate a list of members in this room who are not members of the parent space") + async def get_guestlist(self, evt: MessageEvent) -> None: + if evt.sender in self.config["admins"]: + space_members_obj = await self.client.get_joined_members(self.config["master_room"]) + space_members_list = space_members_obj.keys() + room_members_obj = await self.client.get_joined_members(evt.room_id) + room_members_list = room_members_obj.keys() + + # find the non-space members in the room member list + try: + guest_list = set(room_members_list) - set(space_members_list) + if len(guest_list) == 0: + guest_list = ["None"] + await evt.reply(f"Guests in this room are:
\ + {'
'.join(guest_list)}", allow_html=True) + except Exception as e: + await evt.respond(f"something went wrong: {e}") + else: + await evt.reply("lol you don't have permission to set that") + + @classmethod def get_db_upgrade_table(cls) -> None: return upgrade_table diff --git a/maubot.yaml b/maubot.yaml index 69c2907..d852859 100644 --- a/maubot.yaml +++ b/maubot.yaml @@ -1,6 +1,6 @@ maubot: 0.1.0 id: org.jobmachine.kickbot -version: 0.0.5 +version: 0.0.6 modules: - kickbot main_class: KickBot