Documentation
¶
Index ¶
- Constants
- Variables
- func ElementsHasType(elems []IMessageElement, t ElementType) bool
- func PackElements(msgElems []IMessageElement) []*message.Elem
- func PackElementsToBody(msgElems []IMessageElement) (msgBody *message.MessageBody)
- func ToReadableString(m []IMessageElement) string
- func ToReadableStringEle(elem IMessageElement) string
- type AnonymousInfo
- type AtElement
- type AtType
- type Config
- type Detail
- type ElementBuilder
- type ElementType
- type FaceElement
- type FileElement
- type FingerGuessingType
- type ForwardMessage
- type ForwardNode
- type GroupEssenceMessage
- type GroupMessage
- type IMessage
- type IMessageElement
- type ImageElement
- type LightAppElement
- type Meta
- type MsgContentBuilder
- type MultiItem
- type MultiMessage
- type MultiMsgLightApp
- type MultiMsgLightAppExtra
- type MultiSource
- type MultiSummary
- type MultiTitle
- type News
- type PrivateMessage
- type ReplyElement
- type Sender
- type SendingMessage
- type ShortVideoElement
- type Source
- type SourceType
- type TempMessage
- type TextElement
- type VideoThumb
- type VoiceElement
- type XMLElement
Constants ¶
View Source
const (
AtTypeGroupMember = 0 // At群成员
)
Variables ¶
View Source
var DefaultThumb []byte
Functions ¶
func ElementsHasType ¶
func ElementsHasType(elems []IMessageElement, t ElementType) bool
func PackElements ¶
func PackElements(msgElems []IMessageElement) []*message.Elem
func PackElementsToBody ¶
func PackElementsToBody(msgElems []IMessageElement) (msgBody *message.MessageBody)
func ToReadableString ¶
func ToReadableString(m []IMessageElement) string
func ToReadableStringEle ¶
func ToReadableStringEle(elem IMessageElement) string
Types ¶
type AnonymousInfo ¶
type AtElement ¶
func (*AtElement) BuildElement ¶
func (*AtElement) Type ¶
func (e *AtElement) Type() ElementType
type ElementBuilder ¶
type ElementType ¶
type ElementType int
const ( Text ElementType = iota // 文本 Image // 图片 Face // 表情 At // 艾特 Reply // 回复 Service // 服务 Forward // 转发 File // 文件 Voice // 语音 Video // 视频 LightApp // 轻应用 RedBag // 红包 )
type FaceElement ¶
type FaceElement struct {
FaceID uint16
ResultID uint16 // 猜拳和骰子的值
// contains filtered or unexported fields
}
func NewDice ¶ added in v0.1.1
func NewDice(value uint16) *FaceElement
func NewFace ¶ added in v0.1.1
func NewFace(id uint16) *FaceElement
func NewFingerGuessing ¶ added in v0.1.1
func NewFingerGuessing(value FingerGuessingType) *FaceElement
func (*FaceElement) BuildElement ¶
func (e *FaceElement) BuildElement() []*message.Elem
func (*FaceElement) Type ¶
func (e *FaceElement) Type() ElementType
type FileElement ¶
type FileElement struct {
FileSize uint64
FileName string
FileMd5 []byte
FileURL string
FileID string // group
FileUUID string // private
FileHash string
// send
FileStream io.ReadSeeker
FileSha1 []byte
}
func NewFile ¶
func NewFile(data []byte, fileName string) *FileElement
func NewLocalFile ¶
func NewLocalFile(path string, name ...string) (*FileElement, error)
func NewStreamFile ¶
func NewStreamFile(r io.ReadSeeker, fileName string) *FileElement
func (*FileElement) BuildContent ¶
func (e *FileElement) BuildContent() []byte
func (*FileElement) Type ¶
func (e *FileElement) Type() ElementType
type FingerGuessingType ¶ added in v0.1.1
type FingerGuessingType uint16
const ( FingerGuessingRock FingerGuessingType = 3 // 石头 FingerGuessingScissors FingerGuessingType = 2 // 剪刀 FingerGuessingPaper FingerGuessingType = 1 // 布 )
func (FingerGuessingType) String ¶ added in v0.1.1
func (m FingerGuessingType) String() string
type ForwardMessage ¶
type ForwardMessage struct {
IsGroup bool
SelfID uint32
ResID string
Nodes []*ForwardNode
}
func NewForward ¶
func NewForward(resid string, nodes []*ForwardNode) *ForwardMessage
func NewForwardWithNodes ¶
func NewForwardWithNodes(nodes []*ForwardNode) *ForwardMessage
func NewForwardWithResID ¶
func NewForwardWithResID(resid string) *ForwardMessage
func (*ForwardMessage) BuildElement ¶
func (e *ForwardMessage) BuildElement() []*message.Elem
func (*ForwardMessage) Type ¶
func (e *ForwardMessage) Type() ElementType
type ForwardNode ¶
type ForwardNode struct {
GroupID uint32
SenderID uint32
SenderName string
Time uint32
Message []IMessageElement
}
type GroupEssenceMessage ¶
type GroupEssenceMessage struct {
OperatorUin uint32
OperatorUID string
OperatorTime uint64
CanRemove bool
Message *GroupMessage
}
type GroupMessage ¶
type GroupMessage struct {
ID uint32
InternalID uint32
GroupUin uint32
GroupName string
Sender *Sender
Time uint32
Elements []IMessageElement
OriginalObject *message.PushMsgBody
}
func ParseGroupMessage ¶
func ParseGroupMessage(msg *message.PushMsgBody) *GroupMessage
func (*GroupMessage) Chat ¶
func (msg *GroupMessage) Chat() int64
func (*GroupMessage) GetElements ¶
func (msg *GroupMessage) GetElements() []IMessageElement
func (*GroupMessage) Texts ¶
func (msg *GroupMessage) Texts() []string
func (*GroupMessage) ToString ¶
func (msg *GroupMessage) ToString() string
type IMessage ¶
type IMessage interface {
GetElements() []IMessageElement
Chat() int64
ToString() string
Texts() []string
}
type IMessageElement ¶
type IMessageElement interface {
Type() ElementType
}
func ParseMessageBody ¶
func ParseMessageBody(body *message.MessageBody, isGroup bool) []IMessageElement
func ParseMessageElements ¶
func ParseMessageElements(msg []*message.Elem) []IMessageElement
type ImageElement ¶
type ImageElement struct {
ImageID string
FileUUID string // only in new protocol photo
Size uint32
Width uint32
Height uint32
URL string
SubType int32
// EffectID show pic effect id.
EffectID int32 // deprecated
Flash bool
// send & receive
Summary string
Md5 []byte // only in old protocol photo
IsGroup bool
Sha1 []byte
MsgInfo *oidb.MsgInfo
Stream io.ReadSeeker
CompatFace *message.CustomFace // GroupImage
CompatImage *message.NotOnlineImage // FriendImage
}
func NewFileImage ¶
func NewFileImage(path string, summary ...string) (*ImageElement, error)
func NewImage ¶
func NewImage(data []byte, summary ...string) *ImageElement
func NewStreamImage ¶
func NewStreamImage(r io.ReadSeeker, summary ...string) *ImageElement
func (*ImageElement) BuildElement ¶
func (e *ImageElement) BuildElement() []*message.Elem
func (*ImageElement) Type ¶
func (e *ImageElement) Type() ElementType
type LightAppElement ¶
func NewLightApp ¶
func NewLightApp(content string) *LightAppElement
func (*LightAppElement) BuildElement ¶
func (e *LightAppElement) BuildElement() []*message.Elem
func (*LightAppElement) Type ¶
func (e *LightAppElement) Type() ElementType
type MsgContentBuilder ¶
type MsgContentBuilder interface {
BuildContent() []byte
}
type MultiItem ¶
type MultiItem struct {
Layout int `xml:"layout,attr"`
Title []MultiTitle `xml:"title"`
Summary MultiSummary `xml:"summary"`
}
type MultiMessage ¶
type MultiMessage struct {
XMLName xml.Name `xml:"msg"`
ServiceID uint `xml:"serviceID,attr"`
TemplateID int `xml:"templateID,attr"`
Action string `xml:"action,attr"`
Brief string `xml:"brief,attr"`
FileName string `xml:"m_fileName,attr"`
ResID string `xml:"m_resid,attr"`
Total int `xml:"tSum,attr"`
Flag int `xml:"flag,attr"`
Item MultiItem `xml:"item"`
Source MultiSource `xml:"source"`
}
type MultiMsgLightApp ¶
type MultiMsgLightAppExtra ¶
type MultiSource ¶
type MultiSource struct {
Name string `xml:"name,attr"`
}
type MultiSummary ¶
type MultiTitle ¶
type PrivateMessage ¶
type PrivateMessage struct {
ID uint32
InternalID uint32
ClientSeq uint32
Self uint32
Target uint32
Time uint32
Sender *Sender
Elements []IMessageElement
}
func ParsePrivateMessage ¶
func ParsePrivateMessage(msg *message.PushMsgBody) *PrivateMessage
func (*PrivateMessage) Chat ¶
func (msg *PrivateMessage) Chat() int64
func (*PrivateMessage) GetElements ¶
func (msg *PrivateMessage) GetElements() []IMessageElement
func (*PrivateMessage) Texts ¶
func (msg *PrivateMessage) Texts() []string
func (*PrivateMessage) ToString ¶
func (msg *PrivateMessage) ToString() string
type ReplyElement ¶
type ReplyElement struct {
ReplySeq uint32
SenderUin uint32
SenderUID string
GroupUin uint32 // 私聊回复群聊时
Time uint32
Elements []IMessageElement
}
func NewGroupReply ¶
func NewGroupReply(m *GroupMessage) *ReplyElement
func NewPrivateReply ¶
func NewPrivateReply(m *PrivateMessage) *ReplyElement
func (*ReplyElement) BuildElement ¶
func (e *ReplyElement) BuildElement() []*message.Elem
func (*ReplyElement) Type ¶
func (e *ReplyElement) Type() ElementType
type Sender ¶
type Sender struct {
Uin uint32
UID string
Nickname string
CardName string
AnonymousInfo *AnonymousInfo
IsFriend bool
}
func (*Sender) IsAnonymous ¶
type SendingMessage ¶
type SendingMessage struct {
Elements []IMessageElement
}
func NewSendingMessage ¶
func NewSendingMessage() *SendingMessage
func (*SendingMessage) Append ¶
func (msg *SendingMessage) Append(e IMessageElement) *SendingMessage
Append 要传入msg的引用
func (*SendingMessage) FirstOrNil ¶
func (msg *SendingMessage) FirstOrNil(f func(element IMessageElement) bool) IMessageElement
func (*SendingMessage) GetElems ¶
func (msg *SendingMessage) GetElems() []IMessageElement
type ShortVideoElement ¶
type ShortVideoElement struct {
Name string
UUID string
Size uint32
URL string
Duration uint32
// send
Thumb *VideoThumb
Summary string
Md5 []byte
Sha1 []byte
Stream io.ReadSeeker
MsgInfo *oidb.MsgInfo
Compat *message.VideoFile
}
func NewFileVideo ¶
func NewFileVideo(path string, thumb []byte, summary ...string) (*ShortVideoElement, error)
func NewStreamVideo ¶
func NewStreamVideo(r io.ReadSeeker, thumb io.ReadSeeker, summary ...string) *ShortVideoElement
func NewVideo ¶
func NewVideo(data, thumb []byte, summary ...string) *ShortVideoElement
func (*ShortVideoElement) BuildElement ¶
func (e *ShortVideoElement) BuildElement() []*message.Elem
func (*ShortVideoElement) Type ¶
func (e *ShortVideoElement) Type() ElementType
type Source ¶
type Source struct {
SourceType SourceType
PrimaryID int64 // 群号/QQ号/guild_id
}
Source 消息来源
type SourceType ¶
type SourceType byte
const ( SourcePrivate SourceType = 1 << iota SourceGroup SourceType = 1 << iota )
MessageSourceType 常量
func (SourceType) String ¶
func (t SourceType) String() string
type TempMessage ¶
type TempMessage struct {
ID uint32
GroupUin uint32
GroupName string
Self uint32
Sender *Sender
Elements []IMessageElement
}
func ParseTempMessage ¶
func ParseTempMessage(msg *message.PushMsgBody) *TempMessage
func (*TempMessage) Chat ¶
func (msg *TempMessage) Chat() int64
func (*TempMessage) GetElements ¶
func (msg *TempMessage) GetElements() []IMessageElement
func (*TempMessage) Texts ¶
func (msg *TempMessage) Texts() []string
func (*TempMessage) ToString ¶
func (msg *TempMessage) ToString() string
type TextElement ¶
type TextElement struct {
Content string
}
func NewText ¶
func NewText(s string) *TextElement
func (*TextElement) BuildElement ¶
func (e *TextElement) BuildElement() []*message.Elem
func (*TextElement) Type ¶
func (e *TextElement) Type() ElementType
type VideoThumb ¶
type VideoThumb struct {
Stream io.ReadSeeker
Size uint32
Md5 []byte
Sha1 []byte
Width uint32
Height uint32
}
func NewVideoThumb ¶
func NewVideoThumb(r io.ReadSeeker) *VideoThumb
type VoiceElement ¶
type VoiceElement struct {
Name string
UUID string
Size uint32
URL string
Md5 []byte
Sha1 []byte
Node *oidb.IndexNode
// --- sending ---
MsgInfo *oidb.MsgInfo
Compat []byte
Duration uint32
Stream io.ReadSeeker
Summary string
}
func NewFileRecord ¶
func NewFileRecord(path string, summary ...string) (*VoiceElement, error)
func NewRecord ¶
func NewRecord(data []byte, summary ...string) *VoiceElement
func NewStreamRecord ¶
func NewStreamRecord(r io.ReadSeeker, summary ...string) *VoiceElement
func (*VoiceElement) BuildElement ¶
func (e *VoiceElement) BuildElement() []*message.Elem
func (*VoiceElement) Type ¶
func (e *VoiceElement) Type() ElementType
type XMLElement ¶ added in v0.1.2
func NewXML ¶ added in v0.1.2
func NewXML(content string) *XMLElement
func NewXMLWithID ¶ added in v0.1.2
func NewXMLWithID(id int, content string) *XMLElement
func (*XMLElement) BuildElement ¶ added in v0.1.2
func (e *XMLElement) BuildElement() []*message.Elem
func (*XMLElement) Type ¶ added in v0.1.2
func (e *XMLElement) Type() ElementType
Click to show internal directories.
Click to hide internal directories.