templates

package
v1.20.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 31, 2019 License: MIT Imports: 24 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MaxOpsNormal  = 1000000
	MaxOpsPremium = 2500000
)

Variables

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,
		"mult":       tmplMult,
		"div":        tmplDiv,
		"mod":        tmplMod,
		"fdiv":       tmplFDiv,
		"round":      tmplRound,
		"roundCeil":  tmplRoundCeil,
		"roundFloor": tmplRoundFloor,
		"roundEven":  tmplRoundEven,

		"dict":   Dictionary,
		"sdict":  StringKeyDictionary,
		"cembed": CreateEmbed,
		"cslice": CreateSlice,

		"formatTime":  tmplFormatTime,
		"json":        tmplJson,
		"in":          in,
		"inFold":      inFold,
		"roleAbove":   roleIsAbove,
		"adjective":   common.RandomAdjective,
		"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 CreateSlice added in v1.4.1

func CreateSlice(values ...interface{}) ([]interface{}, 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

func LimitWriter(w io.Writer, n int64) io.Writer

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 MaybeScheduledDeleteMessage(guildID, channelID, messageID int64, delaySeconds int)

func RegisterSetupFunc

func RegisterSetupFunc(f ContextSetupFunc)

func TODO

func TODO()

func ToDuration added in v1.17.0

func ToDuration(from interface{}) time.Duration

func ToFloat64 added in v1.15.1

func ToFloat64(from interface{}) float64

func ToInt64

func ToInt64(from interface{}) int64

func ToString

func ToString(from interface{}) string

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 (c *Context) ChannelArg(v interface{}) int64

func (*Context) Execute

func (c *Context) Execute(source string) (string, error)

func (*Context) ExecuteAndSendWithErrors added in v1.17.3

func (c *Context) ExecuteAndSendWithErrors(source string, channelID int64) error

func (*Context) IncreaseCheckCallCounter added in v0.29.1

func (c *Context) IncreaseCheckCallCounter(key string, limit int) bool

IncreaseCheckCallCounter Returns true if key is above the limit

func (*Context) IncreaseCheckCallCounterPremium added in v1.17.2

func (c *Context) IncreaseCheckCallCounterPremium(key string, normalLimit, premiumLimit int) bool

IncreaseCheckCallCounter Returns true if key is above the limit

func (*Context) IncreaseCheckGenericAPICall added in v1.16.0

func (c *Context) IncreaseCheckGenericAPICall() bool

func (*Context) IncreaseCheckStateLock added in v1.16.0

func (c *Context) IncreaseCheckStateLock() bool

func (*Context) LogEntry added in v1.17.0

func (c *Context) LogEntry() *logrus.Entry

func (*Context) Parse added in v1.14.0

func (c *Context) Parse(source string) (*template.Template, error)

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

func StringKeyDictionary(values ...interface{}) (SDict, error)

func (SDict) Get added in v1.15.1

func (d SDict) Get(key string) interface{}

func (SDict) Set added in v1.15.1

func (d SDict) Set(key string, value interface{}) string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL