Pichubot

package module
v0.3.2 Latest Latest
Warning

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

Go to latest
Published: Sep 18, 2021 License: AGPL-3.0 Imports: 9 Imported by: 0

README

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.OnPrivateMsg = append(Pichubot.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

Documentation

Overview

! 整合大部分常用api于函数内

存放所有结构体

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
View Source
var LongEvents = make(map[string]LongEvent) // 长事件容器
View Source
var OnFriendAdd []func(eventinfo FriendAdd) = []func(eventinfo FriendAdd){} // 已经添加好友后的事件
View Source
var OnFriendRecall []func(eventinfo FriendRecall) = []func(eventinfo FriendRecall){} // 好友消息撤回(私聊)
View Source
var OnFriendRequest []func(eventinfo FriendRequest) = []func(eventinfo FriendRequest){} // 加好友请求

* Request Event ? 请求事件

View Source
var OnGroupAdmin []func(eventinfo GroupAdmin) = []func(eventinfo GroupAdmin){} // 群管理员变动
View Source
var OnGroupBan []func(eventinfo GroupBan) = []func(eventinfo GroupBan){} // 群聊禁言
View Source
var OnGroupDecrease []func(eventinfo GroupDecrease) = []func(eventinfo GroupDecrease){} // 群成员减少
View Source
var OnGroupIncrease []func(eventinfo GroupIncrease) = []func(eventinfo GroupIncrease){} // 群成员增加
View Source
var OnGroupMsg []func(eventinfo MessageGroup) = []func(eventinfo MessageGroup){} // 群聊消息事件
View Source
var OnGroupRecall []func(eventinfo GroupRecall) = []func(eventinfo GroupRecall){} // 群消息撤回(群聊)
View Source
var OnGroupRequest []func(eventinfo GroupRequest) = []func(eventinfo GroupRequest){} // 加群请求/邀请
View Source
var OnGroupUpload []func(eventinfo GroupUpload) = []func(eventinfo GroupUpload){} // 群文件上传

* Notice Event ? 提醒事件

View Source
var OnMetaHeartbeat []func(eventinfo MetaHeartbeat) = []func(eventinfo MetaHeartbeat){} // 心跳包
View Source
var OnMetaLifecycle []func(eventinfo MetaLifecycle) = []func(eventinfo MetaLifecycle){} // 生命周期

* Meta Event ? 元事件

View Source
var OnNotify []func(eventinfo Notify) = []func(eventinfo Notify){} // 群内戳一戳 群红包运气王 群成员荣誉变更
View Source
var OnPrivateMsg []func(eventinfo MessagePrivate) = []func(eventinfo MessagePrivate){} // 私聊消息事件

* Message Event ? 消息事件

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

Functions

func DeleteMsg

func DeleteMsg(message_id int32) error

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

func GetForwardMsg

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

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

func GetImage

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

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

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

func GetLoginInfo

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

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

func GetMsg

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

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

func InitLogger

func InitLogger(lvl int)

func OCRImage

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

图片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)

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

func SendLike

func SendLike(user_id int, times int) error

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

func SendMsg

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

发送消息 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)

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

func SetFriendAddRequest

func SetFriendAddRequest(flag string, approve bool) error

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

func SetGroupAddRequest

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

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

func SetGroupAdmin

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

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

func SetGroupAnonymous

func SetGroupAnonymous(group_id int, enable bool) error

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

func SetGroupAnonymousBan

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

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

func SetGroupBan

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

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

func SetGroupCard

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

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

func SetGroupInviteRequest

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

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

func SetGroupKick

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

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

func SetGroupLeave

func SetGroupLeave(group_id int, is_dismiss bool) error

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

func SetGroupName

func SetGroupName(group_id int, group_name string) error

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

func SetGroupSpecialTitle

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

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

func SetGroupWholeBan

func SetGroupWholeBan(group_id int, enable bool) error

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

Types

type Bot

type Bot struct {
	Config Config
}

func NewBot

func NewBot() *Bot

func (*Bot) Run

func (bot *Bot) Run()

type Config

type Config struct {
	Loglvl   int
	Host     string
	MasterQQ string
	Path     string
}

type FriendAdd

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

type FriendRecall

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

type FriendRequest

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

type GroupAdmin

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

type GroupBan

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

type GroupDecrease

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

type GroupIncrease

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

type GroupRecall

type GroupRecall struct {
	Time        int64 // 事件发生的时间戳
	Self_id     int64 // 收到事件的机器人 QQ 号
	Group_id    int64 // 群号
	User_id     int64 // 消息发送者 QQ 号
	Operator_id int64 // 操作者 QQ 号
	Message_id  int64 // 被撤回的消息 ID
}

type GroupRequest

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

type GroupUpload

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

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, etype 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 // 专属头衔
	} // 发送人信息
}

群聊消息事件所使用的结构体

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  // 年龄
	} // 发送人信息
}

私聊消息事件所使用的结构体

type MetaHeartbeat

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

type MetaLifecycle

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

* Meta Event Part

type Notify

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

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