Documentation ¶
Index ¶
- Constants
- Variables
- func CreateEmbed(values ...interface{}) (*discordgo.MessageEmbed, error)
- func CreateMessageEdit(values ...interface{}) (*discordgo.MessageEdit, error)
- func CreateMessageSend(values ...interface{}) (*discordgo.MessageSend, error)
- func Dictionary(values ...interface{}) (map[interface{}]interface{}, error)
- func LimitWriter(w io.Writer, n int64) io.Writer
- func MaybeScheduledDeleteMessage(guildID, channelID, messageID int64, delaySeconds int)
- func RegisterSetupFunc(f ContextSetupFunc)
- func TODO()
- func ToDuration(from interface{}) time.Duration
- func ToFloat64(from interface{}) float64
- func ToInt64(from interface{}) int64
- func ToString(from interface{}) string
- type Context
- func (c *Context) ChannelArg(v interface{}) int64
- func (c *Context) Execute(source string) (string, error)
- func (c *Context) ExecuteAndSendWithErrors(source string, channelID int64) error
- func (c *Context) IncreaseCheckCallCounter(key string, limit int) bool
- func (c *Context) IncreaseCheckCallCounterPremium(key string, normalLimit, premiumLimit int) bool
- func (c *Context) IncreaseCheckGenericAPICall() bool
- func (c *Context) IncreaseCheckStateLock() bool
- func (c *Context) LogEntry() *logrus.Entry
- func (c *Context) Parse(source string) (*template.Template, error)
- type ContextSetupFunc
- type SDict
- type Slice
Constants ¶
View Source
const ( MaxOpsNormal = 1000000 MaxOpsPremium = 2500000 )
View Source
const MaxStringLength = 1000000
Variables ¶
View Source
var ErrStringTooLong = errors.NewPlain("String is too long (max 1MB)")
View Source
var ErrTooManyAPICalls = errors.New("Too many potential discord api calls function")
View Source
var ErrTooManyCalls = errors.New("Too many calls to this function")
View Source
var GuildPremiumFunc func(guildID int64) (bool, error)
set by the premium package to return wether this guild is premium or not
View Source
var ( StandardFuncMap = map[string]interface{}{ "str": ToString, "toString": ToString, "toInt": tmplToInt, "toInt64": ToInt64, "toFloat": ToFloat64, "toDuration": ToDuration, "joinStr": joinStrings, "lower": strings.ToLower, "upper": strings.ToUpper, "slice": slice, "urlescape": url.PathEscape, "split": strings.Split, "title": strings.Title, "add": add, "sub": tmplSub, "mult": tmplMult, "div": tmplDiv, "mod": tmplMod, "fdiv": tmplFDiv, "sqrt": tmplSqrt, "pow": tmplPow, "log": tmplLog, "round": tmplRound, "roundCeil": tmplRoundCeil, "roundFloor": tmplRoundFloor, "roundEven": tmplRoundEven, "humanizeThousands": tmplHumanizeThousands, "dict": Dictionary, "sdict": StringKeyDictionary, "cembed": CreateEmbed, "cslice": CreateSlice, "complexMessage": CreateMessageSend, "complexMessageEdit": CreateMessageEdit, "formatTime": tmplFormatTime, "json": tmplJson, "in": in, "inFold": inFold, "roleAbove": roleIsAbove, "adjective": common.RandomAdjective, "noun": common.RandomNoun, "randInt": randInt, "shuffle": shuffle, "seq": sequence, "currentTime": tmplCurrentTime, "newDate": tmplNewDate, "escapeHere": tmplEscapeHere, "escapeEveryone": tmplEscapeEveryone, "escapeEveryoneHere": tmplEscapeEveryoneHere, "humanizeDurationHours": tmplHumanizeDurationHours, "humanizeDurationMinutes": tmplHumanizeDurationMinutes, "humanizeDurationSeconds": tmplHumanizeDurationSeconds, "humanizeTimeSinceDays": tmplHumanizeTimeSinceDays, } )
Functions ¶
func CreateEmbed ¶ added in v1.4.1
func CreateEmbed(values ...interface{}) (*discordgo.MessageEmbed, error)
func CreateMessageEdit ¶ added in v1.23.0
func CreateMessageEdit(values ...interface{}) (*discordgo.MessageEdit, error)
func CreateMessageSend ¶ added in v1.22.2
func CreateMessageSend(values ...interface{}) (*discordgo.MessageSend, error)
func Dictionary ¶
func Dictionary(values ...interface{}) (map[interface{}]interface{}, error)
dictionary creates a map[string]interface{} from the given parameters by walking the parameters and treating them as key-value pairs. The number of parameters must be even.
func LimitWriter ¶ added in v1.10.1
LimitWriter works like io.LimitReader. It writes at most n bytes to the underlying Writer. It returns io.ErrShortWrite if more than n bytes are attempted to be written.
func MaybeScheduledDeleteMessage ¶ added in v1.13.0
func RegisterSetupFunc ¶
func RegisterSetupFunc(f ContextSetupFunc)
func ToDuration ¶ added in v1.17.0
Types ¶
type Context ¶
type Context struct { Name string GS *dstate.GuildState CS *dstate.ChannelState MS *dstate.MemberState Msg *discordgo.Message BotUser *discordgo.User ContextFuncs map[string]interface{} Data map[string]interface{} MentionEveryone bool MentionHere bool MentionRoles []int64 MentionRoleNames []string DelResponse bool DelResponseDelay int Counters map[string]int EmebdsToSend []*discordgo.MessageEmbed AddResponseReactionNames []string FixedOutput string IsPremium bool RegexCache map[string]*regexp.Regexp // contains filtered or unexported fields }
func NewContext ¶
func NewContext(gs *dstate.GuildState, cs *dstate.ChannelState, ms *dstate.MemberState) *Context
func (*Context) ChannelArg ¶ added in v1.16.0
func (*Context) ExecuteAndSendWithErrors ¶ added in v1.17.3
func (*Context) IncreaseCheckCallCounter ¶ added in v0.29.1
IncreaseCheckCallCounter Returns true if key is above the limit
func (*Context) IncreaseCheckCallCounterPremium ¶ added in v1.17.2
IncreaseCheckCallCounter Returns true if key is above the limit
func (*Context) IncreaseCheckGenericAPICall ¶ added in v1.16.0
func (*Context) IncreaseCheckStateLock ¶ added in v1.16.0
type ContextSetupFunc ¶
type ContextSetupFunc func(ctx *Context)
type SDict ¶ added in v1.15.1
type SDict map[string]interface{}
func StringKeyDictionary ¶ added in v1.4.1
type Slice ¶ added in v1.20.17
type Slice []interface{}
func CreateSlice ¶ added in v1.4.1
func (Slice) AppendSlice ¶ added in v1.20.17
func (Slice) StringSlice ¶ added in v1.22.2
Click to show internal directories.
Click to hide internal directories.