bot_context

package
v0.0.5 Latest Latest
Warning

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

Go to latest
Published: Jan 23, 2025 License: GPL-3.0 Imports: 4 Imported by: 0

Documentation

Index

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
}

type MessageType

type MessageType int
const (
	DirectMessage MessageType = iota
	GroupMessage
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳