rate

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: May 24, 2020 License: ISC Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const ExtraDelay = 250 * time.Millisecond

ExtraDelay because Discord is trash. I've seen this in both litcord and discordgo, with dgo claiming from his experiments. RE: Those who want others to fix it for them: release the source code then.

Variables

View Source
var MajorRootPaths = []string{"channels", "guilds"}

TODO: webhook

Functions

func EmojiRune

func EmojiRune(r rune) bool

func ParseBucketKey

func ParseBucketKey(path string) string

func StringIsCustomEmoji

func StringIsCustomEmoji(emoji string) bool

func StringIsEmojiOnly

func StringIsEmojiOnly(emoji string) bool

Types

type CustomRateLimit

type CustomRateLimit struct {
	Contains string
	Reset    time.Duration
}

type Limiter

type Limiter struct {
	// Only 1 per bucket
	CustomLimits []*CustomRateLimit

	Prefix string
	// contains filtered or unexported fields
}

func NewLimiter

func NewLimiter(prefix string) *Limiter

func (*Limiter) Acquire

func (l *Limiter) Acquire(ctx context.Context, path string) error

func (*Limiter) Release

func (l *Limiter) Release(path string, headers http.Header) error

Release releases the URL from the locks. This doesn't need a context for timing out, it doesn't block that much.

Jump to

Keyboard shortcuts

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