aboutsummaryrefslogtreecommitdiff
path: root/discord
diff options
context:
space:
mode:
authorJosh B <[email protected]>2019-11-20 14:06:09 +1000
committerRapptz <[email protected]>2019-11-26 05:16:53 -0500
commit7df5effbb7f2e65a02e4d353ff7332a18da9d87f (patch)
treef2b21f6d2d9aaac898d1756034e85484f47e9232 /discord
parentFix more deprecation warnings (diff)
downloaddiscord.py-7df5effbb7f2e65a02e4d353ff7332a18da9d87f.tar.xz
discord.py-7df5effbb7f2e65a02e4d353ff7332a18da9d87f.zip
Add new audit log entry types. Fix issue with unknown entry types
Diffstat (limited to 'discord')
-rw-r--r--discord/audit_logs.py19
-rw-r--r--discord/enums.py72
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