pichubot

package module
v0.3.7 Latest Latest
Warning

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

Go to latest
Published: Nov 3, 2021 License: AGPL-3.0 Imports: 12 Imported by: 0

README

Go Report Card pichubot license version Onebot 11 wakatime

🍕 First Step

$ go get github.com/0ojixueseno0/go-Pichubot

⚡ Quick Start

中文文档

import (
  Pichubot "github.com/0ojixueseno0/go-Pichubot"
)

func action(eventinfo Pichubot.MessagePrivate) {
  // 处理某个私聊消息
  return
}

func main() {
  // 向事件池里添加函数
  Pichubot.Listeners.OnPrivateMsg = append(Pichubot.Listeners.OnPrivateMsg, action) 

  //初始化一个Bot 并更改配置
  Bot := Pichubot.NewBot()
  Bot.Config = Pichubot.Config{
    Loglvl:   Pichubot.LOGGER_LEVEL_INFO,
    Host:     "0.0.0.0:6700",
    MasterQQ: "2773173293",
    Path:     "/"
  }
  Bot.Run()
}

📃 Log Levels

	// usage: Pichubot.LOGGER_LEVEL_INFO
	LOGGER_LEVEL_EMERGENCY
	LOGGER_LEVEL_ALERT
	LOGGER_LEVEL_CRITICAL
	LOGGER_LEVEL_ERROR
	LOGGER_LEVEL_WARNING
	LOGGER_LEVEL_NOTICE
	LOGGER_LEVEL_INFO
	LOGGER_LEVEL_DEBUG

Talk About Pichubot

皮丘bot program 群: 645995997

Others

改个毛 golint永远0% 不改了 爬!

更新日志

对 决定写点更新日志在这...

2021-11-3 v0.3.7

新增Bot配置项 MsgAwait

如果开启该功能,发送消息将进行随机延迟

新增更多方法

2021-09-28 v0.3.5

新增监听器 OnBotStart 机器人启动时执行的函数

Documentation

Index

Constants

View Source
const (
	LOGGER_LEVEL_EMERGENCY = iota // 系统级紧急,比如磁盘出错,内存异常,网络不可用等
	LOGGER_LEVEL_ALERT            // 系统级警告,比如数据库访问异常,配置文件出错等
	LOGGER_LEVEL_CRITICAL         // 系统级危险,比如权限出错,访问异常等
	LOGGER_LEVEL_ERROR            // 用户级错误
	LOGGER_LEVEL_WARNING          // 用户级警告
	LOGGER_LEVEL_NOTICE           // 用户级重要
	LOGGER_LEVEL_INFO             // 用户级提示
	LOGGER_LEVEL_DEBUG            // 用户级调试
)

Variables

View Source
var Connect *websocket.Conn // Websocket 连接接口
View Source
var Listeners listeners // Listeners 监听器

日志接口

View Source
var LongEvents = make(map[string]LongEvent) // 长事件容器
View Source
var ShortEvents = make(map[string]ShortEvent) // 短事件容器

Functions

func CheckPath added in v0.3.4

func CheckPath(path string) error

判断文件夹是否存在 若不存在则新建

func ConnectWS added in v0.3.4

func ConnectWS(url url.URL) (*websocket.Conn, *http.Response, error)

ConnectWS 连接至websocket服务器

func DeleteMsg

func DeleteMsg(message_id int32) error

DeleteMsg 撤回消息 message_id - 消息id 发出时的返回值 return error

func GetForwardMsg

func GetForwardMsg(id string) (map[string]interface{}, error)

GetForwardMsg 获取合并转发消息 id - 合并转发 ID return message err

func GetFriendList added in v0.3.7

func GetFriendList() (map[string]interface{}, error)

GetFriendList 获取好友列表 return [{user_id nickname}] err

func GetGroupHonorInfo added in v0.3.7

func GetGroupHonorInfo(group_id int64, type_ int) (map[string]interface{}, error)

GetGroupHonorInfo 获取群荣誉信息 group_id 群号 type 荣誉类型

func GetGroupInfo added in v0.3.7

func GetGroupInfo(group_id int64, no_cache bool) (map[string]interface{}, error)

GetGroupInfo 获取群信息 group_id 群号 no_cache 是否不使用缓存(使用缓存可能更新不及时,但响应更快)

func GetGroupList added in v0.3.7

func GetGroupList() (map[string]interface{}, error)

GetGroupList 获取群列表 return [{group_id name}] err

func GetGroupMemberInfo added in v0.3.7

func GetGroupMemberInfo(group_id int64, user_id int64, no_cache bool) (map[string]interface{}, error)

GetGroupMemberInfo 获取群成员信息 group_id 群号 user_id 成员QQ no_cache 是否不使用缓存(使用缓存可能更新不及时,但响应更快)

func GetGroupMemberList added in v0.3.7

func GetGroupMemberList(group_id int64) (map[string]interface{}, error)

GetGroupMemberList 获取群成员列表 group_id 群号

func GetImage

func GetImage(file string) (map[string]interface{}, error)

GetImage 获取图片信息 file string get_image return size int32 图片源文件大小

filename	string	图片文件原名
url				string	图片下载地址
err

func GetLoginInfo

func GetLoginInfo() (map[string]interface{}, error)

GetLoginInfo 获取登录号信息 return {user_id nickname} err

func GetMsg

func GetMsg(message_id int32) (map[string]interface{}, error)

GetMsg 获取消息 message_id - 获取消息 return {time message_type message_id real_id sender message} error

func GetStrangerInfo added in v0.3.7

func GetStrangerInfo(user_id int64, no_cache bool) (map[string]interface{}, error)

GetStrangerInfo 获取陌生人信息 user_id 陌生人QQ no_cache 是否不使用缓存(使用缓存可能更新不及时,但响应更快)

func InitLogger

func InitLogger(lvl int)

func OCRImage

func OCRImage(image string) (map[string]interface{}, error)

OCRImage 图片OCR image file - string return texts TextDetection[] OCR结果

  • text string 文本
  • confidence int32 置信度
  • coordinates vector2 坐标 language string 语言 err

func SendGroupMsg

func SendGroupMsg(message string, group_id int64) (map[string]interface{}, error)

SendGroupMsg 发送群聊消息 message - 要发送的内容 group_id - 群号 return message_id error

func SendLike

func SendLike(user_id int64, times int64) error

SendLike 发送好友赞 user_id - 对方QQ号 times - 点赞次数(每个好友每天最多 10 次) return err

func SendMsg

func SendMsg(msgtype string, message string, toid int64) (map[string]interface{}, error)

SendMsg 发送消息 msgtype - 消息类型 group/private message - 消息内容 toid - 群号/QQ号 本条API并不是 Onebot/CQhttp 原生API return message_id error

func SendPrivateMsg

func SendPrivateMsg(message string, user_id int64) (map[string]interface{}, error)

SendPrivateMsg 发送私聊信息 message - 消息内容 自动解析CQ码 user_id - 对方QQ号 return message_id error

func SetFriendAddRequest

func SetFriendAddRequest(flag string, approve bool) error

SetFriendAddRequest 处理加好友请求 flag 加好友请求的 flag(需从上报的数据中获得) approve 是否同意请求 return err

func SetGroupAddRequest

func SetGroupAddRequest(flag string, approve bool, reason string) error

SetGroupAddRequest 处理加群请求 flag 加群请求的 flag approve 是否同意请求 reason 拒绝理由(只有在拒绝时有效) return err

func SetGroupAdmin

func SetGroupAdmin(group_id int64, user_id int64, enable bool) error

SetGroupAdmin 群组设置管理员(需要机器人为群主) group_id 群号 user_id QQ号 enable true 为设置,false 为取消 return err

func SetGroupAnonymous

func SetGroupAnonymous(group_id int64, enable bool) error

SetGroupAnonymous 群组匿名 group_id 群号 enable 是否允许匿名聊天 return err

func SetGroupAnonymousBan

func SetGroupAnonymousBan(group_id int64, anymous_flag string, duration int64) error

SetGroupAnonymousBan 群组匿名用户禁言 group_id - 群号 anymous_flag - 匿名用户的 flag(需从群消息上报的数据中获得) duration - 禁言时长(s) 0表示取消禁言 return err

func SetGroupBan

func SetGroupBan(group_id int64, user_id int64, duration int64) error

SetGroupBan 群组单人禁言 group_id - 群号 user_id - 要禁言的QQ号 duration - 禁言时长(s) 0表示取消禁言 return err

func SetGroupCard

func SetGroupCard(group_id int64, user_id int64, card string) error

SetGroupCard 设置群名片 group_id 群号 user_id 成员QQ card 空字符串表示删除群名片 return err

func SetGroupInviteRequest

func SetGroupInviteRequest(flag string, approve bool, reason string) error

SetGroupInviteRequest 处理加群邀请 flag 加群邀请的 flag approve 是否同意邀请 reason 拒绝理由(只有在拒绝时有效) return err

func SetGroupKick

func SetGroupKick(group_id int64, user_id int64, reject_add_request bool) error

SetGroupKick 群组踢人 group_id - 群号 user_id - 要踢的 QQ 号 reject_add_request - 是否拒绝再次入群 return err

func SetGroupLeave

func SetGroupLeave(group_id int64, is_dismiss bool) error

SetGroupLeave 退群 group_id 群号 is_dismiss 是否解散,如果登录号是群主,则仅在此项为 true 时能够解散 return err

func SetGroupName

func SetGroupName(group_id int64, group_name string) error

SetGroupName 设置群名 group_id 群号 group_name 新群名 return err

func SetGroupSpecialTitle

func SetGroupSpecialTitle(group_id int64, user_id int64, special_title string) error

SetGroupSpecialTitle 设置群组专属头衔 group_id 群号 user_id 成员QQ special_title 空字符串表示删除专属头衔 return err

func SetGroupWholeBan

func SetGroupWholeBan(group_id int64, enable bool) error

SetGroupWholeBan 群全员禁言 group_id 群号 enable 是否禁言 return err

Types

type Bot

type Bot struct {
	Config Config
}
var PichuBot *Bot

func NewBot

func NewBot() *Bot

NewBot 返回一个Bot对象

func (*Bot) Run

func (bot *Bot) Run()

运行Bot

type Config

type Config struct {
	Loglvl   int
	Host     string
	MasterQQ int64
	Path     string
	MsgAwait bool
}

type FriendAdd

type FriendAdd struct {
	Time   int64 // 事件发生的时间戳
	SelfId int64 // 收到事件的机器人 QQ 号
	UserId int64 // 新添加好友 QQ 号
}

FriendAdd 添加好友

type FriendRecall

type FriendRecall struct {
	Time      int64 //	事件发生的时间戳
	SelfId    int64 //	收到事件的机器人 QQ 号
	UserId    int64 //	消息发送者 QQ 号
	MessageId int64 //	被撤回的消息 ID
}

FriendRecall 私聊撤回消息

type FriendRequest

type FriendRequest struct {
	Time    int64  //	事件发生的时间戳
	SelfId  int64  //	收到事件的机器人 QQ 号
	UserId  int64  //	发送请求的 QQ 号
	Comment string //	验证信息
	Flag    string //	请求 flag,在调用处理请求的 API 时需要传入
}

FriendRequest 好友申请

type GroupAdmin

type GroupAdmin struct {
	Time    int64  // 事件发生的时间戳
	SelfId  int64  // 收到事件的机器人 QQ 号
	SubType string // set|unset	事件子类型,分别表示设置和取消管理员
	GroupId int64  // 群号
	UserId  int64  // 管理员 QQ 号
}

GroupAdmin 管理员变更

type GroupBan

type GroupBan struct {
	Time       int64  //	事件发生的时间戳
	SelfId     int64  //	收到事件的机器人 QQ 号
	SubType    string //	ban、lift_ban	事件子类型,分别表示禁言、解除禁言
	GroupId    int64  //	群号
	OperatorId int64  //	操作者 QQ 号
	UserId     int64  //	被禁言 QQ 号
	Duration   int64  //	禁言时长,单位秒
}

GroupBan 成员禁言

type GroupDecrease

type GroupDecrease struct {
	Time       int64  //	事件发生的时间戳
	SelfId     int64  //	收到事件的机器人 QQ 号
	SubType    string //	leave|kick|kick_me	事件子类型,分别表示主动退群、成员被踢、登录号被踢
	GroupId    int64  //	群号
	OperatorId int64  //	操作者 QQ 号(如果是主动退群,则和 user_id 相同)
	UserId     int64  //	离开者 QQ 号
}

GroupDecrease 成员离开群聊

type GroupIncrease

type GroupIncrease struct {
	Time       int64  //	事件发生的时间戳
	SelfId     int64  //	收到事件的机器人 QQ 号
	SubType    string // approve|invite	事件子类型,分别表示管理员已同意入群、管理员邀请入群
	GroupId    int64  //	群号
	OperatorId int64  //	操作者 QQ 号
	UserId     int64  //	加入者 QQ 号
}

GroupIncrease 成员加入群聊

type GroupRecall

type GroupRecall struct {
	Time       int64 // 事件发生的时间戳
	SelfId     int64 // 收到事件的机器人 QQ 号
	GroupId    int64 // 群号
	UserId     int64 // 消息发送者 QQ 号
	OperatorId int64 // 操作者 QQ 号
	MessageId  int64 // 被撤回的消息 ID
}

GroupRecall 群聊撤回消息

type GroupRequest

type GroupRequest struct {
	Time    int64  //	事件发生的时间戳
	SelfId  int64  //	收到事件的机器人 QQ 号
	SubType string //	add、invite	请求子类型,分别表示加群请求、邀请登录号入群
	GroupId int64  //	群号
	UserId  int64  //	发送请求的 QQ 号
	Comment string //	验证信息
	Flag    string //	请求 flag,在调用处理请求的 API 时需要传入
}

GroupRequest 群聊邀请

type GroupUpload

type GroupUpload struct {
	Time    int64 //	事件发生的时间戳
	SelfId  int64 //	收到事件的机器人 QQ 号
	GroupId int64 //	群号
	UserId  int64 //	发送者 QQ 号
	File    struct {
		Id    string //	文件 ID
		Name  string //	文件名
		Size  int64  //	文件大小(字节数)
		Busid int64  //	busid(目前不清楚有什么作用)
	} //	文件信息
}

GroupUpload 上传群文件

type LongEvent

type LongEvent struct {
	UserID   int64
	GroupID  int64
	Channel  *chan string
	EventKey string
	EventID  string
}

func NewEvent added in v0.3.2

func NewEvent(userid int64, groupid int64, key string) LongEvent

新建长事件

func (LongEvent) Close added in v0.3.2

func (event LongEvent) Close()

关闭事件

type MessageGroup

type MessageGroup struct {
	SelfID    int64  // 收到事件的机器人 QQ 号
	SubType   string // 消息子类型 正常消息是 normal 匿名消息是 anonymous 系统提示是 notice
	MessageID int64  // 消息 ID
	GroupID   int64  // 群号
	UserID    int64  // 发送者 QQ 号
	Anonymous struct {
		Id   int64  // 匿名用户 ID
		Name string // 匿名用户名称
		Flag string // 匿名用户 flag,在调用禁言 API 时需要传入
	} //	匿名信息,如果不是匿名消息则为 null
	Message    string // 消息内容
	RawMessage string //	原始消息内容
	Sender     struct {
		UserID   int64  // 发送者 QQ 号
		Nickname string // 昵称
		Card     string // 群名片/备注
		Sex      string // 性别,male 或 female 或 unknown
		Age      int64  // 年龄
		Area     string // 地区
		Level    string // 成员等级
		Role     string // 角色,owner 或 admin 或 member
		Title    string // 专属头衔
	} // 发送人信息
}

MessageGroup 群聊消息事件

type MessagePrivate

type MessagePrivate struct {
	SelfID     int64  // 收到事件的机器人 QQ 号
	SubType    string // 消息子类型(friend,group,other)
	MessageID  int64  // 消息id
	UserID     int64  // 发送者 QQ 号
	Message    string // 消息内容
	RawMessage string // 原始消息内容
	Sender     struct {
		UserID   int64  // 发送者 QQ 号
		Nickname string // 昵称
		Sex      string // 性别,male 或 female 或 unknown
		Age      int64  // 年龄
	} // 发送人信息
}

MessagePrivate 私聊消息事件

type MetaHeartbeat

type MetaHeartbeat struct {
	Time     int64       //	事件发生的时间戳
	SelfId   int64       //	收到事件的机器人 QQ 号
	Status   interface{} //	状态信息
	Interval int64       //	到下次心跳的间隔,单位毫秒
}

MetaHeartbeat 心跳包

type MetaLifecycle

type MetaLifecycle struct {
	Time    int64  //	事件发生的时间戳
	SelfId  int64  //	收到事件的机器人 QQ 号
	SubType string // enable、disable、connect	事件子类型,分别表示 OneBot 启用、停用、WebSocket 连接成功
}

* Meta Event Part MetaLifecycle 生命周期

type Notify

type Notify struct {
	Time       int64  // 事件发生的时间戳
	SelfId     int64  // 收到事件的机器人 QQ 号
	SubType    string // poke|lucky_king|honor	提示类型:戳一戳|红包运气王|荣誉
	GroupId    int64  // 群号
	UserId     int64  // 发送者 QQ 号|红包发送者 QQ 号|成员 QQ 号
	TargetId   int64  // 被戳者 QQ 号|运气王 QQ 号 //!仅在戳一戳|运气王事件中有值
	Honor_type string // talkative|performer|emotion	荣誉类型:龙王|群聊之火|快乐源泉 //!仅在荣誉事件中有值
}

Notify 群聊提醒类消息

type Plugin added in v0.3.4

type Plugin struct {
	Name       string
	TargetFunc plugin.Symbol
	Version    string
	Listener   listeners
}

type ShortEvent

type ShortEvent struct {
	Channel *chan map[string]interface{}
}

* Events

Jump to

Keyboard shortcuts

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