qbot

package
v0.0.7 Latest Latest
Warning

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

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

README

pkg/lagrange

用于 Jel1ySpot/GoroBot 的基于 tencent-connect/botgo 的 QQBot 适配器 支持 Webhook 和基本的消息收发。

快速开始

  1. 载入包
    • import "github.com/Jel1ySpot/GoroBot/pkg/qbot"
  2. 创建实例并使用
    • grb.Use(qbot.Create())
  3. 填写配置文件
填写配置文件

首次运行后,会在 conf/qbot 目录下创建空配置文件。 配置示例:

debug: false # botgo 库的 Debug 开关
api:
   appid: "your app id"
   secret: "your secret key"
http:
   host: "0.0.0.0"
   path: "/bot"
   port: 8443
   base_url: "http://your.domain.net:8443"
   tls:
      cert_path: "/path/to/server.crt"
      key_path: "/path/to/server.key"

Documentation

Index

Constants

View Source
const (
	ImageFileType uint64 = iota + 1
	VideoFileType
	VoiceFileType
)
View Source
const (
	DirectMessage botc.MessageType = iota
	GroupMessage
	GuildMessage
)
View Source
const (
	DefaultConfigPath = "conf/qbot/"
)

Variables

View Source
var ExampleConfig []byte

Functions

func FormatID

func FormatID(type_ string, v ...string) string

func GetValFromFramework

func GetValFromFramework(api openapi.OpenAPI, key string) unsafe.Pointer

func NativePost

func NativePost(api openapi.OpenAPI, endpoint string, body interface{}, result interface{}, params map[string]string) (interface{}, error)

func ParseID

func ParseID(idInfo string) (string, bool)

func ParseUser

func ParseUser(user *dto.User, member *dto.Member) *entity.Sender

func Sender

func Sender(message *Message) *entity.Sender

Types

type Config

type Config struct {
	Debug       bool                   `yaml:"debug"`
	Credentials token.QQBotCredentials `yaml:"api"`
	Http        struct {
		Host    string `yaml:"host"`
		Port    uint   `yaml:"port"`
		Path    string `yaml:"path"`
		BaseURL string `yaml:"base_url"`
		TLS     struct {
			CertPath string `yaml:"cert_path"`
			KeyPath  string `yaml:"key_path"`
		} `yaml:"tls"`
	} `yaml:"http"`
}

type Context

type Context struct {
	*Service
}

func NewContext

func NewContext(service *Service) *Context

func (*Context) Contacts

func (c *Context) Contacts() []entity.User

func (*Context) GetMessageFileUrl

func (c *Context) GetMessageFileUrl(msg *botc.BaseMessage) (string, error)

func (*Context) Groups

func (c *Context) Groups() []entity.Group

func (*Context) ID

func (c *Context) ID() string

func (*Context) Name

func (c *Context) Name() string

func (*Context) NewMessageBuilder

func (c *Context) NewMessageBuilder() botc.MessageBuilder

func (*Context) Protocol

func (c *Context) Protocol() string

func (*Context) SendDirectMessage

func (c *Context) SendDirectMessage(target entity.User, elements []*botc.MessageElement) (*botc.BaseMessage, error)

func (*Context) SendGroupMessage

func (c *Context) SendGroupMessage(target entity.Group, elements []*botc.MessageElement) (*botc.BaseMessage, error)

func (*Context) Status

func (c *Context) Status() botc.LoginStatus

type FileInfo

type FileInfo struct {
	ID       string `json:"id,omitempty"`
	FileUUID string `json:"file_uuid,omitempty"`
	FileInfo []byte `json:"file_info,omitempty"`
	TTL      uint   `json:"ttl,omitempty"`
}

type FileUpload

type FileUpload struct {
	FileType uint64 `json:"file_type,omitempty"` // 业务类型,图片,文件,语音,视频 文件类型,取值:1图片,2视频,3语音(目前语音只支持silk格式)
	FileData []byte `json:"file_data,omitempty"`
}

type Message

type Message struct {
	// contains filtered or unexported fields
}

func (*Message) ToBase

func (m *Message) ToBase(grb *GoroBot.Instant) *botc.BaseMessage

type MessageBuilder

type MessageBuilder struct {
	*dto.MessageToCreate

	MediaData []byte
	MediaType uint64
	// contains filtered or unexported fields
}

func NewMessageBuilder

func NewMessageBuilder(from *MessageContext, service *Service) *MessageBuilder

func (*MessageBuilder) Build

func (m *MessageBuilder) Build() *dto.MessageToCreate

func (*MessageBuilder) CmdEnter

func (m *MessageBuilder) CmdEnter(text string) *MessageBuilder

func (*MessageBuilder) CmdInput

func (m *MessageBuilder) CmdInput(text, show string, reference bool) *MessageBuilder

func (*MessageBuilder) Emoji

func (m *MessageBuilder) Emoji(id uint) *MessageBuilder

func (*MessageBuilder) ImageFromData

func (m *MessageBuilder) ImageFromData(data []byte) botc.MessageBuilder

func (*MessageBuilder) ImageFromFile

func (m *MessageBuilder) ImageFromFile(path string) botc.MessageBuilder

func (*MessageBuilder) ImageFromUrl

func (m *MessageBuilder) ImageFromUrl(url string) botc.MessageBuilder

func (*MessageBuilder) Mention

func (m *MessageBuilder) Mention(id string) botc.MessageBuilder

func (*MessageBuilder) Protocol

func (m *MessageBuilder) Protocol() string

func (*MessageBuilder) Quote

func (*MessageBuilder) ReplyTo

func (*MessageBuilder) Send

func (m *MessageBuilder) Send(id string) (*botc.BaseMessage, error)

func (*MessageBuilder) Text

func (m *MessageBuilder) Text(text string) botc.MessageBuilder

func (*MessageBuilder) VideoFromData

func (m *MessageBuilder) VideoFromData(data []byte) *MessageBuilder

func (*MessageBuilder) VideoFromFile

func (m *MessageBuilder) VideoFromFile(path string) *MessageBuilder

func (*MessageBuilder) VideoFromUrl

func (m *MessageBuilder) VideoFromUrl(url string) *MessageBuilder

func (*MessageBuilder) VoiceFromData

func (m *MessageBuilder) VoiceFromData(data []byte) *MessageBuilder

func (*MessageBuilder) VoiceFromFile

func (m *MessageBuilder) VoiceFromFile(path string) *MessageBuilder

func (*MessageBuilder) VoiceFromUrl

func (m *MessageBuilder) VoiceFromUrl(url string) *MessageBuilder

type MessageContext

type MessageContext struct {
	// contains filtered or unexported fields
}

func (*MessageContext) BotContext

func (m *MessageContext) BotContext() botc.BotContext

func (*MessageContext) Message

func (m *MessageContext) Message() *botc.BaseMessage

func (*MessageContext) NewMessageBuilder

func (m *MessageContext) NewMessageBuilder() botc.MessageBuilder

func (*MessageContext) Protocol

func (m *MessageContext) Protocol() string

func (*MessageContext) Reply

func (m *MessageContext) Reply(elements []*botc.MessageElement) (*botc.BaseMessage, error)

func (*MessageContext) ReplyText

func (m *MessageContext) ReplyText(a ...any) (*botc.BaseMessage, error)

func (*MessageContext) SenderID

func (m *MessageContext) SenderID() string

func (*MessageContext) String

func (m *MessageContext) String() string

type Service

type Service struct {
	// contains filtered or unexported fields
}

func Create

func Create() *Service

func (*Service) GenResourceURL

func (s *Service) GenResourceURL(id string) string

func (*Service) Init

func (s *Service) Init(grb *GoroBot.Instant) error

func (*Service) Name

func (s *Service) Name() string

func (*Service) Release

func (s *Service) Release(grb *GoroBot.Instant) error

func (*Service) UploadFileData

func (s *Service) UploadFileData(id string, fileType uint64, data []byte) (*FileInfo, error)

Jump to

Keyboard shortcuts

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