mirror of
https://github.com/Mrs4s/go-cqhttp.git
synced 2025-06-30 11:53:25 +00:00
Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
e2b6c3d607 | |||
58a3f81142 | |||
64cb539c0d | |||
3bb844d1d4 | |||
0fdb01e82c | |||
7cf199189a |
@ -46,6 +46,7 @@
|
|||||||
| /set_group_kick | [群组T人](https://cqhttp.cc/docs/4.15/#/API?id=set_group_kick-群组踢人) |
|
| /set_group_kick | [群组T人](https://cqhttp.cc/docs/4.15/#/API?id=set_group_kick-群组踢人) |
|
||||||
| /set_group_ban | [群组单人禁言](https://cqhttp.cc/docs/4.15/#/API?id=set_group_ban-群组单人禁言) |
|
| /set_group_ban | [群组单人禁言](https://cqhttp.cc/docs/4.15/#/API?id=set_group_ban-群组单人禁言) |
|
||||||
| /set_group_whole_ban | [群组全员禁言](https://cqhttp.cc/docs/4.15/#/API?id=set_group_whole_ban-群组全员禁言) |
|
| /set_group_whole_ban | [群组全员禁言](https://cqhttp.cc/docs/4.15/#/API?id=set_group_whole_ban-群组全员禁言) |
|
||||||
|
| /set_group_leave | [退出群组](https://cqhttp.cc/docs/4.15/#/API?id=set_group_leave-退出群组) |
|
||||||
| /set_group_name | 设置群组名(拓展API) |
|
| /set_group_name | 设置群组名(拓展API) |
|
||||||
| /get_image | 获取图片信息(拓展API) |
|
| /get_image | 获取图片信息(拓展API) |
|
||||||
| /get_group_msg | 获取群组消息(拓展API) |
|
| /get_group_msg | 获取群组消息(拓展API) |
|
||||||
@ -64,7 +65,8 @@
|
|||||||
| ------------------------------------------------------------ |
|
| ------------------------------------------------------------ |
|
||||||
| [私聊信息](https://cqhttp.cc/docs/4.15/#/Post?id=私聊消息) |
|
| [私聊信息](https://cqhttp.cc/docs/4.15/#/Post?id=私聊消息) |
|
||||||
| [群消息](https://cqhttp.cc/docs/4.15/#/Post?id=群消息) |
|
| [群消息](https://cqhttp.cc/docs/4.15/#/Post?id=群消息) |
|
||||||
| [群消息撤回(拓展Event)](docs/cqhttp.md#群消息撤回) |
|
| [群消息撤回(拓展Event)](docs/cqhttp.md#群消息撤回) |
|
||||||
|
| [好友消息撤回(拓展Event)](docs/cqhttp.md#好友消息撤回) |
|
||||||
| [群管理员变动](https://cqhttp.cc/docs/4.15/#/Post?id=群管理员变动) |
|
| [群管理员变动](https://cqhttp.cc/docs/4.15/#/Post?id=群管理员变动) |
|
||||||
| [群成员减少](https://cqhttp.cc/docs/4.15/#/Post?id=群成员减少) |
|
| [群成员减少](https://cqhttp.cc/docs/4.15/#/Post?id=群成员减少) |
|
||||||
| [群成员增加](https://cqhttp.cc/docs/4.15/#/Post?id=群成员增加) |
|
| [群成员增加](https://cqhttp.cc/docs/4.15/#/Post?id=群成员增加) |
|
||||||
|
@ -273,6 +273,15 @@ func (bot *CQBot) CQSetGroupWholeBan(groupId int64, enable bool) MSG {
|
|||||||
return Failed(100)
|
return Failed(100)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// https://cqhttp.cc/docs/4.15/#/API?id=set_group_leave-%E9%80%80%E5%87%BA%E7%BE%A4%E7%BB%84
|
||||||
|
func (bot *CQBot) CQSetGroupLeave(groupId int64) MSG {
|
||||||
|
if g := bot.Client.FindGroup(groupId); g != nil {
|
||||||
|
g.Quit()
|
||||||
|
return OK(nil)
|
||||||
|
}
|
||||||
|
return Failed(100)
|
||||||
|
}
|
||||||
|
|
||||||
// https://cqhttp.cc/docs/4.15/#/API?id=set_friend_add_request-%E5%A4%84%E7%90%86%E5%8A%A0%E5%A5%BD%E5%8F%8B%E8%AF%B7%E6%B1%82
|
// https://cqhttp.cc/docs/4.15/#/API?id=set_friend_add_request-%E5%A4%84%E7%90%86%E5%8A%A0%E5%A5%BD%E5%8F%8B%E8%AF%B7%E6%B1%82
|
||||||
func (bot *CQBot) CQProcessFriendRequest(flag string, approve bool) MSG {
|
func (bot *CQBot) CQProcessFriendRequest(flag string, approve bool) MSG {
|
||||||
req, ok := bot.friendReqCache.Load(flag)
|
req, ok := bot.friendReqCache.Load(flag)
|
||||||
|
@ -51,6 +51,7 @@ func NewQQBot(cli *client.QQClient, conf *global.JsonConfig) *CQBot {
|
|||||||
bot.Client.OnTempMessage(bot.tempMessageEvent)
|
bot.Client.OnTempMessage(bot.tempMessageEvent)
|
||||||
bot.Client.OnGroupMuted(bot.groupMutedEvent)
|
bot.Client.OnGroupMuted(bot.groupMutedEvent)
|
||||||
bot.Client.OnGroupMessageRecalled(bot.groupRecallEvent)
|
bot.Client.OnGroupMessageRecalled(bot.groupRecallEvent)
|
||||||
|
bot.Client.OnFriendMessageRecalled(bot.friendRecallEvent)
|
||||||
bot.Client.OnJoinGroup(bot.joinGroupEvent)
|
bot.Client.OnJoinGroup(bot.joinGroupEvent)
|
||||||
bot.Client.OnLeaveGroup(bot.leaveGroupEvent)
|
bot.Client.OnLeaveGroup(bot.leaveGroupEvent)
|
||||||
bot.Client.OnGroupMemberJoined(bot.memberJoinEvent)
|
bot.Client.OnGroupMemberJoined(bot.memberJoinEvent)
|
||||||
|
@ -213,6 +213,8 @@ func (bot *CQBot) ToElement(t string, d map[string]string, group bool) (message.
|
|||||||
}
|
}
|
||||||
t, _ := strconv.ParseInt(qq, 10, 64)
|
t, _ := strconv.ParseInt(qq, 10, 64)
|
||||||
return message.NewAt(t), nil
|
return message.NewAt(t), nil
|
||||||
|
case "share":
|
||||||
|
return message.NewUrlShare(d["url"], d["title"], d["content"], d["image"]), nil
|
||||||
default:
|
default:
|
||||||
return nil, errors.New("unsupported cq code: " + t)
|
return nil, errors.New("unsupported cq code: " + t)
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ func (bot *CQBot) privateMessageEvent(c *client.QQClient, m *message.PrivateMess
|
|||||||
"post_type": "message",
|
"post_type": "message",
|
||||||
"message_type": "private",
|
"message_type": "private",
|
||||||
"sub_type": "friend",
|
"sub_type": "friend",
|
||||||
"message_id": m.Id,
|
"message_id": ToGlobalId(m.Sender.Uin, m.Id),
|
||||||
"user_id": m.Sender.Uin,
|
"user_id": m.Sender.Uin,
|
||||||
"message": ToStringMessage(m.Elements, 0, false),
|
"message": ToStringMessage(m.Elements, 0, false),
|
||||||
"raw_message": cqm,
|
"raw_message": cqm,
|
||||||
@ -184,6 +184,20 @@ func (bot *CQBot) groupRecallEvent(c *client.QQClient, e *client.GroupMessageRec
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (bot *CQBot) friendRecallEvent(c *client.QQClient, e *client.FriendMessageRecalledEvent) {
|
||||||
|
f := c.FindFriend(e.FriendUin)
|
||||||
|
gid := ToGlobalId(e.FriendUin, e.MessageId)
|
||||||
|
log.Infof("好友 %v(%v) 撤回了消息: %v", f.Nickname, f.Uin, gid)
|
||||||
|
bot.dispatchEventMessage(MSG{
|
||||||
|
"post_type": "notice",
|
||||||
|
"notice_type": "friend_recall",
|
||||||
|
"self_id": c.Uin,
|
||||||
|
"user_id": f.Uin,
|
||||||
|
"time": e.Time,
|
||||||
|
"message_id": gid,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
func (bot *CQBot) joinGroupEvent(c *client.QQClient, group *client.GroupInfo) {
|
func (bot *CQBot) joinGroupEvent(c *client.QQClient, group *client.GroupInfo) {
|
||||||
log.Infof("Bot进入了群 %v.", formatGroupName(group))
|
log.Infof("Bot进入了群 %v.", formatGroupName(group))
|
||||||
bot.dispatchEventMessage(bot.groupIncrease(group.Code, 0, c.Uin))
|
bot.dispatchEventMessage(bot.groupIncrease(group.Code, 0, c.Uin))
|
||||||
|
@ -199,7 +199,7 @@ Type: `node`
|
|||||||
{
|
{
|
||||||
"content": "合并转发1",
|
"content": "合并转发1",
|
||||||
"sender": {
|
"sender": {
|
||||||
"nick": "发送者A",
|
"nickname": "发送者A",
|
||||||
"user_id": 10086
|
"user_id": 10086
|
||||||
},
|
},
|
||||||
"time": 1595694374
|
"time": 1595694374
|
||||||
@ -207,7 +207,7 @@ Type: `node`
|
|||||||
{
|
{
|
||||||
"content": "合并转发2[CQ:image,file=xxxx,url=xxxx]",
|
"content": "合并转发2[CQ:image,file=xxxx,url=xxxx]",
|
||||||
"sender": {
|
"sender": {
|
||||||
"nick": "发送者B",
|
"nickname": "发送者B",
|
||||||
"user_id": 10087
|
"user_id": 10087
|
||||||
},
|
},
|
||||||
"time": 1595694393
|
"time": 1595694393
|
||||||
@ -247,3 +247,14 @@ Type: `node`
|
|||||||
| `operator_id` | int64 | | 操作者id |
|
| `operator_id` | int64 | | 操作者id |
|
||||||
| `message_id` | int64 | | 被撤回的消息id |
|
| `message_id` | int64 | | 被撤回的消息id |
|
||||||
|
|
||||||
|
#### 好友消息撤回
|
||||||
|
|
||||||
|
**上报数据**
|
||||||
|
|
||||||
|
| 字段 | 类型 | 可能的值 | 说明 |
|
||||||
|
| ------------- | ------ | -------------- | -------------- |
|
||||||
|
| `post_type` | string | `notice` | 上报类型 |
|
||||||
|
| `notice_type` | string | `friend_recall`| 消息类型 |
|
||||||
|
| `user_id` | int64 | | 好友id |
|
||||||
|
| `message_id` | int64 | | 被撤回的消息id |
|
||||||
|
|
||||||
|
2
go.mod
2
go.mod
@ -3,7 +3,7 @@ module github.com/Mrs4s/go-cqhttp
|
|||||||
go 1.14
|
go 1.14
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/Mrs4s/MiraiGo v0.0.0-20200730113850-298c1bb9119f
|
github.com/Mrs4s/MiraiGo v0.0.0-20200801022834-8f1c0c053a86
|
||||||
github.com/gin-gonic/gin v1.6.3
|
github.com/gin-gonic/gin v1.6.3
|
||||||
github.com/gorilla/websocket v1.4.2
|
github.com/gorilla/websocket v1.4.2
|
||||||
github.com/guonaihong/gout v0.1.1
|
github.com/guonaihong/gout v0.1.1
|
||||||
|
6
go.sum
6
go.sum
@ -1,7 +1,9 @@
|
|||||||
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
||||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||||
github.com/Mrs4s/MiraiGo v0.0.0-20200730113850-298c1bb9119f h1:+MW9qbGu9uWJc9vs6m8+8oQLh9nK6RCW2wk3BX7Z14c=
|
github.com/Mrs4s/MiraiGo v0.0.0-20200731150933-29a5a459fd85 h1:qLNIyNtxORtHJsBcuwFkKHSXgAffxCN5H9zYrWaAr+Y=
|
||||||
github.com/Mrs4s/MiraiGo v0.0.0-20200730113850-298c1bb9119f/go.mod h1:M9wh1hjd0rie3+wm27tjPZkYMbD+MBV76CGqp2G7WSU=
|
github.com/Mrs4s/MiraiGo v0.0.0-20200731150933-29a5a459fd85/go.mod h1:M9wh1hjd0rie3+wm27tjPZkYMbD+MBV76CGqp2G7WSU=
|
||||||
|
github.com/Mrs4s/MiraiGo v0.0.0-20200801022834-8f1c0c053a86 h1:Rnfejw8W7MX3nW15a1tDW3ybAq2y95iQFGZmcQUKuRs=
|
||||||
|
github.com/Mrs4s/MiraiGo v0.0.0-20200801022834-8f1c0c053a86/go.mod h1:M9wh1hjd0rie3+wm27tjPZkYMbD+MBV76CGqp2G7WSU=
|
||||||
github.com/bwmarrin/snowflake v0.3.0 h1:xm67bEhkKh6ij1790JB83OujPR5CzNe8QuQqAgISZN0=
|
github.com/bwmarrin/snowflake v0.3.0 h1:xm67bEhkKh6ij1790JB83OujPR5CzNe8QuQqAgISZN0=
|
||||||
github.com/bwmarrin/snowflake v0.3.0/go.mod h1:NdZxfVWX+oR6y2K0o6qAYv6gIOP9rjG0/E9WsDpxqwE=
|
github.com/bwmarrin/snowflake v0.3.0/go.mod h1:NdZxfVWX+oR6y2K0o6qAYv6gIOP9rjG0/E9WsDpxqwE=
|
||||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||||
|
@ -127,6 +127,9 @@ func (s *httpServer) Run(addr, authToken string, bot *coolq.CQBot) {
|
|||||||
s.engine.Any("/set_group_name", s.SetGroupName)
|
s.engine.Any("/set_group_name", s.SetGroupName)
|
||||||
s.engine.Any("/set_group_name_async", s.SetGroupName)
|
s.engine.Any("/set_group_name_async", s.SetGroupName)
|
||||||
|
|
||||||
|
s.engine.Any("/set_group_leave", s.SetGroupLeave)
|
||||||
|
s.engine.Any("/set_group_leave_async", s.SetGroupLeave)
|
||||||
|
|
||||||
s.engine.Any("/get_image", s.GetImage)
|
s.engine.Any("/get_image", s.GetImage)
|
||||||
s.engine.Any("/get_image_async", s.GetImage)
|
s.engine.Any("/get_image_async", s.GetImage)
|
||||||
|
|
||||||
@ -317,6 +320,11 @@ func (s *httpServer) SetGroupName(c *gin.Context) {
|
|||||||
c.JSON(200, s.bot.CQSetGroupName(gid, getParam(c, "name")))
|
c.JSON(200, s.bot.CQSetGroupName(gid, getParam(c, "name")))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *httpServer) SetGroupLeave(c *gin.Context) {
|
||||||
|
gid, _ := strconv.ParseInt(getParam(c, "group_id"), 10, 64)
|
||||||
|
c.JSON(200, s.bot.CQSetGroupLeave(gid))
|
||||||
|
}
|
||||||
|
|
||||||
func (s *httpServer) GetForwardMessage(c *gin.Context) {
|
func (s *httpServer) GetForwardMessage(c *gin.Context) {
|
||||||
resId := getParam(c, "message_id")
|
resId := getParam(c, "message_id")
|
||||||
c.JSON(200, s.bot.CQGetForwardMessage(resId))
|
c.JSON(200, s.bot.CQGetForwardMessage(resId))
|
||||||
|
@ -393,6 +393,9 @@ var wsApi = map[string]func(*coolq.CQBot, gjson.Result) coolq.MSG{
|
|||||||
"set_group_name": func(bot *coolq.CQBot, p gjson.Result) coolq.MSG {
|
"set_group_name": func(bot *coolq.CQBot, p gjson.Result) coolq.MSG {
|
||||||
return bot.CQSetGroupName(p.Get("group_id").Int(), p.Get("name").Str)
|
return bot.CQSetGroupName(p.Get("group_id").Int(), p.Get("name").Str)
|
||||||
},
|
},
|
||||||
|
"set_group_leave": func(bot *coolq.CQBot, p gjson.Result) coolq.MSG {
|
||||||
|
return bot.CQSetGroupLeave(p.Get("group_id").Int())
|
||||||
|
},
|
||||||
"get_image": func(bot *coolq.CQBot, p gjson.Result) coolq.MSG {
|
"get_image": func(bot *coolq.CQBot, p gjson.Result) coolq.MSG {
|
||||||
return bot.CQGetImage(p.Get("file").Str)
|
return bot.CQGetImage(p.Get("file").Str)
|
||||||
},
|
},
|
||||||
|
Reference in New Issue
Block a user