Documentation ¶
Index ¶
- Variables
- func CheckMessage(m *discordgo.Message, client *redis.Client)
- func Dir(useLocal bool, name string) http.FileSystem
- func ExtraPostMW(inner http.Handler) http.Handler
- func FS(useLocal bool) http.FileSystem
- func FSByte(useLocal bool, name string) ([]byte, error)
- func FSMustByte(useLocal bool, name string) []byte
- func FSMustString(useLocal bool, name string) string
- func FSString(useLocal bool, name string) (string, error)
- func HandleAutomod(w http.ResponseWriter, r *http.Request) interface{}
- func HandleMessageCreate(evt *eventsystem.EventData)
- 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 ¶
var BuiltinSwearWords = map[string]bool{ "anal": true, "anus": true, "arse": true, "ass": true, "ballsack": true, "bastard": true, "bitch": true, "biatch": true, "blowjob": true, "bollock": true, "bollok": true, "boner": true, "boob": true, "buttplug": true, "clitoris": true, "cock": true, "crap": true, "cunt": true, "dick": true, "dildo": true, "dyke": true, "fag": 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
Functions ¶
func Dir ¶
func Dir(useLocal bool, name string) http.FileSystem
Dir returns a http.Filesystem for the embedded assets on a given prefix dir. If useLocal is true, the filesystem's contents are instead used.
func FS ¶
func FS(useLocal bool) http.FileSystem
FS returns a http.Filesystem for the embedded assets. If useLocal is true, the filesystem's contents are instead used.
func FSByte ¶
FSByte returns the named file from the embedded assets. If useLocal is true, the filesystem's contents are instead used.
func FSMustByte ¶
FSMustByte is the same as FSByte, but panics if name is not present.
func FSMustString ¶
FSMustString is the string version of FSMustByte.
func HandleAutomod ¶
func HandleAutomod(w http.ResponseWriter, r *http.Request) interface{}
func HandleMessageCreate ¶
func HandleMessageCreate(evt *eventsystem.EventData)
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) IgnoreRoleInt ¶
func (BaseRule) PushViolation ¶
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, client *redis.Client) (del bool, punishment Punishment, msg string, err error)
type MentionRule ¶
func (*MentionRule) Check ¶
func (m *MentionRule) Check(evt *discordgo.Message, cs *dstate.ChannelState, client *redis.Client) (del bool, punishment Punishment, msg string, err error)
type Punishment ¶
type Punishment int
const ( PunishNone Punishment = iota PunishMute PunishKick PunishBan )
type SitesRule ¶
type SitesRule struct { BaseRule `valid:"traverse"` BuiltinBadSites bool BuiltinPornSites bool BannedWebsites string `valid:",10000"` // contains filtered or unexported fields }