mirror of
https://github.com/discordeno/discordeno.git
synced 2026-09-17 16:57:22 +00:00
* feat(meister): add automod * fix(test); rest error with code * fix(rest): log error nicely * fix(test): disable benchmark test until gateway rewrite * fix(automod): enum should start with 1 * fix(helper): better undefined handling of metadata * fix(transfomrers): automod transformers * fix(tests): add some automod tests * Update types/shared.ts Co-authored-by: meister03 <69507874+meister03@users.noreply.github.com> * fix: changes discord made recently * fix(fmt): i hate deno fmt but i love itoh Co-authored-by: meister03 <69507874+meister03@users.noreply.github.com> Co-authored-by: LTS20050703 <87189679+lts20050703@users.noreply.github.com>
37 lines
1.4 KiB
TypeScript
37 lines
1.4 KiB
TypeScript
import { Bot } from "../bot.ts";
|
|
import { DiscordAutoModerationRule } from "../types/discord.ts";
|
|
import { Optionalize } from "../types/shared.ts";
|
|
|
|
export function transformAutoModerationRule(bot: Bot, payload: DiscordAutoModerationRule) {
|
|
const rule = {
|
|
name: payload.name,
|
|
eventType: payload.event_type,
|
|
triggerType: payload.trigger_type,
|
|
enabled: payload.enabled,
|
|
id: bot.transformers.snowflake(payload.id),
|
|
guildId: bot.transformers.snowflake(payload.guild_id),
|
|
creatorId: bot.transformers.snowflake(payload.creator_id),
|
|
exemptRoles: payload.exempt_roles.map((id) => bot.transformers.snowflake(id)),
|
|
exemptChannels: payload.exempt_channels.map((id) => bot.transformers.snowflake(id)),
|
|
triggerMetadata: payload.trigger_metadata
|
|
? {
|
|
keywordFilter: payload.trigger_metadata.keyword_filter,
|
|
presets: payload.trigger_metadata.presets,
|
|
}
|
|
: undefined,
|
|
actions: payload.actions.map((action) => ({
|
|
type: action.type,
|
|
metadata: action.metadata
|
|
? {
|
|
channelId: action.metadata.channel_id ? bot.transformers.snowflake(action.metadata.channel_id) : undefined,
|
|
durationSeconds: action.metadata.duration_seconds,
|
|
}
|
|
: undefined,
|
|
})),
|
|
};
|
|
|
|
return rule as Optionalize<typeof rule>;
|
|
}
|
|
|
|
export interface AutoModerationRule extends ReturnType<typeof transformAutoModerationRule> {}
|