async def on_member_update(self, before: Member, after: Member): try: pass except Exception as e: f = models.Error(g=models.DBGuild.objects.get(g_id=after.guild.id), cmd_string="on member update", error_type=f'{type(e)}', error=f'{e}', traceback=traceback.format_exc()) f.save() await self.notify_error_bot_owner(f, after.guild)
async def on_member_ban(self, d_g: Guild, member: Member): try: pass except Exception as e: f = models.Error(g=get_guild(d_g), cmd_string="on member ban error", error_type=f'{type(e)}', error=f'{e}', traceback=traceback.format_exc()) f.save() await self.notify_error_bot_owner(f, d_g)
async def dummy_task(self): for d_g in self.bot.guilds: d_g: Guild try: pass #Some function can be called here for every guild except Exception as e: d_g = self.bot.guilds[0] f = models.Error(g=get_guild(d_g), cmd_string=f"Dummy task error {d_g.name}", error_type=f'{type(e)}', error=f'{e}', traceback=traceback.format_exc()) f.save() await self.notify_error_bot_owner(f, d_g)
async def on_raw_reaction_add(self, payload: RawReactionActionEvent): if payload is None: return d_g: Guild = self.bot.get_guild(payload.guild_id) if d_g is None: return try: user: Member = await d_g.fetch_member(payload.user_id) channel: TextChannel = d_g.get_channel(payload.channel_id) try: message: Message = await channel.fetch_message( payload.message_id) except (Forbidden, NotFound): return emoji = payload.emoji try: reaction: Reaction = [ i for i in message.reactions if i.emoji.id == emoji.id ][0] except IndexError: return except AttributeError: try: reaction: Reaction = [ i for i in message.reactions if i.emoji == emoji.name ][0] except IndexError: return #now everything is prepared except Exception as e: f = models.Error(g=models.DBGuild.objects.get(g_id=d_g.id), cmd_string="on raw reaction error", error_type=f'{type(e)}', error=f'{e}', traceback=traceback.format_exc()) f.save() await self.notify_error_bot_owner(f, d_g)