Join invites by bot owners even if JOIN_ON_INVITE is False

This commit is contained in:
Ville Ranki 2019-12-26 00:21:32 +02:00
parent 687194a0ff
commit 99089683af
1 changed files with 6 additions and 2 deletions

8
bot.py
View File

@ -117,6 +117,9 @@ class Bot:
traceback.print_exc(file=sys.stderr) traceback.print_exc(file=sys.stderr)
async def invite_cb(self, room, event): async def invite_cb(self, room, event):
if not self.join_on_invite or self.is_owner(event):
return
for attempt in range(3): for attempt in range(3):
result = await self.client.join(room.room_id) result = await self.client.join(room.room_id)
if type(result) == JoinError: if type(result) == JoinError:
@ -179,7 +182,7 @@ class Bot:
def init(self): def init(self):
self.client = AsyncClient(os.environ['MATRIX_SERVER'], os.environ['MATRIX_USER']) self.client = AsyncClient(os.environ['MATRIX_SERVER'], os.environ['MATRIX_USER'])
self.client.access_token = os.getenv('MATRIX_ACCESS_TOKEN') self.client.access_token = os.getenv('MATRIX_ACCESS_TOKEN')
self.join_on_invite = os.getenv('JOIN_ON_INVITE') self.join_on_invite = len(os.getenv('JOIN_ON_INVITE')) > 0
self.owners = os.environ['BOT_OWNERS'].split(',') self.owners = os.environ['BOT_OWNERS'].split(',')
self.get_modules() self.get_modules()
@ -214,9 +217,10 @@ class Bot:
if self.client.logged_in: if self.client.logged_in:
self.load_settings(self.get_account_data()) self.load_settings(self.get_account_data())
self.client.add_event_callback(self.message_cb, RoomMessageText) self.client.add_event_callback(self.message_cb, RoomMessageText)
self.client.add_event_callback(self.invite_cb, (InviteEvent,))
if self.join_on_invite: if self.join_on_invite:
print('Note: Bot will join rooms if invited') print('Note: Bot will join rooms if invited')
self.client.add_event_callback(self.invite_cb, (InviteEvent,))
print('Bot running as', self.client.user, ', owners', self.owners) print('Bot running as', self.client.user, ', owners', self.owners)
await self.client.sync_forever(timeout=30000) await self.client.sync_forever(timeout=30000)
else: else: