message

package
v0.0.0-...-b4be506 Latest Latest
Warning

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

Go to latest
Published: Nov 7, 2021 License: AGPL-3.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	QQMusic    = iota // QQ音乐
	CloudMusic        // 网易云音乐
	MiguMusic         // 咪咕音乐
	KugouMusic        // 酷狗音乐
	KuwoMusic         // 酷我音乐
)

MusicType values.

View Source
const (
	Text     ElementType = iota // 文本
	Image                       // 图片
	Face                        // 表情
	At                          // 艾特
	Reply                       // 回复
	Service                     // 服务
	Forward                     // 转发
	File                        // 文件
	Voice                       // 语音
	Video                       // 视频
	LightApp                    // 轻应用
	RedBag                      // 红包

	HoldingYourHand GroupGift = 280
	CuteCat         GroupGift = 281
	MysteryMask     GroupGift = 284
	SweetWink       GroupGift = 285
	ImBusy          GroupGift = 286
	HappyCola       GroupGift = 289
	LuckyBracelet   GroupGift = 290
	Cappuccino      GroupGift = 299
	CatWatch        GroupGift = 302
	FleeceGloves    GroupGift = 307
	RainbowCandy    GroupGift = 308
	LoveMask        GroupGift = 312
	Stronger        GroupGift = 313
	LoveMicrophone  GroupGift = 367
)

Variables

This section is empty.

Functions

func EstimateLength

func EstimateLength(elems []IMessageElement) int

func FaceNameById

func FaceNameById(id int) string

func ToProtoElems

func ToProtoElems(elems []IMessageElement, generalFlags bool) (r []*msg.Elem)

func ToReadableString

func ToReadableString(m []IMessageElement) string

func ToSrcProtoElems

func ToSrcProtoElems(elems []IMessageElement) (r []*msg.Elem)

Types

type AnonymousInfo

type AnonymousInfo struct {
	AnonymousId   string
	AnonymousNick string
}

type AtElement

type AtElement struct {
	Target  int64
	Display string
}

func AtAll

func AtAll() *AtElement

func NewAt

func NewAt(target int64, display ...string) *AtElement

func (*AtElement) Pack

func (e *AtElement) Pack() (r []*msg.Elem)

func (*AtElement) Type

func (e *AtElement) Type() ElementType

type DiceElement

type DiceElement struct {
	*MarketFaceElement
	Value int32
}

type ElementType

type ElementType int

func (ElementType) String

func (i ElementType) String() string

type FaceElement

type FaceElement struct {
	Index int32
	Name  string
}

func NewFace

func NewFace(index int32) *FaceElement

func (*FaceElement) Pack

func (e *FaceElement) Pack() (r []*msg.Elem)

func (*FaceElement) Type

func (e *FaceElement) Type() ElementType

type ForwardElement

type ForwardElement struct {
	FileName string
	Content  string
	ResId    string
	Items    []*msg.PbMultiMsgItem
}

func (*ForwardElement) Pack

func (e *ForwardElement) Pack() []*msg.Elem

func (*ForwardElement) Type

func (e *ForwardElement) Type() ElementType

Type impl IMessageElement

type ForwardMessage

type ForwardMessage struct {
	Nodes []*ForwardNode
	// contains filtered or unexported fields
}

ForwardMessage 添加 Node 请用 AddNode 方法

func NewForwardMessage

func NewForwardMessage() *ForwardMessage

func (*ForwardMessage) AddNode

func (f *ForwardMessage) AddNode(node *ForwardNode) *ForwardMessage

AddNode adds a node to the forward message. return for method chaining.

func (*ForwardMessage) Brief

func (f *ForwardMessage) Brief() string

func (*ForwardMessage) CalculateValidationData

func (f *ForwardMessage) CalculateValidationData(seq, random int32, groupCode int64) ([]byte, []byte)

func (*ForwardMessage) CalculateValidationDataForward

func (f *ForwardMessage) CalculateValidationDataForward(seq, random int32, groupCode int64) ([]byte, []byte, []*msg.PbMultiMsgItem)

CalculateValidationDataForward 屎代码

func (*ForwardMessage) Length

func (f *ForwardMessage) Length() int

Length return the length of Nodes.

func (*ForwardMessage) Preview

func (f *ForwardMessage) Preview() string

type ForwardNode

type ForwardNode struct {
	SenderId   int64
	SenderName string
	Time       int32
	Message    []IMessageElement
}

type FriendImageElement

type FriendImageElement struct {
	ImageId string
	Md5     []byte
	Size    int32
	Url     string

	Flash bool
}

func (*FriendImageElement) Pack

func (e *FriendImageElement) Pack() (r []*msg.Elem)

func (*FriendImageElement) Type

func (e *FriendImageElement) Type() ElementType

type GroupFileElement

type GroupFileElement struct {
	Name  string
	Size  int64
	Path  string
	Busid int32
}

func (*GroupFileElement) Type

func (e *GroupFileElement) Type() ElementType

type GroupGift

type GroupGift int

type GroupImageElement

type GroupImageElement struct {
	ImageId      string
	FileId       int64
	ImageType    int32
	ImageBizType ImageBizType
	Size         int32
	Width        int32
	Height       int32
	Md5          []byte
	Url          string

	// EffectID show pic effect id.
	EffectID int32
	Flash    bool
}

func NewGroupImage

func NewGroupImage(id string, md5 []byte, fid int64, size, width, height, imageType int32) *GroupImageElement

func (*GroupImageElement) Pack

func (e *GroupImageElement) Pack() (r []*msg.Elem)

func (*GroupImageElement) Type

func (e *GroupImageElement) Type() ElementType

type GroupMessage

type GroupMessage struct {
	Id             int32
	InternalId     int32
	GroupCode      int64
	GroupName      string
	Sender         *Sender
	Time           int32
	Elements       []IMessageElement
	OriginalObject *msg.Message
}

func (*GroupMessage) ToString

func (msg *GroupMessage) ToString() (res string)

type GroupVoiceElement

type GroupVoiceElement struct {
	Data []byte
	Ptt  *msg.Ptt
}

func (*GroupVoiceElement) Type

func (e *GroupVoiceElement) Type() ElementType

type IMessageElement

type IMessageElement interface {
	Type() ElementType
}

func NewDice

func NewDice(value int32) IMessageElement

func ParseMessageElems

func ParseMessageElems(elems []*msg.Elem) []IMessageElement

type IRichMessageElement

type IRichMessageElement interface {
	Pack() []*msg.Elem
}

type ImageBizType

type ImageBizType uint32
const (
	UnknownBizType  ImageBizType = 0
	CustomFaceImage ImageBizType = 1
	HotImage        ImageBizType = 2
	DouImage        ImageBizType = 3 // 斗图
	ZhiTuImage      ImageBizType = 4
	StickerImage    ImageBizType = 7
	SelfieImage     ImageBizType = 8
	StickerAdImage  ImageBizType = 9
	RelatedEmoImage ImageBizType = 10
	HotSearchImage  ImageBizType = 13
)

type LightAppElement

type LightAppElement struct {
	Content string
}

func NewLightApp

func NewLightApp(content string) *LightAppElement

func (*LightAppElement) Pack

func (e *LightAppElement) Pack() (r []*msg.Elem)

func (*LightAppElement) Type

func (e *LightAppElement) Type() ElementType

type MarketFaceElement

type MarketFaceElement struct {
	Name       string
	FaceId     []byte // decoded = mediaType == 2 ? string(FaceId) : hex.EncodeToString(FaceId).toLower().trimSpace(); download url param?
	TabId      int32
	ItemType   int32
	SubType    int32  // image type, 0 -> None 1 -> Magic Face 2 -> GIF 3 -> PNG
	MediaType  int32  // 1 -> Voice Face 2 -> dynamic face
	EncryptKey []byte // tea + xor, see EMosmUtils.class::a maybe useful?
	MagicValue string
}

func (*MarketFaceElement) Pack

func (e *MarketFaceElement) Pack() []*msg.Elem

func (*MarketFaceElement) Type

func (e *MarketFaceElement) Type() ElementType

type MusicShareElement

type MusicShareElement struct {
	MusicType  int    // 音乐类型,请使用 QQMusic 等常量
	Title      string // 标题(歌曲名)
	Brief      string
	Summary    string // 简介(歌手名)
	Url        string // 点击跳转链接
	PictureUrl string // 显示图片链接
	MusicUrl   string // 音乐播放链接
}

MusicShareElement 音乐分享卡片

请使用 SendGroupMusicShare 或者 SendFriendMusicShare 发送

func (*MusicShareElement) Type

func (e *MusicShareElement) Type() ElementType

Type implement message.IMessageElement

type PrivateMessage

type PrivateMessage struct {
	Id         int32
	InternalId int32
	Self       int64
	Target     int64
	Time       int32
	Sender     *Sender
	Elements   []IMessageElement
}

func (*PrivateMessage) ToString

func (msg *PrivateMessage) ToString() (res string)

type PrivateVoiceElement

type PrivateVoiceElement struct {
	Data []byte
	Ptt  *msg.Ptt
}

func (*PrivateVoiceElement) Type

func (e *PrivateVoiceElement) Type() ElementType

type RedBagElement

type RedBagElement struct {
	MsgType RedBagMessageType
	Title   string
}

func (*RedBagElement) Type

func (e *RedBagElement) Type() ElementType

type RedBagMessageType

type RedBagMessageType int
const (
	RedBagSimple             RedBagMessageType = 2
	RedBagLucky              RedBagMessageType = 3
	RedBagSimpleTheme        RedBagMessageType = 4
	RedBagLuckyTheme         RedBagMessageType = 5
	RedBagWord               RedBagMessageType = 6
	RedBagSimpleSpecify      RedBagMessageType = 7
	RedBagLuckySpecify       RedBagMessageType = 8
	RedBagSimpleSpecifyOver3 RedBagMessageType = 11
	RedBagLuckySpecifyOver3  RedBagMessageType = 12
	RedBagVoice              RedBagMessageType = 13
	RedBagLook               RedBagMessageType = 14 // ?
	RedBagVoiceC2C           RedBagMessageType = 15
	RedBagH5                 RedBagMessageType = 17
	RedBagKSong              RedBagMessageType = 18
	RedBagEmoji              RedBagMessageType = 19
	RedBagDraw               RedBagMessageType = 22
	RedBagH5Common           RedBagMessageType = 20
	RedBagWordChain          RedBagMessageType = 24
	RedBagKeyword            RedBagMessageType = 25 // ?
	RedBagDrawMultiModel     RedBagMessageType = 26 // ??
)

/com/tencent/mobileqq/data/MessageForQQWalletMsg.java

type ReplyElement

type ReplyElement struct {
	ReplySeq int32
	Sender   int64
	GroupID  int64 // 私聊回复群聊时
	Time     int32
	Elements []IMessageElement
}

func NewPrivateReply

func NewPrivateReply(m *PrivateMessage) *ReplyElement

func NewReply

func NewReply(m *GroupMessage) *ReplyElement

func (*ReplyElement) Type

func (e *ReplyElement) Type() ElementType

type Sender

type Sender struct {
	Uin           int64
	Nickname      string
	CardName      string
	AnonymousInfo *AnonymousInfo
	IsFriend      bool
}

func (*Sender) DisplayName

func (s *Sender) DisplayName() string

func (*Sender) IsAnonymous

func (s *Sender) IsAnonymous() bool

type SendingMessage

type SendingMessage struct {
	Elements []IMessageElement
}

func NewSendingMessage

func NewSendingMessage() *SendingMessage

func (*SendingMessage) Any

func (msg *SendingMessage) Any(filter func(e IMessageElement) bool) bool

func (*SendingMessage) Append

func (*SendingMessage) Count

func (msg *SendingMessage) Count(filter func(e IMessageElement) bool) (c int)

func (*SendingMessage) FirstOrNil

func (msg *SendingMessage) FirstOrNil(filter func(e IMessageElement) bool) IMessageElement

func (*SendingMessage) ToFragmented

func (msg *SendingMessage) ToFragmented() [][]IMessageElement

type ServiceElement

type ServiceElement struct {
	Id      int32
	Content string
	ResId   string
	SubType string
}

func NewRichJson

func NewRichJson(template string) *ServiceElement

func NewRichXml

func NewRichXml(template string, ResId int64) *ServiceElement

func NewUrlShare

func NewUrlShare(url, title, content, image string) *ServiceElement

func (*ServiceElement) Pack

func (e *ServiceElement) Pack() (r []*msg.Elem)

func (*ServiceElement) Type

func (e *ServiceElement) Type() ElementType

type ShortVideoElement

type ShortVideoElement struct {
	Name      string
	Uuid      []byte
	Size      int32
	ThumbSize int32
	Md5       []byte
	ThumbMd5  []byte
	Url       string
}

func (*ShortVideoElement) Pack

func (e *ShortVideoElement) Pack() (r []*msg.Elem)

func (*ShortVideoElement) Type

func (e *ShortVideoElement) Type() ElementType

type TempMessage

type TempMessage struct {
	Id        int32
	GroupCode int64
	GroupName string
	Self      int64
	Sender    *Sender
	Elements  []IMessageElement
}

func (*TempMessage) ToString

func (msg *TempMessage) ToString() (res string)

type TextElement

type TextElement struct {
	Content string
}

func NewText

func NewText(s string) *TextElement

func (*TextElement) Pack

func (e *TextElement) Pack() (r []*msg.Elem)

func (*TextElement) Type

func (e *TextElement) Type() ElementType

type VoiceElement

type VoiceElement struct {
	Name string
	Md5  []byte
	Size int32
	Url  string

	// --- sending ---
	Data []byte
}

func (*VoiceElement) Type

func (e *VoiceElement) Type() ElementType

Jump to

Keyboard shortcuts

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