Documentation
¶
Overview ¶
Package ctxext zb context 扩展
Index ¶
- Variables
- func DoOnceOnSuccess[Ctx any](f func(Ctx) bool) func(Ctx) bool
- func FakeSenderForwardNode(ctx *zero.Ctx, msgs ...message.MessageSegment) message.MessageSegment
- func LimitByGroup(ctx *zero.Ctx) *rate.Limiter
- func LimitByUser(ctx *zero.Ctx) *rate.Limiter
- func RandSenderPerDayN(uid int64, n int) int
- func SetDefaultLimiterManagerParam(interval time.Duration, burst int)
- func ValueInList[Ctx any](getval func(Ctx) string, list ListGetter) func(Ctx) bool
- type LimiterManager
- type ListGetter
- type NoCtxGetMsg
- type NoCtxSendMsg
Constants ¶
This section is empty.
Variables ¶
View Source
var DefaultSingle = single.New( single.WithKeyFn(func(ctx *zero.Ctx) int64 { return ctx.Event.UserID }), single.WithPostFn[int64](func(ctx *zero.Ctx) { ctx.Send("您有操作正在执行, 请稍后再试!") }), )
DefaultSingle 默认反并发处理
按 qq 号反并发 并发时返回 "您有操作正在执行, 请稍后再试!"
Functions ¶
func DoOnceOnSuccess ¶ added in v1.3.3
DoOnceOnSuccess 当返回 true, 之后直接通过, 否则下次触发仍会执行
func FakeSenderForwardNode ¶ added in v1.3.1
func FakeSenderForwardNode(ctx *zero.Ctx, msgs ...message.MessageSegment) message.MessageSegment
FakeSenderForwardNode ...
func RandSenderPerDayN ¶ added in v1.4.0
RandSenderPerDayN 每个用户每天随机数
func SetDefaultLimiterManagerParam ¶ added in v1.5.0
SetDefaultLimiterManagerParam 设置默认限速器参数
每 interval 时间 burst 次触发
func ValueInList ¶ added in v1.5.0
func ValueInList[Ctx any](getval func(Ctx) string, list ListGetter) func(Ctx) bool
ValueInList 判断参数是否在列表中
Types ¶
type LimiterManager ¶ added in v1.2.5
type LimiterManager struct {
// contains filtered or unexported fields
}
LimiterManager 自定义限速器管理
func NewLimiterManager ¶ added in v1.2.5
func NewLimiterManager(interval time.Duration, burst int) (m LimiterManager)
NewLimiterManager 新限速器管理
func (LimiterManager) LimitByGroup ¶ added in v1.2.5
func (m LimiterManager) LimitByGroup(ctx *zero.Ctx) *rate.Limiter
LimitByGroup 自定义限速器
按群号限制
func (LimiterManager) LimitByUser ¶ added in v1.2.5
func (m LimiterManager) LimitByUser(ctx *zero.Ctx) *rate.Limiter
LimitByUser 自定义限速器
按 qq 号限制
type ListGetter ¶ added in v1.3.0
type ListGetter interface {
List() []string
}
ListGetter 获得实时刷新的 list
type NoCtxGetMsg ¶ added in v1.2.5
nolint: revive
func GetFirstMessageInForward ¶ added in v1.3.1
func GetFirstMessageInForward(ctx *zero.Ctx) NoCtxGetMsg
GetFirstMessageInForward ...
type NoCtxSendMsg ¶ added in v1.2.5
nolint: revive
func SendFakeForwardToGroup ¶ added in v1.3.1
func SendFakeForwardToGroup(ctx *zero.Ctx, msgs ...message.MessageSegment) NoCtxSendMsg
SendFakeForwardToGroup ...
Click to show internal directories.
Click to hide internal directories.