mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-12-04 22:42:21 +00:00
Implement AutoMod
This commit is contained in:
@@ -71,6 +71,7 @@ if TYPE_CHECKING:
|
||||
from .types import (
|
||||
appinfo,
|
||||
audit_log,
|
||||
automod,
|
||||
channel,
|
||||
command,
|
||||
emoji,
|
||||
@@ -2039,6 +2040,63 @@ class HTTPClient:
|
||||
)
|
||||
return self.request(r, json=payload)
|
||||
|
||||
def get_auto_moderation_rules(self, guild_id: Snowflake) -> Response[List[automod.AutoModerationRule]]:
|
||||
return self.request(Route('GET', '/guilds/{guild_id}/auto-moderation/rules', guild_id=guild_id))
|
||||
|
||||
def get_auto_moderation_rule(self, guild_id: Snowflake, rule_id: Snowflake) -> Response[automod.AutoModerationRule]:
|
||||
return self.request(
|
||||
Route('GET', '/guilds/{guild_id}/auto-moderation/rules/{rule_id}', guild_id=guild_id, rule_id=rule_id)
|
||||
)
|
||||
|
||||
def create_auto_moderation_rule(
|
||||
self, guild_id: Snowflake, *, reason: Optional[str], **payload: Any
|
||||
) -> Response[automod.AutoModerationRule]:
|
||||
valid_keys = (
|
||||
'name',
|
||||
'event_type',
|
||||
'trigger_type',
|
||||
'trigger_metadata',
|
||||
'actions',
|
||||
'enabled',
|
||||
'exempt_roles',
|
||||
'exempt_channels',
|
||||
)
|
||||
|
||||
payload = {k: v for k, v in payload.items() if k in valid_keys and v is not None}
|
||||
|
||||
return self.request(
|
||||
Route('POST', '/guilds/{guild_id}/auto-moderation/rules', guild_id=guild_id), json=payload, reason=reason
|
||||
)
|
||||
|
||||
def edit_auto_moderation_rule(
|
||||
self, guild_id: Snowflake, rule_id: Snowflake, *, reason: Optional[str], **payload: Any
|
||||
) -> Response[automod.AutoModerationRule]:
|
||||
valid_keys = (
|
||||
'name',
|
||||
'event_type',
|
||||
'trigger_metadata',
|
||||
'actions',
|
||||
'enabled',
|
||||
'exempt_roles',
|
||||
'exempt_channels',
|
||||
)
|
||||
|
||||
payload = {k: v for k, v in payload.items() if k in valid_keys and v is not None}
|
||||
|
||||
return self.request(
|
||||
Route('PATCH', '/guilds/{guild_id}/auto-moderation/rules/{rule_id}', guild_id=guild_id, rule_id=rule_id),
|
||||
json=payload,
|
||||
reason=reason,
|
||||
)
|
||||
|
||||
def delete_auto_moderation_rule(
|
||||
self, guild_id: Snowflake, rule_id: Snowflake, *, reason: Optional[str]
|
||||
) -> Response[None]:
|
||||
return self.request(
|
||||
Route('DELETE', '/guilds/{guild_id}/auto-moderation/rules/{rule_id}', guild_id=guild_id, rule_id=rule_id),
|
||||
reason=reason,
|
||||
)
|
||||
|
||||
# Misc
|
||||
|
||||
def application_info(self) -> Response[appinfo.AppInfo]:
|
||||
|
||||
Reference in New Issue
Block a user