message

package
v0.0.24 Latest Latest
Warning

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

Go to latest
Published: Aug 23, 2024 License: AGPL-3.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AtTypeGroupMember = 0 // At群成员
)

Variables

This section is empty.

Functions

func ElementsHasType added in v0.0.17

func ElementsHasType(elems []IMessageElement, t ElementType) bool

func PackElements added in v0.0.11

func PackElements(msgElems []IMessageElement) []*message.Elem

func PackElementsToBody added in v0.0.9

func PackElementsToBody(msgElems []IMessageElement) (msgBody *message.MessageBody)

func ToReadableString

func ToReadableString(m []IMessageElement) string

Types

type AnonymousInfo

type AnonymousInfo struct {
	AnonymousId   string
	AnonymousNick string
}

type AtElement

type AtElement struct {
	TargetUin uint32
	TargetUid string
	Display   string
	SubType   AtType
}

func NewAt

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

func (*AtElement) BuildElement

func (e *AtElement) BuildElement() []*message.Elem

func (*AtElement) Type

func (e *AtElement) Type() ElementType

type AtType

type AtType int

type Config added in v0.0.11

type Config struct {
	Autosize int64  `json:"autosize"`
	Forward  int64  `json:"forward"`
	Round    int64  `json:"round"`
	Type     string `json:"type"`
	Width    int64  `json:"width"`
}

type Detail added in v0.0.11

type Detail struct {
	News    []News `json:"news"`
	Resid   string `json:"resid"`
	Source  string `json:"source"`
	Summary string `json:"summary"`
	UniSeq  string `json:"uniseq"`
}

type ElementBuilder added in v0.0.9

type ElementBuilder interface {
	BuildElement() []*message.Elem
}

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
	// contains filtered or unexported fields
}

func (*FaceElement) BuildElement

func (e *FaceElement) BuildElement() []*message.Elem

func (*FaceElement) Type

func (e *FaceElement) Type() ElementType

type FileElement added in v0.0.15

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 added in v0.0.17

func NewFile(data []byte, fileName string) *FileElement

func NewLocalFile added in v0.0.17

func NewLocalFile(path string) (*FileElement, error)

func NewStreamFile added in v0.0.17

func NewStreamFile(r io.ReadSeeker, fileName string) *FileElement

func (*FileElement) BuildContent added in v0.0.17

func (e *FileElement) BuildContent() []byte

func (*FileElement) Type added in v0.0.15

func (e *FileElement) Type() ElementType

type ForwardMessage added in v0.0.11

type ForwardMessage struct {
	ResID string
	Nodes []*ForwardNode
}

func NewFoward added in v0.0.11

func NewFoward(resid string) *ForwardMessage

func NewNodeFoward added in v0.0.11

func NewNodeFoward(nodes []*ForwardNode) *ForwardMessage

func (*ForwardMessage) BuildElement added in v0.0.11

func (e *ForwardMessage) BuildElement() []*message.Elem

func (*ForwardMessage) Type added in v0.0.11

func (e *ForwardMessage) Type() ElementType

type ForwardNode added in v0.0.11

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

type FriendImageElement

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

	// Send
	MsgInfo     *oidb.MsgInfo
	Stream      []byte
	CompatImage *message.NotOnlineImage

	Flash bool
}

type GroupImageElement

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

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

	// Send
	MsgInfo    *oidb.MsgInfo
	Stream     []byte
	CompatFace []byte
}

type GroupMessage

type GroupMessage struct {
	Id             int32
	InternalId     int32
	GroupUin       uint32
	GroupName      string
	Sender         *Sender
	Time           uint64
	Elements       []IMessageElement
	OriginalObject *message.PushMsgBody
}

func ParseGroupMessage

func ParseGroupMessage(msg *message.PushMsg) *GroupMessage

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 added in v0.0.11

func ParseMessageBody(body *message.MessageBody, isGroup bool) []IMessageElement

type ImageElement added in v0.0.11

type ImageElement struct {
	ImageId   string
	FileId    int64
	ImageType int32
	Size      uint32
	Width     uint32
	Height    uint32
	Url       string

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

	// send
	Summary     string
	Ext         string
	Md5         []byte
	Sha1        []byte
	MsgInfo     *oidb.MsgInfo
	Stream      io.ReadSeeker
	CompatFace  *message.CustomFace     // GroupImage
	CompatImage *message.NotOnlineImage // FriendImage
}

func NewFileImage added in v0.0.11

func NewFileImage(path string, Summary ...string) (*ImageElement, error)

func NewImage added in v0.0.11

func NewImage(data []byte, Summary ...string) *ImageElement

func NewStreamImage added in v0.0.11

func NewStreamImage(r io.ReadSeeker, Summary ...string) *ImageElement

func (*ImageElement) BuildElement added in v0.0.11

func (e *ImageElement) BuildElement() []*message.Elem

func (*ImageElement) Type added in v0.0.11

func (e *ImageElement) Type() ElementType

type LightAppElement added in v0.0.11

type LightAppElement struct {
	AppName string
	Content string
}

func NewLightApp added in v0.0.11

func NewLightApp(content string) *LightAppElement

func (*LightAppElement) BuildElement added in v0.0.11

func (e *LightAppElement) BuildElement() []*message.Elem

func (*LightAppElement) Type added in v0.0.11

func (e *LightAppElement) Type() ElementType

type Meta added in v0.0.11

type Meta struct {
	Detail Detail `json:"detail"`
}

type MsgContentBuilder added in v0.0.17

type MsgContentBuilder interface {
	BuildContent() []byte
}

type MultiItem added in v0.0.11

type MultiItem struct {
	Layout  int          `xml:"layout,attr"`
	Title   []MultiTitle `xml:"title"`
	Summary MultiSummary `xml:"summary"`
}

type MultiMessage added in v0.0.11

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 added in v0.0.11

type MultiMsgLightApp struct {
	App    string `json:"app"`
	Config Config `json:"config"`
	Desc   string `json:"desc"`
	Extra  string `json:"extra"`
	Meta   Meta   `json:"meta"`
	Prompt string `json:"prompt"`
	Ver    string `json:"ver"`
	View   string `json:"view"`
}

type MultiMsgLightAppExtra added in v0.0.11

type MultiMsgLightAppExtra struct {
	FileName string `json:"filename"`
	Sum      int    `json:"tsum"`
}

type MultiSource added in v0.0.11

type MultiSource struct {
	Name string `xml:"name,attr"`
}

type MultiSummary added in v0.0.11

type MultiSummary struct {
	Color string `xml:"color,attr"`
	Text  string `xml:",chardata"`
}

type MultiTitle added in v0.0.11

type MultiTitle struct {
	Color string `xml:"color,attr"`
	Size  int    `xml:"size,attr"`
	Text  string `xml:",chardata"`
}

type News added in v0.0.11

type News struct {
	Text string `json:"text"`
}

type PrivateMessage

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

func ParsePrivateMessage

func ParsePrivateMessage(msg *message.PushMsg) *PrivateMessage

func (*PrivateMessage) ToString added in v0.0.11

func (msg *PrivateMessage) ToString() string

type ReplyElement

type ReplyElement struct {
	ReplySeq  uint32
	SenderUin uint32
	SenderUid string
	GroupUin  uint32 // 私聊回复群聊时
	Time      uint32
	Elements  []IMessageElement
}

func NewGroupReply added in v0.0.11

func NewGroupReply(m *GroupMessage) *ReplyElement

func NewPrivateReply added in v0.0.11

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

func (s *Sender) IsAnonymous() bool

type SendingMessage

type SendingMessage struct {
	Elements []IMessageElement
}

func NewSendingMessage

func NewSendingMessage() *SendingMessage

func (*SendingMessage) Append

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      []byte
	Size      int32
	ThumbSize int32
	Md5       []byte
	ThumbMd5  []byte
	Url       string
}

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
	SecondaryID int64 // channel_id
}

Source 消息来源

type SourceType

type SourceType byte
const (
	SourcePrivate      SourceType = 1 << iota
	SourceGroup        SourceType = 1 << iota
	SourceGuildChannel SourceType = 1 << iota
	SourceGuildDirect  SourceType = 1 << iota
)

MessageSourceType 常量

func (SourceType) String

func (t SourceType) String() string

type TempMessage

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

func ParseTempMessage

func ParseTempMessage(msg *message.PushMsg) *TempMessage

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 VoiceElement

type VoiceElement struct {
	Name 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 added in v0.0.11

func NewFileRecord(path string, Summary ...string) (*VoiceElement, error)

func NewRecord added in v0.0.11

func NewRecord(data []byte, Summary ...string) *VoiceElement

func NewStreamRecord added in v0.0.11

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

Jump to

Keyboard shortcuts

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