Documentation ¶
Index ¶
- Variables
- func CheckMessage(m *discordgo.Message) bool
- func CheckMessageForBadInvites(msg string, guildID int64) (containsBadInvites bool)
- func CommandsMessageFilterFunc(msg *discordgo.Message) bool
- func ExtraPostMW(inner http.Handler) http.Handler
- func HandleAutomod(w http.ResponseWriter, r *http.Request) interface{}
- func HandleMessageUpdate(evt *eventsystem.EventData)
- func HandleUpdateAutomodRules(event *pubsub.Event)
- func KeyConfig(gID int64) string
- func KeyEnabled(gID int64) string
- func KeyViolations(gID, uID int64, violation string) string
- func RegisterPlugin()
- type BaseRule
- type Condition
- type Config
- type CtxKey
- type GeneralForm
- type InviteRule
- type LinksRule
- type MentionRule
- type Plugin
- type Punishment
- type Rule
- type SitesRule
- type SpamRule
- type WordsRule
Constants ¶
This section is empty.
Variables ¶
View Source
var BuiltinSwearWords = map[string]bool{ "anal": true, "anus": true, "arse": true, "ass": true, "b1tch": true, "ballsack": true, "bastard": true, "bitch": true, "biatch": true, "blowjob": true, "bollock": true, "bollok": true, "boner": true, "boob": true, "boobs": true, "buttplug": true, "clitoris": true, "cock": true, "cunt": true, "dick": true, "dildo": true, "dyke": true, "fag": true, "faggot": true, "feck": true, "fellate": true, "fellatio": true, "felching": true, "fuck": true, "fudgepacker": true, "hell": true, "jerk": true, "jizz": true, "knobend": true, "labia": true, "muff": true, "nigger": true, "nigga": true, "penis": true, "piss": true, "poop": true, "pube": true, "pussy": true, "queer": true, "scrotum": true, "sex": true, "shit": true, "sh1t": true, "slut": true, "smegma": true, "spunk": true, "tit": true, "tosser": true, "turd": true, "twat": true, "vagina": true, "wank": true, "whore": true, "tits": true, "titty": true, "asshole": true, "fvck": true, "asshat": true, "pu55y": true, "pen1s": true, }
This list is in alphabethical order Open a pr or bug me on discord if you want a word added
View Source
var LinkRegex = regexp.MustCompile(`((https?|steam):\/\/[^\s<]+[^<.,:;"')\]\s])`)
Functions ¶
func CheckMessage ¶
func CheckMessageForBadInvites ¶ added in v1.4.11
func CommandsMessageFilterFunc ¶ added in v1.4.8
func HandleAutomod ¶
func HandleAutomod(w http.ResponseWriter, r *http.Request) interface{}
func HandleMessageUpdate ¶
func HandleMessageUpdate(evt *eventsystem.EventData)
func HandleUpdateAutomodRules ¶
Invalidate the cache when the rules have changed
func KeyViolations ¶
func RegisterPlugin ¶
func RegisterPlugin()
Types ¶
type BaseRule ¶
type BaseRule struct { Enabled bool ViolationsExpire int `valid:"0,44640"` // Execute these punishments after certain number of repeated violaions MuteAfter int `valid:"0,1000"` MuteDuration int `valid:"0,44640"` KickAfter int `valid:"0,1000"` BanAfter int `valid:"0,1000"` IgnoreRole string `valid:"role,true"` IgnoreChannels []string `valid:"channel,false"` }
func (BaseRule) GetMuteDuration ¶
func (BaseRule) IgnoreChannelsParsed ¶ added in v1.4.1
func (BaseRule) IgnoreRoleInt ¶
func (BaseRule) PushViolation ¶
func (r BaseRule) PushViolation(key string) (p Punishment, err error)
func (BaseRule) ShouldIgnore ¶
Returns true if this rule should be ignored
type Config ¶
type Config struct { Enabled bool Spam *SpamRule `valid:"traverse"` Mention *MentionRule `valid:"traverse"` Invite *InviteRule `valid:"traverse"` Links *LinksRule `valid:"traverse"` Sites *SitesRule `valid:"traverse"` Words *WordsRule `valid:"traverse"` }
func CachedGetConfig ¶
CachedGetConfig either retrieves from local application cache or redis
type GeneralForm ¶
type GeneralForm struct {
Enabled bool
}
type InviteRule ¶
type InviteRule struct {
BaseRule `valid:"traverse"`
}
func (*InviteRule) Check ¶
func (i *InviteRule) Check(evt *discordgo.Message, cs *dstate.ChannelState) (del bool, punishment Punishment, msg string, err error)
type MentionRule ¶
func (*MentionRule) Check ¶
func (m *MentionRule) Check(evt *discordgo.Message, cs *dstate.ChannelState) (del bool, punishment Punishment, msg string, err error)
type Punishment ¶
type Punishment int
const ( PunishNone Punishment = iota PunishMute PunishKick PunishBan )
type Rule ¶
type Rule interface { Check(m *discordgo.Message, cs *dstate.ChannelState) (del bool, punishment Punishment, msg string, err error) ShouldIgnore(msg *discordgo.Message, m *dstate.MemberState) bool GetMuteDuration() int }
type SitesRule ¶
type SitesRule struct { BaseRule `valid:"traverse"` BuiltinBadSites bool GoogleSafeBrowsingEnabled bool BannedWebsites string `valid:",10000"` // contains filtered or unexported fields }
func (*SitesRule) Check ¶
func (s *SitesRule) Check(evt *discordgo.Message, cs *dstate.ChannelState) (del bool, punishment Punishment, msg string, err error)
func (*SitesRule) GetCompiled ¶
type SpamRule ¶
type WordsRule ¶
type WordsRule struct { BaseRule `valid:"traverse"` BuiltinSwearWords bool BannedWords string `valid:",25000"` // contains filtered or unexported fields }
func (*WordsRule) Check ¶
func (w *WordsRule) Check(evt *discordgo.Message, cs *dstate.ChannelState) (del bool, punishment Punishment, msg string, err error)
func (*WordsRule) CheckMessage ¶
func (*WordsRule) GetCompiled ¶
Click to show internal directories.
Click to hide internal directories.