Documentation
¶
Index ¶
- Constants
- type ActionMux
- type AnyEvent
- type ChannelCreateNoticeEvent
- type ChannelDeleteNoticeEvent
- type ChannelMemberDecreaseNoticeEvent
- type ChannelMemberIncreaseNoticeEvent
- type ChannelMessageDeleteNoticeEvent
- type ChannelMessageEvent
- type Config
- type ConfigComm
- type ConfigCommHTTP
- type ConfigCommHTTPWebhook
- type ConfigCommWS
- type ConfigCommWSReverse
- type ConfigHeartbeat
- type ConnectMetaEvent
- type EasierMap
- type Event
- type FriendDecreaseNoticeEvent
- type FriendIncreaseNoticeEvent
- type GroupMemberDecreaseNoticeEvent
- type GroupMemberIncreaseNoticeEvent
- type GroupMessageDeleteNoticeEvent
- type GroupMessageEvent
- type GuildMemberDecreaseNoticeEvent
- type GuildMemberIncreaseNoticeEvent
- type Handler
- type HandlerFunc
- type HeartbeatMetaEvent
- type Message
- type MessageEvent
- type MetaEvent
- type NoticeEvent
- type OneBot
- func (ob *OneBot) CallAction(action string, params map[string]interface{}) Response
- func (ob *OneBot) GetUserAgent() string
- func (ob *OneBot) Handle(handler Handler)
- func (ob *OneBot) HandleFunc(handler func(ResponseWriter, *Request))
- func (ob *OneBot) Push(event AnyEvent) bool
- func (ob *OneBot) PushWithSelf(event AnyEvent, self *Self) bool
- func (ob *OneBot) Run()
- func (ob *OneBot) Shutdown()
- type ParamGetter
- func (p *ParamGetter) GetBool(key string) (bool, bool)
- func (p *ParamGetter) GetBytesOrBase64(key string) ([]byte, bool)
- func (p *ParamGetter) GetFloat64(key string) (float64, bool)
- func (p *ParamGetter) GetInt64(key string) (int64, bool)
- func (p *ParamGetter) GetMessage(key string) (Message, bool)
- func (p *ParamGetter) GetString(key string) (string, bool)
- type PrivateMessageDeleteNoticeEvent
- type PrivateMessageEvent
- type Request
- type RequestComm
- type RequestEvent
- type Response
- type ResponseWriter
- type Segment
- func AudioSegment(fileID string) Segment
- func CustomSegment(type_ string, data map[string]interface{}) Segment
- func FileSegment(fileID string) Segment
- func ImageSegment(fileID string) Segment
- func LocationSegment(latitude float64, longitude float64, title string, content string) Segment
- func MentionAllSegment() Segment
- func MentionSegment(userID string) Segment
- func ReplySegment(messageID string, userID string) Segment
- func TextSegment(text string) Segment
- func VideoSegment(fileID string) Segment
- func VoiceSegment(fileID string) Segment
- type Self
- type StatusUpdateMetaEvent
- type VersionStruct
Constants ¶
const ( ActionUploadFile = "upload_file" // 上传文件 ActionUploadFileFragmented = "upload_file_fragmented" // 分片上传文件 ActionGetFile = "get_file" // 获取文件 ActionGetFileFragmented = "get_file_fragmented" // 分片获取文件 )
const ( GroupMemberIncreaseNoticeEventSubTypeJoin = "join" // 成员主动加入 GroupMemberIncreaseNoticeEventSubTypeInvite = "invite" // 成员被邀请加入 )
const ( GroupMemberDecreaseNoticeEventSubTypeLeave = "leave" // 成员主动退出 GroupMemberDecreaseNoticeEventSubTypeKick = "kick" // 成员被踢出 )
const ( GroupMessageDeleteNoticeEventSubTypeRecall = "recall" // 发送者主动删除 GroupMessageDeleteNoticeEventSubTypeDelete = "delete" // 管理员删除 )
const ( ActionGetGroupInfo = "get_group_info" // 获取群信息 ActionGetGroupList = "get_group_list" // 获取群列表 ActionGetGroupMemberInfo = "get_group_member_info" // 获取群成员信息 ActionGetGroupMemberList = "get_group_member_list" // 获取群成员列表 ActionSetGroupName = "set_group_name" // 设置群名称 ActionLeaveGroup = "leave_group" // 退出群 )
const ( GuildMemberIncreaseNoticeEventSubTypeJoin = "join" // 成员主动加入 GuildMemberIncreaseNoticeEventSubTypeInvite = "invite" // 成员被邀请加入 )
const ( GuildMemberDecreaseNoticeEventSubTypeLeave = "leave" // 成员主动退出 GuildMemberDecreaseNoticeEventSubTypeKick = "kick" // 成员被踢出 )
const ( ChannelMemberIncreaseNoticeEventSubTypeJoin = "join" // 成员主动加入 ChannelMemberIncreaseNoticeEventSubTypeInvite = "invite" // 成员被邀请加入 )
const ( ChannelMemberDecreaseNoticeEventSubTypeLeave = "leave" // 成员主动退出 ChannelMemberDecreaseNoticeEventSubTypeKick = "kick" // 成员被踢出 )
const ( ChannelMessageDeleteNoticeEventSubTypeRecall = "recall" // 发送者主动删除 ChannelMessageDeleteNoticeEventSubTypeDelete = "delete" // 管理员删除 )
const ( ActionGetGuildInfo = "get_guild_info" // 获取群组信息 ActionGetGuildList = "get_guild_list" // 获取群组列表 ActionSetGuildName = "set_guild_name" // 设置群组名称 ActionGetGuildMemberInfo = "get_guild_member_info" // 获取群组成员信息 ActionGetGuildMemberList = "get_guild_member_list" // 获取群组成员列表 ActionLeaveGuild = "leave_guild" // 退出群组 ActionGetChannelInfo = "get_channel_info" // 获取频道信息 ActionGetChannelList = "get_channel_list" // 获取频道列表 ActionSetChannelName = "set_channel_name" // 设置频道名称 ActionGetChannelMemberInfo = "get_channel_member_info" // 获取频道成员信息 ActionGetChannelMemberList = "get_channel_member_list" // 获取频道成员列表 ActionLeaveChannel = "leave_channel" // 退出频道 )
const ( SegTypeText = "text" // 纯文本消息段 SegTypeMention = "mention" // 提及 (即 @) 消息段 SegTypeMentionAll = "mention_all" // 提及所有人消息段 SegTypeImage = "image" // 图片消息段 SegTypeVoice = "voice" // 语音消息段 SegTypeAudio = "audio" // 音频消息段 SegTypeVideo = "video" // 视频消息段 SegTypeFile = "file" // 文件消息段 SegTypeLocation = "location" // 位置消息段 SegTypeReply = "reply" // 回复消息段 )
SegTypeXxx 表示 OneBot 标准定义的消息段类型.
const ( ActionSendMessage = "send_message" // 发送消息 ActionDeleteMessage = "delete_message" // 删除消息 )
const ( // LibOneBot 自动处理的特殊元动作 ActionGetLatestEvents = "get_latest_events" // 获取最新事件列表 (仅 HTTP 通信方式支持) ActionGetSupportedActions = "get_supported_actions" // 获取支持的动作列表 ActionGetStatus = "get_status" // 获取 OneBot 运行状态 ActionGetVersion = "get_version" // 获取 OneBot 版本信息 )
const ( ActionGetSelfInfo = "get_self_info" // 获取机器人自身信息 ActionGetUserInfo = "get_user_info" // 获取用户信息 ActionGetFriendList = "get_friend_list" // 获取好友列表 )
const ( Version = "0.7.0" // LibOneBot 版本号 OneBotVersion = "12" // OneBot 标准版本 )
const ( CommMethodNone = 0 // 无通信方式 (OneBot 实现内部构造的请求) CommMethodHTTP = 1 // HTTP 通信方式 CommMethodHTTPWebhook = 2 // HTTP Webhook 通信方式 CommMethodWS = 3 // WebSocket 通信方式 CommMethodWSReverse = 4 // 反向 WebSocket 通信方式 )
const ( RetCodeOK = 0 // 成功 // 动作请求错误 (类似 HTTP 的 4xx 客户端错误) RetCodeRequestErrorBase = 10000 RetCodeBadRequest = 10001 // 无效的动作请求 (格式错误, 必要字段缺失或字段类型错误) RetCodeUnsupportedAction = 10002 // 不支持的动作请求 (OneBot 实现没有实现该动作) RetCodeBadParam = 10003 // 无效的动作请求参数 (参数缺失或参数类型错误) RetCodeUnsupportedParam = 10004 // 不支持的动作请求参数 (OneBot 实现没有实现该参数的语义) RetCodeUnsupportedSegment = 10005 // 不支持的消息段类型 (OneBot 实现没有实现该消息段类型) RetCodeBadSegmentData = 10006 // 无效的消息段参数 (参数缺失或参数类型错误) RetCodeUnsupportedSegmentData = 10007 // 不支持的消息段参数 (OneBot 实现没有实现该参数的语义) RetCodeWhoAmI = 10101 // 未指定机器人账号 (OneBot 实现在单个 OneBot Connect 连接上支持多个机器人账号,但动作请求未指定要使用的账号) RetCodeUnknownSelf = 10102 // 不存在的机器人账号 (动作请求指定的机器人账号不存在) // 动作处理器错误 (类似 HTTP 的 5xx 服务端错误) RetCodeHandlerErrorBase = 20000 RetCodeBadHandler = 20001 // 动作处理器实现错误 (如没有正确设置响应状态等) RetCodeInternalHandlerError = 20002 // 动作处理器运行时抛出异常 // 动作执行错误 (OneBot 实现可根据需要在低三位细分) RetCodeExecutionErrorBase = 30000 RetCodeDatabaseError = 31000 // 数据库错误 RetCodeFilesystemError = 32000 // 文件系统错误 RetCodeNetworkError = 33000 // 网络错误 RetCodePlatformError = 34000 // 机器人平台错误 (如由于机器人平台限制导致消息发送失败等) RetCodeLogicError = 35000 // 动作逻辑错误 (如尝试向不存在的用户发送消息等) RetCodeIAmTired = 36000 // 我不想干了 (一位 OneBot 实现决定罢工) // 保留错误段 RetCodeReservedErrorBase1 = 40000 RetCodeReservedErrorBase2 = 50000 )
RetCodeXxx 表示动作响应返回码.
const ( EventTypeMessage = "message" // 消息事件 EventTypeNotice = "notice" // 通知事件 EventTypeRequest = "request" // 请求事件 EventTypeMeta = "meta" // 元事件 )
EventTypeXxx 表示 OneBot 标准定义的事件类型.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ActionMux ¶
type ActionMux struct {
// contains filtered or unexported fields
}
ActionMux 将动作请求按动作名称分发到不同的 Handler 对象处理.
func (*ActionMux) Handle ¶
Handle 将一个 Handler 对象注册为指定动作的请求处理器.
若要注册为核心动作的请求处理器, 建议使用 ActionXxx 常量作为动作名.
func (*ActionMux) HandleAction ¶
func (mux *ActionMux) HandleAction(w ResponseWriter, r *Request)
HandleAction 为 ActionMux 实现 Handler 接口.
func (*ActionMux) HandleFunc ¶
func (mux *ActionMux) HandleFunc(action string, handler func(ResponseWriter, *Request))
HandleFunc 将一个函数注册为指定动作的请求处理器.
若要注册为核心动作的请求处理器, 建议使用 ActionXxx 常量作为动作名.
type AnyEvent ¶
type AnyEvent interface { Name() string // contains filtered or unexported methods }
AnyEvent 是所有事件对象共同实现的接口.
type ChannelCreateNoticeEvent ¶
type ChannelCreateNoticeEvent struct { NoticeEvent GuildID string `json:"guild_id"` // 群组 ID ChannelID string `json:"channel_id"` // 频道 ID OperatorID string `json:"operator_id"` // 操作者 ID }
ChannelCreateNoticeEvent 表示一个频道新建事件.
func MakeChannelCreateNoticeEvent ¶
func MakeChannelCreateNoticeEvent(time time.Time, guildID string, channelID string, operatorID string) ChannelCreateNoticeEvent
MakeChannelCreateNoticeEvent 构造一个频道新建事件.
type ChannelDeleteNoticeEvent ¶
type ChannelDeleteNoticeEvent struct { NoticeEvent GuildID string `json:"guild_id"` // 群组 ID ChannelID string `json:"channel_id"` // 频道 ID OperatorID string `json:"operator_id"` // 操作者 ID }
ChannelDeleteNoticeEvent 表示一个频道删除事件.
func MakeChannelDeleteNoticeEvent ¶
func MakeChannelDeleteNoticeEvent(time time.Time, guildID string, channelID string, operatorID string) ChannelDeleteNoticeEvent
MakeChannelDeleteNoticeEvent 构造一个频道删除事件.
type ChannelMemberDecreaseNoticeEvent ¶
type ChannelMemberDecreaseNoticeEvent struct { NoticeEvent GuildID string `json:"guild_id"` // 群组 ID ChannelID string `json:"channel_id"` // 频道 ID UserID string `json:"user_id"` // 用户 ID OperatorID string `json:"operator_id"` // 操作者 ID }
ChannelMemberDecreaseNoticeEvent 表示一个频道成员减少通知事件.
func MakeChannelMemberDecreaseNoticeEvent ¶
func MakeChannelMemberDecreaseNoticeEvent(time time.Time, guildID string, channelID string, userID string, operatorID string) ChannelMemberDecreaseNoticeEvent
MakeChannelMemberDecreaseNoticeEvent 构造一个频道成员减少通知事件.
type ChannelMemberIncreaseNoticeEvent ¶
type ChannelMemberIncreaseNoticeEvent struct { NoticeEvent GuildID string `json:"guild_id"` // 群组 ID ChannelID string `json:"channel_id"` // 频道 ID UserID string `json:"user_id"` // 用户 ID OperatorID string `json:"operator_id"` // 操作者 ID }
ChannelMemberIncreaseNoticeEvent 表示一个频道成员增加通知事件.
func MakeChannelMemberIncreaseNoticeEvent ¶
func MakeChannelMemberIncreaseNoticeEvent(time time.Time, guildID string, channelID string, userID string, operatorID string) ChannelMemberIncreaseNoticeEvent
MakeChannelMemberIncreaseNoticeEvent 构造一个频道成员增加通知事件.
type ChannelMessageDeleteNoticeEvent ¶
type ChannelMessageDeleteNoticeEvent struct { NoticeEvent GuildID string `json:"guild_id"` // 群组 ID ChannelID string `json:"channel_id"` // 频道 ID MessageID string `json:"message_id"` // 消息 ID UserID string `json:"user_id"` // 消息发送者 ID OperatorID string `json:"operator_id"` // 操作者 ID }
ChannelMessageDeleteNoticeEvent 表示一个频道消息删除通知事件.
func MakeChannelMessageDeleteNoticeEvent ¶
func MakeChannelMessageDeleteNoticeEvent(time time.Time, guildID string, channelID string, messageID string, userID string, operatorID string) ChannelMessageDeleteNoticeEvent
MakeChannelMessageDeleteNoticeEvent 构造一个频道消息删除通知事件.
type ChannelMessageEvent ¶
type ChannelMessageEvent struct { MessageEvent GuildID string `json:"guild_id"` // 群组 ID ChannelID string `json:"channel_id"` // 频道 ID UserID string `json:"user_id"` // 用户 ID }
ChannelMessageEvent 表示一个频道消息事件.
type Config ¶
type Config struct { Heartbeat ConfigHeartbeat `mapstructure:"heartbeat"` // 心跳 Comm ConfigComm `mapstructure:"comm"` // 通信方式 }
Config 表示一个 OneBot 配置.
type ConfigComm ¶
type ConfigComm struct { HTTP []ConfigCommHTTP `mapstructure:"http"` // HTTP 通信方式 HTTPWebhook []ConfigCommHTTPWebhook `mapstructure:"http_webhook"` // HTTP Webhook 通信方式 WS []ConfigCommWS `mapstructure:"ws"` // WebSocket 通信方式 WSReverse []ConfigCommWSReverse `mapstructure:"ws_reverse"` // 反向 WebSocket 通信方式 }
ConfigComm 配置通信方式.
type ConfigCommHTTP ¶
type ConfigCommHTTP struct { Host string `mapstructure:"host"` // HTTP 服务器监听 IP Port uint16 `mapstructure:"port"` // HTTP 服务器监听端口 AccessToken string `mapstructure:"access_token"` // 访问令牌 EventEnabled bool `mapstructure:"event_enabled"` // 是否启用 get_latest_events 轮询动作 EventBufferSize uint32 `mapstructure:"event_buffer_size"` // 事件缓冲区大小, 超过该大小将会丢弃最旧的事件, 0 表示不限大小 }
ConfigCommHTTP 配置一个 HTTP 通信方式.
type ConfigCommHTTPWebhook ¶
type ConfigCommHTTPWebhook struct { URL string `mapstructure:"url"` // Webhook 上报地址 AccessToken string `mapstructure:"access_token"` // 访问令牌 Timeout uint32 `mapstructure:"timeout"` // 上报请求超时时间, 单位: 毫秒, 0 表示不超时 }
ConfigCommHTTPWebhook 配置一个 HTTP Webhook 通信方式.
type ConfigCommWS ¶
type ConfigCommWS struct { Host string `mapstructure:"host"` // WebSocket 服务器监听 IP Port uint16 `mapstructure:"port"` // WebSocket 服务器监听端口 AccessToken string `mapstructure:"access_token"` // 访问令牌 }
ConfigCommWS 配置一个 WebSocket 通信方式.
type ConfigCommWSReverse ¶
type ConfigCommWSReverse struct { URL string `mapstructure:"url"` // 反向 WebSocket 连接地址 AccessToken string `mapstructure:"access_token"` // 访问令牌 ReconnectInterval uint32 `mapstructure:"reconnect_interval"` // 反向 WebSocket 重连间隔, 单位: 毫秒, 必须大于 0 }
ConfigCommWSReverse 配置一个反向 WebSocket 通信方式.
type ConfigHeartbeat ¶
type ConfigHeartbeat struct { Enabled bool `mapstructure:"enabled"` // 是否启用 Interval uint32 `mapstructure:"interval"` // 心跳间隔, 单位: 毫秒, 必须大于 0 }
ConfigHeartbeat 配置心跳.
type ConnectMetaEvent ¶
type ConnectMetaEvent struct { MetaEvent Version VersionStruct `json:"version"` }
ConnectMetaEvent 表示一个连接元事件.
func MakeConnectMetaEvent ¶
func MakeConnectMetaEvent(impl string) ConnectMetaEvent
MakeConnectMetaEvent 构造一个连接元事件.
type EasierMap ¶
EasierMap 在 EasyMap 的基础上添加了 GetMessage 方法.
func EasierMapFromEasyMap ¶
EasierMapFromEasyMap 从 EasyMap 创建一个 EasierMap.
func EasierMapFromMap ¶
EasierMapFromMap 从 map[string]interface{} 创建一个 EasierMap.
参数:
m: 要封装的 map[string]interface{}, 不能为 nil
func (EasierMap) GetMapArray ¶
GetMapArray 获取 []map[string]interface{} 类型的字段值, 并封装为 []EasierMap.
type Event ¶
type Event struct { // lock sync.RWMutex ID string `json:"id"` // 事件 ID, 构造时自动生成 Time float64 `json:"time"` // 事件发生时间 (Unix 时间戳), 单位: 秒 Type string `json:"type"` // 事件类型 DetailType string `json:"detail_type"` // 事件详细类型 SubType string `json:"sub_type"` // 事件子类型 (详细类型的下一级类型), 可为空 Self *Self `json:"self,omitempty"` // 机器人自身标识, 仅用于非元事件, 无需在构造时传入 }
Event 包含所有类型事件的共同字段.
type FriendDecreaseNoticeEvent ¶
type FriendDecreaseNoticeEvent struct { NoticeEvent UserID string `json:"user_id"` // 用户 ID }
FriendDecreaseNoticeEvent 表示一个好友减少通知事件.
func MakeFriendDecreaseNoticeEvent ¶
func MakeFriendDecreaseNoticeEvent(time time.Time, userID string) FriendDecreaseNoticeEvent
MakeFriendDecreaseNoticeEvent 构造一个好友减少通知事件.
type FriendIncreaseNoticeEvent ¶
type FriendIncreaseNoticeEvent struct { NoticeEvent UserID string `json:"user_id"` // 用户 ID }
FriendIncreaseNoticeEvent 表示一个好友增加通知事件.
func MakeFriendIncreaseNoticeEvent ¶
func MakeFriendIncreaseNoticeEvent(time time.Time, userID string) FriendIncreaseNoticeEvent
MakeFriendIncreaseNoticeEvent 构造一个好友增加通知事件.
type GroupMemberDecreaseNoticeEvent ¶
type GroupMemberDecreaseNoticeEvent struct { NoticeEvent GroupID string `json:"group_id"` // 群 ID UserID string `json:"user_id"` // 用户 ID OperatorID string `json:"operator_id"` // 操作者 ID }
GroupMemberDecreaseNoticeEvent 表示一个群成员减少通知事件.
func MakeGroupMemberDecreaseNoticeEvent ¶
func MakeGroupMemberDecreaseNoticeEvent(time time.Time, groupID string, userID string, operatorID string) GroupMemberDecreaseNoticeEvent
MakeGroupMemberDecreaseNoticeEvent 构造一个群成员减少通知事件.
type GroupMemberIncreaseNoticeEvent ¶
type GroupMemberIncreaseNoticeEvent struct { NoticeEvent GroupID string `json:"group_id"` // 群 ID UserID string `json:"user_id"` // 用户 ID OperatorID string `json:"operator_id"` // 操作者 ID }
GroupMemberIncreaseNoticeEvent 表示一个群成员增加通知事件.
func MakeGroupMemberIncreaseNoticeEvent ¶
func MakeGroupMemberIncreaseNoticeEvent(time time.Time, groupID string, userID string, operatorID string) GroupMemberIncreaseNoticeEvent
MakeGroupMemberIncreaseNoticeEvent 构造一个群成员增加通知事件.
type GroupMessageDeleteNoticeEvent ¶
type GroupMessageDeleteNoticeEvent struct { NoticeEvent GroupID string `json:"group_id"` // 群 ID MessageID string `json:"message_id"` // 消息 ID UserID string `json:"user_id"` // 消息发送者 ID OperatorID string `json:"operator_id"` // 操作者 ID }
GroupMessageDeleteNoticeEvent 表示一个群消息删除通知事件.
func MakeGroupMessageDeleteNoticeEvent ¶
func MakeGroupMessageDeleteNoticeEvent(time time.Time, groupID string, messageID string, userID string, operatorID string) GroupMessageDeleteNoticeEvent
MakeGroupMessageDeleteNoticeEvent 构造一个群消息删除通知事件.
type GroupMessageEvent ¶
type GroupMessageEvent struct { MessageEvent GroupID string `json:"group_id"` // 群 ID UserID string `json:"user_id"` // 用户 ID }
GroupMessageEvent 表示一个群消息事件.
func MakeGroupMessageEvent ¶
func MakeGroupMessageEvent(time time.Time, messageID string, message Message, alt_message string, groupID string, userID string) GroupMessageEvent
MakeGroupMessageEvent 构造一个群消息事件.
type GuildMemberDecreaseNoticeEvent ¶
type GuildMemberDecreaseNoticeEvent struct { NoticeEvent GuildID string `json:"guild_id"` // 群组 ID UserID string `json:"user_id"` // 用户 ID OperatorID string `json:"operator_id"` // 操作者 ID }
GuildMemberDecreaseNoticeEvent 表示一个群组成员减少通知事件.
func MakeGuildMemberDecreaseNoticeEvent ¶
func MakeGuildMemberDecreaseNoticeEvent(time time.Time, guildID string, userID string, operatorID string) GuildMemberDecreaseNoticeEvent
MakeGuildMemberDecreaseNoticeEvent 构造一个群组成员减少通知事件.
type GuildMemberIncreaseNoticeEvent ¶
type GuildMemberIncreaseNoticeEvent struct { NoticeEvent GuildID string `json:"guild_id"` // 群组 ID UserID string `json:"user_id"` // 用户 ID OperatorID string `json:"operator_id"` // 操作者 ID }
GuildMemberIncreaseNoticeEvent 表示一个群组成员增加通知事件.
func MakeGuildMemberIncreaseNoticeEvent ¶
func MakeGuildMemberIncreaseNoticeEvent(time time.Time, guildID string, userID string, operatorID string) GuildMemberIncreaseNoticeEvent
MakeGuildMemberIncreaseNoticeEvent 构造一个群组成员增加通知事件.
type Handler ¶
type Handler interface {
HandleAction(ResponseWriter, *Request)
}
Handler 是动作处理器需要实现的接口.
type HandlerFunc ¶
type HandlerFunc func(ResponseWriter, *Request)
HandlerFunc 表示一个实现 Handler 接口的函数.
func (HandlerFunc) HandleAction ¶
func (handler HandlerFunc) HandleAction(w ResponseWriter, r *Request)
HandleAction 为 HandlerFunc 实现 Handler 接口.
type HeartbeatMetaEvent ¶
HeartbeatMetaEvent 表示一个心跳元事件.
func MakeHeartbeatMetaEvent ¶
func MakeHeartbeatMetaEvent(time time.Time, interval int64) HeartbeatMetaEvent
MakeHeartbeatMetaEvent 构造一个心跳元事件.
type Message ¶
type Message []Segment
Message 表示一条消息.
func (*Message) ExtractText ¶
ExtractText 提取消息中的纯文本消息段, 并合并为字符串.
type MessageEvent ¶
type MessageEvent struct { Event MessageID string `json:"message_id"` // 消息 ID Message Message `json:"message"` // 消息内容 AltMessage string `json:"alt_message"` // 消息内容的替代表示, 可为空 }
MessageEvent 表示一个消息事件.
func MakeMessageEvent ¶
func MakeMessageEvent(time time.Time, detailType string, messageID string, message Message, alt_message string) MessageEvent
MakeMessageEvent 构造一个消息事件.
type NoticeEvent ¶
type NoticeEvent struct {
Event
}
NoticeEvent 表示一个通知事件.
func MakeNoticeEvent ¶
func MakeNoticeEvent(time time.Time, detailType string) NoticeEvent
MakeNoticeEvent 构造一个通知事件.
type OneBot ¶
type OneBot struct { Impl string Self *Self // 机器人自身标识, 多机器人账号复用 OneBot 对象时为 nil Config *Config Logger *logrus.Logger // contains filtered or unexported fields }
OneBot 表示一个 OneBot 实例.
func NewOneBot ¶
NewOneBot 创建一个新的 OneBot 实例.
参数:
impl: OneBot 实现名称, 不能为空 self: OneBot 实例对应的机器人自身标识, 不能为 nil config: OneBot 配置, 不能为 nil
func NewOneBotMultiSelf ¶
NewOneBotMultiSelf 创建一个新的多机器人账号复用的 OneBot 实例.
参数:
impl: OneBot 实现名称, 不能为空 config: OneBot 配置, 不能为 nil
func (*OneBot) CallAction ¶
CallAction 调用指定动作.
参数:
action: 要调用的动作名称 params: 动作参数, 若传入 nil 则实际动作参数为空 map
func (*OneBot) GetUserAgent ¶
GetUserAgent 获取 OneBot 实例的 User-Agent.
func (*OneBot) Handle ¶
Handle 将一个 Handler 对象注册为动作处理器.
一个 OneBot 实例只能注册一个动作处理器, 多次调用将覆盖. 可以传入 ActionMux 对象来根据动作名称分发请求到不同的 Handler 对象.
func (*OneBot) HandleFunc ¶
func (ob *OneBot) HandleFunc(handler func(ResponseWriter, *Request))
HandleFunc 将一个函数注册为动作处理器.
一个 OneBot 实例只能注册一个动作处理器, 多次调用将覆盖.
func (*OneBot) PushWithSelf ¶
PushWithSelf 向与 OneBot 实例连接的接受端推送一个事件, 并指定收到事件的机器人自身标识.
type ParamGetter ¶
type ParamGetter struct {
// contains filtered or unexported fields
}
ParamGetter 用于在处理动作请求时方便地获取参数, 当参数不存在或参数错误时, 向 ResponseWriter 写入错误信息.
func NewParamGetter ¶
func NewParamGetter(w ResponseWriter, r *Request) *ParamGetter
NewParamGetter 创建一个 ParamGetter 对象.
func (*ParamGetter) GetBool ¶
func (p *ParamGetter) GetBool(key string) (bool, bool)
GetBool 获取一个布尔类型参数.
func (*ParamGetter) GetBytesOrBase64 ¶
func (p *ParamGetter) GetBytesOrBase64(key string) ([]byte, bool)
GetBytesOrBase64 获取一个字节数组类型参数.
func (*ParamGetter) GetFloat64 ¶
func (p *ParamGetter) GetFloat64(key string) (float64, bool)
GetFloat64 获取一个浮点数类型参数.
func (*ParamGetter) GetInt64 ¶
func (p *ParamGetter) GetInt64(key string) (int64, bool)
GetInt64 获取一个整数类型参数.
func (*ParamGetter) GetMessage ¶
func (p *ParamGetter) GetMessage(key string) (Message, bool)
GetMessage 获取一个消息类型参数.
type PrivateMessageDeleteNoticeEvent ¶
type PrivateMessageDeleteNoticeEvent struct { NoticeEvent MessageID string `json:"message_id"` // 消息 ID UserID string `json:"user_id"` // 消息发送者 ID }
PrivateMessageDeleteNoticeEvent 表示一个私聊消息删除通知事件.
func MakePrivateMessageDeleteNoticeEvent ¶
func MakePrivateMessageDeleteNoticeEvent(time time.Time, messageID string, userID string) PrivateMessageDeleteNoticeEvent
MakePrivateMessageDeleteNoticeEvent 构造一个私聊消息删除通知事件.
type PrivateMessageEvent ¶
type PrivateMessageEvent struct { MessageEvent UserID string `json:"user_id"` // 用户 ID }
PrivateMessageEvent 表示一个私聊消息事件.
func MakePrivateMessageEvent ¶
func MakePrivateMessageEvent(time time.Time, messageID string, message Message, alt_message string, userID string) PrivateMessageEvent
MakePrivateMessageEvent 构造一个私聊消息事件.
type Request ¶
type Request struct { Comm RequestComm // 接收动作请求的通信方式 Action string // 动作名称 Params EasierMap // 动作参数 Echo string // 动作请求的 echo 字段, 用户未指定时为空字符串 Self *Self // 机器人自身标识, 用户未指定时为 nil }
Request 表示一个动作请求.
type RequestComm ¶
type RequestComm struct { Method int // 通信方式 Config interface{} // 通信方式配置 }
RequestCommMethod 表示接收动作请求的通信方式.
type RequestEvent ¶
type RequestEvent struct {
Event
}
RequestEvent 表示一个请求事件.
func MakeRequestEvent ¶
func MakeRequestEvent(time time.Time, detailType string) RequestEvent
MakeRequestEvent 构造一个请求事件.
type Response ¶
type Response struct { Status string `json:"status"` // 执行状态 (成功与否) RetCode int `json:"retcode"` // 返回码 Data interface{} `json:"data"` // 响应数据 Message string `json:"message"` // 错误信息 Echo string `json:"echo,omitempty"` // 动作请求的 echo 字段 (原样返回) }
Response 表示一个动作响应.
type ResponseWriter ¶
type ResponseWriter struct {
// contains filtered or unexported fields
}
ResponseWriter 封装了对 Response 的修改操作.
func (ResponseWriter) WriteData ¶
func (w ResponseWriter) WriteData(data interface{})
WriteData 向 Response 写入成功状态, 并写入返回数据.
func (ResponseWriter) WriteFailed ¶
func (w ResponseWriter) WriteFailed(retCode int, err error)
WriteFailed 向 Response 写入失败状态, 并写入返回码和错误信息.
type Segment ¶
Segment 表示一个消息段.
func CustomSegment ¶
CustomSegment 构造一个指定类型的消息段.
func LocationSegment ¶
LocationSegment 构造一个位置消息段.
func ReplySegment ¶
ReplySegment 构造一个回复消息段.
func (Segment) MarshalJSON ¶
func (Segment) MarshalMsgpack ¶
type Self ¶
type Self struct { Platform string `json:"platform"` // 机器人平台名称 UserID string `json:"user_id" mapstructure:"user_id"` // 机器人自身 ID }
Self 用于唯一标识一个机器人账号.
type StatusUpdateMetaEvent ¶
type StatusUpdateMetaEvent struct { MetaEvent Status interface{} `json:"status"` // OneBot 状态, 与 get_status 动作响应数据一致 }
StatusUpdateMetaEvent 表示一个状态更新元事件.
func MakeStatusUpdateMetaEvent ¶
func MakeStatusUpdateMetaEvent(time time.Time, status interface{}) StatusUpdateMetaEvent
MakeStatusUpdateMetaEvent 构造一个状态更新元事件.
type VersionStruct ¶
Source Files
¶
- action_handler.go
- action_mux.go
- action_params.go
- comm_http.go
- comm_http_auth.go
- comm_http_webhook.go
- comm_ws.go
- comm_ws_reverse.go
- config.go
- easiermap.go
- intf_file.go
- intf_group.go
- intf_guild.go
- intf_message.go
- intf_message_type.go
- intf_meta.go
- intf_user.go
- onebot.go
- onebot_action.go
- onebot_event.go
- proto_action_request.go
- proto_action_response.go
- proto_event.go
- proto_self_type.go