diff --git a/geeksbot/exts/user_events.py b/geeksbot/exts/user_events.py index 363cc41..e3d0712 100644 --- a/geeksbot/exts/user_events.py +++ b/geeksbot/exts/user_events.py @@ -25,6 +25,37 @@ class UserEvents(commands.Cog): json=data) user_logger.info(f'User Update Response:\n{await resp.json()}') + @commands.Cog.listener() + async def on_member_join(self, member): + data = { + 'id': member.id, + 'username': member.username, + 'discriminator': member.discriminator, + 'guilds': [f'{self.bot.api_base}/guilds/{member.guild.id}/'], + 'animated': member.is_avatar_animated(), + 'avatar': member.avatar or str(member.default_avatar), + 'bot': member.bot + } + resp = await self.bot.aio_session.post(f'{self.bot.api_base}/users/', + headers=self.bot.auth_header, + json=data) + msg = await resp.json() + if resp.status == 400 and 'user with this id already exists.' \ + in msg.get('id', []): + data = { + 'id': member.id, + 'guilds': [f'{self.bot.api_base}/guilds/{member.guild.id}/'] + } + resp = await self.bot.aio_session.put(f'{self.bot.api_base}/users/{member.id}/', + headers=self.bot.auth_header, + json=data) + msg = await resp.json() + user_logger.info(f'User Joined: {resp}') + + @commands.Cog.listener() + async def on_member_remove(self, member): + pass + def setup(bot): bot.add_cog(UserEvents(bot))