diff options
Diffstat (limited to 'discord')
| -rw-r--r-- | discord/audit_logs.py | 19 | ||||
| -rw-r--r-- | discord/enums.py | 72 |
2 files changed, 63 insertions, 28 deletions
diff --git a/discord/audit_logs.py b/discord/audit_logs.py index b997e910..4c950eb9 100644 --- a/discord/audit_logs.py +++ b/discord/audit_logs.py @@ -227,17 +227,32 @@ class AuditLogEntry: self.reason = data.get('reason') self.extra = data.get('options') - if self.extra: + if isinstance(self.action, enums.AuditLogAction) and self.extra: if self.action is enums.AuditLogAction.member_prune: # member prune has two keys with useful information self.extra = type('_AuditLogProxy', (), {k: int(v) for k, v in self.extra.items()})() - elif self.action is enums.AuditLogAction.message_delete: + elif self.action is enums.AuditLogAction.member_move or self.action is enums.AuditLogAction.message_delete: channel_id = int(self.extra['channel_id']) elems = { 'count': int(self.extra['count']), 'channel': self.guild.get_channel(channel_id) or Object(id=channel_id) } self.extra = type('_AuditLogProxy', (), elems)() + elif self.action is enums.AuditLogAction.member_disconnect: + # The member disconnect action has a dict with some information + elems = { + 'count': int(self.extra['count']), + } + self.extra = type('_AuditLogProxy', (), elems)() + elif self.action.name.endswith('pin'): + # the pin actions have a dict with some information + channel_id = int(self.extra['channel_id']) + message_id = int(self.extra['message_id']) + elems = { + 'channel': self.guild.get_channel(channel_id) or Object(id=channel_id), + 'message_id': message_id + } + self.extra = type('_AuditLogProxy', (), elems)() elif self.action.name.startswith('overwrite_'): # the overwrite_ actions have a dict with some information instance_id = int(self.extra['id']) diff --git a/discord/enums.py b/discord/enums.py index ac85b6b7..8938ace1 100644 --- a/discord/enums.py +++ b/discord/enums.py @@ -298,6 +298,9 @@ class AuditLogAction(Enum): unban = 23 member_update = 24 member_role_update = 25 + member_move = 26 + member_disconnect = 27 + bot_add = 28 role_create = 30 role_update = 31 role_delete = 32 @@ -311,36 +314,51 @@ class AuditLogAction(Enum): emoji_update = 61 emoji_delete = 62 message_delete = 72 + message_bulk_delete = 73 + message_pin = 74 + message_unpin = 75 + integration_create = 80 + integration_update = 81 + integration_delete = 82 @property def category(self): lookup = { - AuditLogAction.guild_update: AuditLogActionCategory.update, - AuditLogAction.channel_create: AuditLogActionCategory.create, - AuditLogAction.channel_update: AuditLogActionCategory.update, - AuditLogAction.channel_delete: AuditLogActionCategory.delete, - AuditLogAction.overwrite_create: AuditLogActionCategory.create, - AuditLogAction.overwrite_update: AuditLogActionCategory.update, - AuditLogAction.overwrite_delete: AuditLogActionCategory.delete, - AuditLogAction.kick: None, - AuditLogAction.member_prune: None, - AuditLogAction.ban: None, - AuditLogAction.unban: None, - AuditLogAction.member_update: AuditLogActionCategory.update, - AuditLogAction.member_role_update: AuditLogActionCategory.update, - AuditLogAction.role_create: AuditLogActionCategory.create, - AuditLogAction.role_update: AuditLogActionCategory.update, - AuditLogAction.role_delete: AuditLogActionCategory.delete, - AuditLogAction.invite_create: AuditLogActionCategory.create, - AuditLogAction.invite_update: AuditLogActionCategory.update, - AuditLogAction.invite_delete: AuditLogActionCategory.delete, - AuditLogAction.webhook_create: AuditLogActionCategory.create, - AuditLogAction.webhook_update: AuditLogActionCategory.update, - AuditLogAction.webhook_delete: AuditLogActionCategory.delete, - AuditLogAction.emoji_create: AuditLogActionCategory.create, - AuditLogAction.emoji_update: AuditLogActionCategory.update, - AuditLogAction.emoji_delete: AuditLogActionCategory.delete, - AuditLogAction.message_delete: AuditLogActionCategory.delete, + AuditLogAction.guild_update: AuditLogActionCategory.update, + AuditLogAction.channel_create: AuditLogActionCategory.create, + AuditLogAction.channel_update: AuditLogActionCategory.update, + AuditLogAction.channel_delete: AuditLogActionCategory.delete, + AuditLogAction.overwrite_create: AuditLogActionCategory.create, + AuditLogAction.overwrite_update: AuditLogActionCategory.update, + AuditLogAction.overwrite_delete: AuditLogActionCategory.delete, + AuditLogAction.kick: None, + AuditLogAction.member_prune: None, + AuditLogAction.ban: None, + AuditLogAction.unban: None, + AuditLogAction.member_update: AuditLogActionCategory.update, + AuditLogAction.member_role_update: AuditLogActionCategory.update, + AuditLogAction.member_move: None, + AuditLogAction.member_disconnect: None, + AuditLogAction.bot_add: None, + AuditLogAction.role_create: AuditLogActionCategory.create, + AuditLogAction.role_update: AuditLogActionCategory.update, + AuditLogAction.role_delete: AuditLogActionCategory.delete, + AuditLogAction.invite_create: AuditLogActionCategory.create, + AuditLogAction.invite_update: AuditLogActionCategory.update, + AuditLogAction.invite_delete: AuditLogActionCategory.delete, + AuditLogAction.webhook_create: AuditLogActionCategory.create, + AuditLogAction.webhook_update: AuditLogActionCategory.update, + AuditLogAction.webhook_delete: AuditLogActionCategory.delete, + AuditLogAction.emoji_create: AuditLogActionCategory.create, + AuditLogAction.emoji_update: AuditLogActionCategory.update, + AuditLogAction.emoji_delete: AuditLogActionCategory.delete, + AuditLogAction.message_delete: AuditLogActionCategory.delete, + AuditLogAction.message_bulk_delete: AuditLogActionCategory.delete, + AuditLogAction.message_pin: None, + AuditLogAction.message_unpin: None, + AuditLogAction.integration_create: AuditLogActionCategory.create, + AuditLogAction.integration_update: AuditLogActionCategoty.update, + AuditLogAction.integration_delete: AuditLogActionCategory.delete, } return lookup[self] @@ -365,6 +383,8 @@ class AuditLogAction(Enum): return 'emoji' elif v < 80: return 'message' + elif v < 90: + return 'integration' class UserFlags(Enum): staff = 1 |