Add sticker_spam automod trigger

This commit is contained in:
Dragory 2020-10-16 02:01:07 +03:00
parent 0c73587b25
commit 3aada93a80
No known key found for this signature in database
GPG key ID: 5F387BA66DF8AAC1
8 changed files with 34 additions and 7 deletions

View file

@ -1562,9 +1562,8 @@
"dev": true "dev": true
}, },
"eris": { "eris": {
"version": "0.13.3", "version": "github:dragory/eris#9c1935b31a1c2972861464b54bb382a165674b93",
"resolved": "https://registry.npmjs.org/eris/-/eris-0.13.3.tgz", "from": "github:dragory/eris#stickers",
"integrity": "sha512-WBtLyknOWZpYZL9yPhez0oKUWvYpunSg43hGxawwjwSf3gFXmbEPYrT8KlmZXtpJnX16eQ7mzIq+MgSh3LarEg==",
"requires": { "requires": {
"opusscript": "^0.0.7", "opusscript": "^0.0.7",
"tweetnacl": "^1.0.1", "tweetnacl": "^1.0.1",
@ -4568,9 +4567,9 @@
} }
}, },
"ws": { "ws": {
"version": "7.3.0", "version": "7.3.1",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.3.0.tgz", "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz",
"integrity": "sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w==" "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA=="
}, },
"xdg-basedir": { "xdg-basedir": {
"version": "4.0.0", "version": "4.0.0",

View file

@ -30,7 +30,7 @@
"deep-diff": "^1.0.2", "deep-diff": "^1.0.2",
"dotenv": "^4.0.0", "dotenv": "^4.0.0",
"emoji-regex": "^8.0.0", "emoji-regex": "^8.0.0",
"eris": "^0.13.3", "eris": "github:dragory/eris#stickers",
"erlpack": "github:abalabahaha/erlpack", "erlpack": "github:abalabahaha/erlpack",
"escape-string-regexp": "^1.0.5", "escape-string-regexp": "^1.0.5",
"express": "^4.17.0", "express": "^4.17.0",

View file

@ -46,6 +46,7 @@ export class GuildSavedMessages extends BaseGuildRepository {
if (msg.attachments.length) data.attachments = msg.attachments; if (msg.attachments.length) data.attachments = msg.attachments;
if (msg.embeds.length) data.embeds = msg.embeds; if (msg.embeds.length) data.embeds = msg.embeds;
if (msg.stickers?.length) data.stickers = msg.stickers;
return data; return data;
} }

View file

@ -1,5 +1,6 @@
import { Column, Entity, PrimaryColumn } from "typeorm"; import { Column, Entity, PrimaryColumn } from "typeorm";
import { createEncryptedJsonTransformer } from "../encryptedJsonTransformer"; import { createEncryptedJsonTransformer } from "../encryptedJsonTransformer";
import { Sticker } from "eris";
export interface ISavedMessageData { export interface ISavedMessageData {
attachments?: object[]; attachments?: object[];
@ -9,6 +10,7 @@ export interface ISavedMessageData {
}; };
content: string; content: string;
embeds?: object[]; embeds?: object[];
stickers?: Sticker[];
timestamp: number; timestamp: number;
} }

View file

@ -14,4 +14,5 @@ export enum RecentActionType {
Character, Character,
VoiceChannelMove, VoiceChannelMove,
MemberJoin, MemberJoin,
Sticker,
} }

View file

@ -126,4 +126,21 @@ export function addRecentActionsFromMessage(pluginData: GuildPluginData<AutomodP
count: characterCount, count: characterCount,
}); });
} }
const stickerCount = (context.message.data.stickers || []).length;
if (stickerCount) {
pluginData.state.recentActions.push({
context,
type: RecentActionType.Sticker,
identifier: globalIdentifier,
count: stickerCount,
});
pluginData.state.recentActions.push({
context,
type: RecentActionType.Sticker,
identifier: perChannelIdentifier,
count: stickerCount,
});
}
} }

View file

@ -16,6 +16,7 @@ import { MemberJoinSpamTrigger } from "./memberJoinSpam";
import { MemberJoinTrigger } from "./memberJoin"; import { MemberJoinTrigger } from "./memberJoin";
import { RoleAddedTrigger } from "./roleAdded"; import { RoleAddedTrigger } from "./roleAdded";
import { RoleRemovedTrigger } from "./roleRemoved"; import { RoleRemovedTrigger } from "./roleRemoved";
import { StickerSpamTrigger } from "./stickerSpam";
export const availableTriggers: Record<string, AutomodTriggerBlueprint<any, any>> = { export const availableTriggers: Record<string, AutomodTriggerBlueprint<any, any>> = {
match_words: MatchWordsTrigger, match_words: MatchWordsTrigger,
@ -35,6 +36,7 @@ export const availableTriggers: Record<string, AutomodTriggerBlueprint<any, any>
line_spam: LineSpamTrigger, line_spam: LineSpamTrigger,
character_spam: CharacterSpamTrigger, character_spam: CharacterSpamTrigger,
member_join_spam: MemberJoinSpamTrigger, member_join_spam: MemberJoinSpamTrigger,
sticker_spam: StickerSpamTrigger,
}; };
export const AvailableTriggers = t.type({ export const AvailableTriggers = t.type({
@ -55,4 +57,5 @@ export const AvailableTriggers = t.type({
line_spam: LineSpamTrigger.configType, line_spam: LineSpamTrigger.configType,
character_spam: CharacterSpamTrigger.configType, character_spam: CharacterSpamTrigger.configType,
member_join_spam: MemberJoinSpamTrigger.configType, member_join_spam: MemberJoinSpamTrigger.configType,
sticker_spam: StickerSpamTrigger.configType,
}); });

View file

@ -0,0 +1,4 @@
import { RecentActionType } from "../constants";
import { createMessageSpamTrigger } from "../functions/createMessageSpamTrigger";
export const StickerSpamTrigger = createMessageSpamTrigger(RecentActionType.Sticker, "sticker");