Documentation
¶
Index ¶
- Constants
- type MemoryStore
- type RateLimitStore
- type Ratelimiter
- type RedisStore
- type Route
- func NewApplicationRoute(id RouteId, snowflake uint64) Route
- func NewChannelRoute(id RouteId, snowflake uint64) Route
- func NewGuildRoute(id RouteId, snowflake uint64) Route
- func NewOtherRoute(id RouteId, snowflake uint64) Route
- func NewRoute(routeType RouteType, id RouteId, snowflake uint64) Route
- func NewWebhookRoute(id RouteId, snowflake uint64) Route
- type RouteId
- type RouteType
Constants ¶
View Source
const IdentifyWait = 6 * time.Second
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type MemoryStore ¶
type MemoryStore struct {
sync.Mutex
Cache *ttlcache.Cache // handles mutex for us
// contains filtered or unexported fields
}
func NewMemoryStore ¶
func NewMemoryStore() *MemoryStore
func (*MemoryStore) UpdateGlobalRateLimit ¶
func (s *MemoryStore) UpdateGlobalRateLimit(resetAfter time.Duration)
func (*MemoryStore) UpdateRateLimit ¶
type RateLimitStore ¶
type Ratelimiter ¶
type Ratelimiter struct {
sync.Mutex
Store RateLimitStore
// contains filtered or unexported fields
}
func NewRateLimiter ¶
func NewRateLimiter(store RateLimitStore, largeShardingBuckets int) *Ratelimiter
func (*Ratelimiter) ExecuteCall ¶
func (l *Ratelimiter) ExecuteCall(route Route, ch chan error)
func (*Ratelimiter) IdentifyWait ¶
func (l *Ratelimiter) IdentifyWait(shardId int) error
type RedisStore ¶
type RedisStore struct {
*redis.Client
ContextBuilder func() context.Context
// contains filtered or unexported fields
}
func NewRedisStore ¶
func NewRedisStore(client *redis.Client, keyPrefix string) *RedisStore
func (*RedisStore) UpdateGlobalRateLimit ¶
func (s *RedisStore) UpdateGlobalRateLimit(resetAfter time.Duration)
func (*RedisStore) UpdateRateLimit ¶
type Route ¶
func NewApplicationRoute ¶
func NewChannelRoute ¶
func NewGuildRoute ¶
func NewOtherRoute ¶
func NewWebhookRoute ¶
type RouteId ¶
type RouteId uint16
const ( // /guilds/:id/audit-logs RouteGetGuildAuditLog RouteId = iota // /channels/:id/... RouteGetChannel RouteModifyChannel RouteDeleteChannel RouteGetChannelMessages RouteGetChannelMessage RouteCreateMessage RouteCrosspostMessage RouteCreateReaction RouteDeleteOwnReaction RouteDeleteUserReaction RouteGetReactions RouteDeleteAllReactions RouteDeleteAllReactionsForEmoji RouteEditMessage RouteDeleteMessage RouteBulkDeleteMessages RouteEditChannelPermissions RouteGetChannelInvites RouteCreateChannelInvite RouteDeleteChannelPermission RouteFollowNewsChannel RouteTriggerTypingIndicator RouteGetPinnedMessages RouteAddPinnedChannelMessage RouteDeletePinnedChannelMessage RouteJoinThread RouteAddThreadMember RouteLeaveThread RouteRemoveThreadMember RouteListThreadMembers RouteGetThreadMember RouteStartThreadWithMessage RouteStartThreadWithoutMessage RouteGetActiveThreads RouteGetArchivedPrivateSelfThreads RouteGetArchivedPublicThreads RouteGetArchivedPrivateThreads RouteGroupDMAddRecipient RouteGroupDMRemoveRecipient // /guilds/:id/emojis RouteListGuildEmojis RouteGetGuildEmoji RouteCreateGuildEmoji RouteModifyGuildEmoji RouteDeleteGuildEmoji // /guilds/:id/... RouteCreateGuild RouteGetGuild RouteGetGuildPreview RouteModifyGuild RouteDeleteGuild RouteGetGuildChannels RouteCreateGuildChannel RouteModifyGuildChannelPositions RouteGetGuildMember RouteSearchGuildMembers RouteListGuildMembers RouteAddGuildMember RouteModifyGuildMember RouteModifyCurrentUserNick RouteAddGuildMemberRole RouteRemoveGuildMemberRole RouteRemoveGuildMember RouteGetGuildBans RouteGetGuildBan RouteCreateGuildBan RouteRemoveGuildBan RouteGetGuildRoles RouteCreateGuildRole RouteModifyGuildRolePositions RouteModifyGuildRole RouteDeleteGuildRole RouteGetGuildPruneCount RouteBeginGuildPrune RouteGetGuildVoiceRegions RouteGetGuildInvites RouteGetGuildIntegrations RouteCreateGuildIntegration RouteModifyGuildIntegration RouteDeleteGuildIntegration RouteSyncGuildIntegration RouteGetGuildWidgetSettings RouteModifyGuildWidget RouteGetGuildWidget RouteGetGuildVanityURL RouteGuildWidgetImage // /invites/:id // Invites seemingly don't have ratelimits, but we need these enums internally RouteGetInvite RouteDeleteInvite // /guilds/templates/:code // Also seemingly no ratelimits RouteGetTemplate RouteCreateGuildTemplate // /users/:id/... // Again, seemingly no ratelimits but we need these internally RouteGetCurrentUser RouteGetUser RouteModifyCurrentUser RouteGetCurrentUserGuilds RouteLeaveGuild RouteGetUserDMs RouteCreateDM RouteCreateGroupDM RouteGetUserConnections // /voice/regions RouteListVoiceRegions // /channels/:id/webhooks RouteCreateWebhook RouteGetChannelWebhooks // /guilds/:id/webhooks RouteGetGuildWebhooks // /webhooks/:id/... RouteGetWebhook RouteGetWebhookWithToken RouteModifyWebhook RouteModifyWebhookWithToken RouteDeleteWebhook RouteDeleteWebhookWithToken RouteExecuteWebhook RouteEditWebhookMessage // /applications/:id/... RouteGetGlobalCommands RouteCreateGlobalCommand RouteModifyGlobalCommand RouteModifyGlobalCommands RouteDeleteGlobalCommand // /applications/:id/guild/... RouteGetGuildCommands RouteCreateGuildCommand RouteModifyGuildCommand RouteModifyGuildCommands RouteDeleteGuildCommand // /applications/:id/guild/.../permissions RouteGetCommandPermissions RouteGetBulkCommandPermissions RouteEditCommandPermissions RouteEditBulkCommandPermissions // /webhooks/:id/:token/... RouteGetOriginalInteractionResponse RouteEditOriginalInteractionResponse RouteDeleteOriginalInteractionResponse RouteCreateFollowupMessage RouteGetFollowupMessage RouteEditFollowupMessage RouteDeleteFollowupMessage // /applications/@me RouteGetCurrentApplication RouteEditCurrentApplication ///applications/:id/entitlements RouteListEntitlements RouteConsumeEntitlement RouteCreateTestEntitlement RouteDeleteTestEntitlement // /oauth2/ RouteOauth2TokenExchange RouteOauth2TokenRevoke )
Click to show internal directories.
Click to hide internal directories.