Documentation
¶
Index ¶
- func ElemsToString(elems []*MessageElement) string
- type BaseBuilder
- func (b *BaseBuilder) Append(elementType ElementType, content string, source string) *BaseBuilder
- func (b *BaseBuilder) Build() []*MessageElement
- func (b *BaseBuilder) Mention(id string) *BaseBuilder
- func (b *BaseBuilder) Quote(msg *BaseMessage) *BaseBuilder
- func (b *BaseBuilder) Text(text string) *BaseBuilder
- type BaseMessage
- type BotContext
- type ElementType
- type LoginStatus
- type MessageBuilder
- type MessageContext
- type MessageElement
- type MessageType
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ElemsToString ¶
func ElemsToString(elems []*MessageElement) string
Types ¶
type BaseBuilder ¶
type BaseBuilder struct {
// contains filtered or unexported fields
}
func NewBuilder ¶
func NewBuilder() *BaseBuilder
func (*BaseBuilder) Append ¶
func (b *BaseBuilder) Append(elementType ElementType, content string, source string) *BaseBuilder
func (*BaseBuilder) Build ¶
func (b *BaseBuilder) Build() []*MessageElement
func (*BaseBuilder) Mention ¶
func (b *BaseBuilder) Mention(id string) *BaseBuilder
func (*BaseBuilder) Quote ¶
func (b *BaseBuilder) Quote(msg *BaseMessage) *BaseBuilder
func (*BaseBuilder) Text ¶
func (b *BaseBuilder) Text(text string) *BaseBuilder
type BaseMessage ¶
type BaseMessage struct {
MessageType MessageType
ID string
Content string
Elements []*MessageElement
Sender *entity.Sender
Time time.Time
}
func UnmarshallMessage ¶
func UnmarshallMessage(str string) (*BaseMessage, error)
func (*BaseMessage) Marshall ¶
func (m *BaseMessage) Marshall() string
type BotContext ¶
type BotContext interface {
ID() string
Name() string
Protocol() string
Status() LoginStatus
NewMessageBuilder() MessageBuilder
SendDirectMessage(target entity.User, elements []*MessageElement) (*BaseMessage, error)
SendGroupMessage(target entity.Group, elements []*MessageElement) (*BaseMessage, error)
Contacts() []entity.User
Groups() []entity.Group
GetMessageFileUrl(msg *BaseMessage) (string, error)
}
type ElementType ¶
type ElementType int
const ( TextElement ElementType = iota QuoteElement MentionElement ImageElement VideoElement FileElement VoiceElement StickerElement LinkElement OtherElement )
type LoginStatus ¶
type LoginStatus int
const ( Offline LoginStatus = iota Online Connect Disconnect Reconnect )
type MessageBuilder ¶
type MessageBuilder interface {
Protocol() string
Text(text string) MessageBuilder
Quote(msg *BaseMessage) MessageBuilder
Mention(id string) MessageBuilder
ImageFromFile(path string) MessageBuilder
ImageFromUrl(url string) MessageBuilder
ImageFromData(data []byte) MessageBuilder
ReplyTo(msg MessageContext) (*BaseMessage, error)
Send(id string) (*BaseMessage, error)
}
type MessageContext ¶
type MessageContext interface {
Protocol() string
BotContext() BotContext
String() string
Message() *BaseMessage
SenderID() string
NewMessageBuilder() MessageBuilder
Reply(elements []*MessageElement) (*BaseMessage, error)
ReplyText(a ...any) (*BaseMessage, error)
}
type MessageElement ¶
type MessageElement struct {
Type ElementType
Content string
Source string
}
Click to show internal directories.
Click to hide internal directories.