OPQBot Wiki
文章还在施工和完善呢!

前言

目前IOTQQ框架挺多的,许多功能也挺强大的,但我想要的是一个完全异步,自带队列,而且可以编译出二进制文件的框架,所以就有了这个项目

简单介绍

GitHub go.mod Go version (branch & subdirectory of monorepo)
GitHub tag (latest SemVer pre-release)
GitHub


支持的功能

入门使用

安装框架 (就一条命令欧~)

go get github.com/mcoo/OPQBot

使用

    opqBot := OPQBot.NewBotManager(2629326992,"http://192.168.2.2:8899") //前面是机器人的QQ号,后面参数是机器人接口的地址
    err := opqBot.Start()
    if err != nil {
        log.Println(err.Error())
    }
    defer opqBot.Stop()

绑定事件 (别问我啥是事件...)

群消息事件

err = opqBot.AddEvent(OPQBot.EventNameOnGroupMessage, func(botQQ int64, packet *OPQBot.GroupMsgPack) {
    log.Println(botQQ,packet)
})

好友消息事件

err = opqBot.AddEvent(OPQBot.EventNameOnFriendMessage, func(botQQ int64, packet *OPQBot.FriendMsgPack) {
    log.Println(botQQ,packet)
})

群禁言事件

err = opqBot.AddEvent(OPQBot.EventNameOnGroupShut, func(botQQ int64, packet *OPQBot.GroupShutPack) {
        log.Println(botQQ, packet)
    })

群成员撤回消息事件

    err = opqBot.AddEvent(OPQBot.EventNameOnGroupRevoke, func(botQQ int64, e *OPQBot.GroupRevokePack) {
        log.Println(e)
    })

管理员变更事件

    err = opqBot.AddEvent(OPQBot.EventNameOnGroupAdmin, func(botQQ int64, e *OPQBot.GroupAdminPack) {
        log.Println(e)
    })

主动退群成功事件

    err = opqBot.AddEvent(OPQBot.EventNameOnGroupExitSuccess, func(botQQ int64, e *OPQBot.GroupExitSuccessPack) {
        log.Println(e)
    })

群成员退出群聊事件

    err = opqBot.AddEvent(OPQBot.EventNameOnGroupExit, func(botQQ int64, e *OPQBot.GroupExitPack) {
        log.Println(e)
    })

某人进群事件

    err = opqBot.AddEvent(OPQBot.EventNameOnGroupJoin, func(botQQ int64, e *OPQBot.GroupJoinPack) {
        log.Println(e)
    })

群系统消息相关通知 礼物通知 头衔变更通知等

    err = opqBot.AddEvent(OPQBot.EventNameOnGroupSystemNotify, func(botQQ int64, e *OPQBot.GroupSystemNotifyPack) {
        log.Println(e)
    })

邀请加群,加群申请等管理员事件

    err = opqBot.AddEvent(OPQBot.EventNameOnGroupAdminSysNotify, func(botQQ int64, e *OPQBot.GroupAdminSysNotifyPack) {
        log.Println(e)
    })

机器人连接断开事件

err = opqBot.AddEvent(OPQBot.EventNameOnConnected, func() {
        log.Println("连接成功!!!")
    })
    if err != nil {
        log.Println(err.Error())
    }
    err = opqBot.AddEvent(OPQBot.EventNameOnDisconnected, func() {
        log.Println("连接断开!!")
    })
    if err != nil {
        log.Println(err.Error())
    }

其他事件

    err = opqBot.AddEvent(OPQBot.EventNameOnOther, func(botQQ int64, e interface{}) {
        log.Println(e)
    })

发送消息函数

opqbot.Send(OPQBot.SendMsgPack{
                    SendToType:   OPQBot.SendToTypeGroup,
                    ToUserUid:    packet.FromGroupID,
                    Content:      OPQBot.SendTypePicMsgByBase64Content{
                        Content: OPQBot.MacroAt([]int64{packet.FromUserID})+"30s后撤回哟,注意身体 "+tu.Data[0].Title+"\n"+OPQBot.MacroId(),
                        Base64:  base64.StdEncoding.EncodeToString(res.Content()),
                        Flash:   false,
                    },
                    CallbackFunc: func(Code int, Info string,record OPQBot.MyRecord) {
                        time.Sleep(30*time.Second)
                        _ = opqbot.ReCallMsg(packet.FromGroupID,record.MsgRandom,record.MsgSeq)
                    },
                })

上面CallbackFunc可以不填,只有消息内容中含有宏OPQBot.MacroId() record 中才有消息的值,才能去用于撤回消息!

功能函数

success := opqBot.Zan(packet.FromUserID, 50)

提供base64发送语音(即将被移除)

opqBot.OldSendVoice(packet.FromGroupID,2,b)

撤回消息

_ = opqBot.ReCallMsg(record.FromGroupID, record.MsgRandom, record.MsgSeq)

刷新Key (勿滥用)

err := opqBot.RefreshKey()

戳一戳

err := opqBot.Chuo(1, packet.FromGroupID, packet.FromUserID)
                if err != nil {
                    log.Println(err.Error())
                }

设置队列速度

// 设置发送队列每次发送的间隔时间 默认1000ms
    opqBot.SetSendDelayed(1000)

func MacroAt(qqs []int64) string
//返回At的宏

func MacroAtAll() string
//返回At所有人的宏

func MacroId() string
//返回撤回消息使用的ID

example

主要看仓库里的example,博客可能更新不及时!!!

Qzone空间相关

发送说说

func (m *Manager) SendShuoShuoWithPic(Content, picBo, richVal string) (SendShuoShuoResult, error) //发送图文的 通过GetPicBoAndRichVal 函数可以将上传的图片转为需要的值
func (m *Manager) SendShuoShuo(Content string) (SendShuoShuoResult, error) //全文本的

点赞

func (m *Manager) Like(unikey, curkey, appid string) error

获取主页的说说

func (m *Manager) GetShuoShuoList() (ShuoshuoList, error)

更新记录

20210318
简化发送代码
20210319
将宏移出BotManager,添加对发送队列每次发送时间的控制
20210322
添加发送函数的中间件
20210403
增加发送回调和优化中间件,基础功能完善
20210405
添加对撤回功能的完善和支持 注意看一下 example
20210406
戳一戳功能,example 即是文档
20210407
删除多余log,完善戳戳
20210420
添加Mp3转Silk功能和一些其他的功能
20210424
添加事件的中间件,向下兼容以前的代码,使用看example,完善silk功能
20210427
修复SocketIO数据畸形的问题,添加群上传功能
20210428
添加内置session 相关内容看Wiki
20210508
添加空间的相关函数
暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!