ctxext

package
v1.0.3-2604101815-1dacdb6 Latest Latest
Warning

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

Go to latest
Published: Apr 10, 2026 License: GPL-3.0 Imports: 15 Imported by: 0

Documentation

Overview

Package ctxext zb context 扩展

Index

Constants

This section is empty.

Variables

View Source
var DefaultSingle = NewDefaultSingle("您有操作正在执行, 请稍后再试!")

DefaultSingle 默认反并发处理, 不匹配后续插件

按 qq 号反并发
并发时返回 "您有操作正在执行, 请稍后再试!"
View Source
var (
	// ErrManagerNotFound unexpected
	ErrManagerNotFound = errors.New("manager not found")
)
View Source
var GroupSingle = NewGroupSingle("您有操作正在执行, 请稍后再试!")

GroupSingle 按群反并发, 私聊时按个人, 不匹配后续插件

并发时返回 "您有操作正在执行, 请稍后再试!"

Functions

func FakeSenderForwardNode

func FakeSenderForwardNode(ctx *zero.Ctx, msgs ...message.Segment) message.Segment

FakeSenderForwardNode ...

func LimitByGroup

func LimitByGroup(ctx *zero.Ctx) *rate.Limiter

LimitByGroup 默认限速器 每 10s 5次触发

按群号限制

func LimitByUser

func LimitByUser(ctx *zero.Ctx) *rate.Limiter

LimitByUser 默认限速器 每 10s 5次触发

按 qq 号限制

func NewDefaultSingle

func NewDefaultSingle(failtext string) *single.Single[int64]

NewDefaultSingle 自定义失败文案

func NewGroupSingle

func NewGroupSingle(failtext string) *single.Single[int64]

NewGroupSingle 自定义失败文案

func NewStorageSaveBitmapHandler

func NewStorageSaveBitmapHandler(bmp int64, minv, maxv int64) func(ctx *zero.Ctx)

NewStorageSaveBitmapHandler is a easy handler that cooperate with OnPrefix and extract int64 from args, save it to storage.

func NewStorageSaveBoolHandler

func NewStorageSaveBoolHandler(bmp int64) func(ctx *zero.Ctx)

NewStorageSaveBoolHandler is a easy handler that cooperate with OnRegex and extract bool from args, save it to storage.

Note:

  • The first submatch must be (不)?
  • If 不 is matched, true (1) will be set.
  • Otherwise, false (0) will be set.

func SetDefaultLimiterManagerParam

func SetDefaultLimiterManagerParam(interval time.Duration, burst int)

SetDefaultLimiterManagerParam 设置默认限速器参数

每 interval 时间 burst 次触发

Types

type LimiterManager

type LimiterManager struct {
	// contains filtered or unexported fields
}

LimiterManager 自定义限速器管理

func NewLimiterManager

func NewLimiterManager(interval time.Duration, burst int) (m LimiterManager)

NewLimiterManager 新限速器管理

func (LimiterManager) LimitByGroup

func (m LimiterManager) LimitByGroup(ctx *zero.Ctx) *rate.Limiter

LimitByGroup 自定义限速器

按群号限制

func (LimiterManager) LimitByUser

func (m LimiterManager) LimitByUser(ctx *zero.Ctx) *rate.Limiter

LimitByUser 自定义限速器

按 qq 号限制

type NoCtxGetMsg

type NoCtxGetMsg func(int64) zero.Message

func GetFirstMessageInForward

func GetFirstMessageInForward(ctx *zero.Ctx) NoCtxGetMsg

GetFirstMessageInForward ...

func GetMessage

func GetMessage(ctx *zero.Ctx) NoCtxGetMsg

GetMessage ...

type NoCtxSendMsg

type NoCtxSendMsg func(any) int64

func Send

func Send(ctx *zero.Ctx) NoCtxSendMsg

Send ...

func SendFakeForwardToGroup

func SendFakeForwardToGroup(ctx *zero.Ctx, msgs ...message.Segment) NoCtxSendMsg

SendFakeForwardToGroup ...

func SendTo

func SendTo(ctx *zero.Ctx, user int64) NoCtxSendMsg

SendTo ...

func SendToSelf

func SendToSelf(ctx *zero.Ctx) NoCtxSendMsg

SendToSelf ...

type Storage

type Storage int64

Storage is a wrapper of *ctrl.Control[*zero.Ctx].Get/SetData

func NewStorage

func NewStorage(ctx *zero.Ctx, gid int64) (Storage, error)

NewStorage private is -uid

func (Storage) Get

func (s Storage) Get(bmp int64) int64

Get bmp is a continuous 1's sequence like 0x00ff00

func (Storage) GetBool

func (s Storage) GetBool(bmp int64) bool

GetBool bmp must be 1-bit-long

func (Storage) SaveTo

func (s Storage) SaveTo(ctx *zero.Ctx, gid int64) error

SaveTo ...

func (Storage) Set

func (s Storage) Set(x int64, bmp int64) Storage

Set bmp is a continuous 1's sequence like 0x00ff00

Jump to

Keyboard shortcuts

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