feat: sync built-in sticker bot

This commit is contained in:
A 2026-07-01 21:55:55 +08:00
parent 7096625e13
commit 6867d201ed
60 changed files with 7063 additions and 144 deletions

View file

@ -5,6 +5,21 @@ import "errors"
// ErrStickerInvalid 表示输入文档不是合法的贴纸/GIF(faveSticker/saveGif 等)。
var ErrStickerInvalid = errors.New("sticker document invalid")
var (
ErrStickerSetTitleInvalid = errors.New("sticker set title invalid")
ErrStickerSetShortNameInvalid = errors.New("sticker set short name invalid")
ErrStickerSetShortNameOccupied = errors.New("sticker set short name occupied")
ErrStickerSetTypeInvalid = errors.New("sticker set type invalid")
ErrStickerSetEmpty = errors.New("sticker set empty")
ErrStickerSetTooMuch = errors.New("sticker set too much")
ErrStickerSetEmojiInvalid = errors.New("sticker set emoji invalid")
ErrStickerSetFileInvalid = errors.New("sticker set file invalid")
ErrStickerSetCreatorInvalid = errors.New("sticker set creator invalid")
ErrStickerSetInvalid = errors.New("sticker set invalid")
ErrStickerSetNotOwned = errors.New("sticker set not owned")
ErrStickerSetPositionInvalid = errors.New("sticker set position invalid")
)
// StickerCollectionKind 区分一个用户的几类个人贴纸集合。
type StickerCollectionKind string
@ -22,9 +37,11 @@ const (
// 各集合容量上界(最新在前,超出截断最旧)。仅为限制存储增长,非严格 Telegram 配额;
// faved 不做 premium 分档(用户决策范围外),统一一个上界。
const (
MaxFavedStickers = 100
MaxRecentStickers = 30
MaxSavedGifs = 200
MaxFavedStickers = 100
MaxRecentStickers = 30
MaxSavedGifs = 200
MaxInstalledStickerSets = 200
MaxCreatedStickerSets = 200
)
// MaxStickerCollectionItems 返回某类集合的容量上界。
@ -44,3 +61,14 @@ type StickerCollectionItem struct {
DocumentID int64
Date int
}
// UserStickerSet 是某个账号安装/归档的一条 sticker set 状态。
// set 元数据、文档和 packs 仍由 media/files 模块维护;这里仅保存用户视角。
type UserStickerSet struct {
OwnerUserID int64
StickerSetID int64
Kind StickerSetKind
Archived bool
InstalledDate int
OrderValue int64
}