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.