mirror of
https://github.com/Mrs4s/go-cqhttp.git
synced 2025-05-04 19:17:37 +08:00
Added unbreakable feature
- Reply message customizable - Forward message able to customize time Signed-off-by: Sam <lau.sam745033858@gmail.com>
This commit is contained in:
parent
19b6106c93
commit
bdc2b03690
13
coolq/api.go
13
coolq/api.go
@ -260,10 +260,11 @@ func (bot *CQBot) CQSendGroupForwardMessage(groupId int64, m gjson.Result) MSG {
|
||||
SenderId: sender.Uin,
|
||||
SenderName: (&sender).DisplayName(),
|
||||
Time: func() int32 {
|
||||
if hasCustom {
|
||||
msgTime := m["time"].(int32)
|
||||
if hasCustom && msgTime == 0 {
|
||||
return int32(ts.Unix())
|
||||
}
|
||||
return m["time"].(int32)
|
||||
return msgTime
|
||||
}(),
|
||||
Message: bot.ConvertStringMessage(m["message"].(string), true),
|
||||
})
|
||||
@ -273,6 +274,8 @@ func (bot *CQBot) CQSendGroupForwardMessage(groupId int64, m gjson.Result) MSG {
|
||||
return
|
||||
}
|
||||
uin, _ := strconv.ParseInt(e.Get("data.uin").Str, 10, 64)
|
||||
msgTime, err := strconv.ParseInt(e.Get("data.time").Str, 10, 64)
|
||||
if err != nil { msgTime = ts.Unix()}
|
||||
name := e.Get("data.name").Str
|
||||
c := e.Get("data.content")
|
||||
if c.IsArray() {
|
||||
@ -292,7 +295,7 @@ func (bot *CQBot) CQSendGroupForwardMessage(groupId int64, m gjson.Result) MSG {
|
||||
nodes = append(nodes, &message.ForwardNode{
|
||||
SenderId: uin,
|
||||
SenderName: name,
|
||||
Time: int32(ts.Unix()),
|
||||
Time: int32(msgTime),
|
||||
Message: []message.IMessageElement{bot.Client.UploadGroupForwardMessage(groupId, &message.ForwardMessage{Nodes: taowa})},
|
||||
})
|
||||
return
|
||||
@ -325,7 +328,7 @@ func (bot *CQBot) CQSendGroupForwardMessage(groupId int64, m gjson.Result) MSG {
|
||||
nodes = append(nodes, &message.ForwardNode{
|
||||
SenderId: uin,
|
||||
SenderName: name,
|
||||
Time: int32(ts.Unix()),
|
||||
Time: int32(msgTime),
|
||||
Message: newElem,
|
||||
})
|
||||
return
|
||||
@ -343,7 +346,7 @@ func (bot *CQBot) CQSendGroupForwardMessage(groupId int64, m gjson.Result) MSG {
|
||||
if len(sendNodes) > 0 {
|
||||
gm := bot.Client.SendGroupForwardMessage(groupId, &message.ForwardMessage{Nodes: sendNodes})
|
||||
return OK(MSG{
|
||||
"message_id": ToGlobalId(groupId, gm.Id),
|
||||
"message_id": bot.InsertGroupMessage(gm),
|
||||
})
|
||||
}
|
||||
return Failed(100)
|
||||
|
@ -18,6 +18,7 @@ import (
|
||||
"runtime"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/Mrs4s/MiraiGo/binary"
|
||||
"github.com/Mrs4s/MiraiGo/message"
|
||||
@ -411,6 +412,7 @@ func (bot *CQBot) ConvertStringMessage(msg string, group bool) (r []message.IMes
|
||||
}
|
||||
}
|
||||
mid, err := strconv.Atoi(params["id"])
|
||||
customText := params["text"]
|
||||
if err == nil {
|
||||
org := bot.GetMessage(int32(mid))
|
||||
if org != nil {
|
||||
@ -424,6 +426,25 @@ func (bot *CQBot) ConvertStringMessage(msg string, group bool) (r []message.IMes
|
||||
}, r...)
|
||||
return
|
||||
}
|
||||
} else if customText != "" {
|
||||
sender, err := strconv.ParseInt(params["qq"], 10, 64)
|
||||
if err != nil {
|
||||
log.Warnf("警告:自定义Reply 元素中必须包含QQ的Uin")
|
||||
return
|
||||
}
|
||||
msgTime, err := strconv.ParseInt(params["time"], 10, 64)
|
||||
if err != nil {
|
||||
msgTime = time.Now().Unix()
|
||||
}
|
||||
r = append([]message.IMessageElement{
|
||||
&message.ReplyElement{
|
||||
ReplySeq: int32(0),
|
||||
Sender: sender,
|
||||
Time: int32(msgTime),
|
||||
Elements: bot.ConvertStringMessage(customText, group),
|
||||
},
|
||||
}, r...)
|
||||
return
|
||||
}
|
||||
}
|
||||
if t == "forward" { // 单独处理转发
|
||||
@ -490,6 +511,7 @@ func (bot *CQBot) ConvertObjectMessage(m gjson.Result, group bool) (r []message.
|
||||
}
|
||||
}
|
||||
mid, err := strconv.Atoi(e.Get("data").Get("id").String())
|
||||
customText := e.Get("data").Get("text").String()
|
||||
if err == nil {
|
||||
org := bot.GetMessage(int32(mid))
|
||||
if org != nil {
|
||||
@ -503,6 +525,25 @@ func (bot *CQBot) ConvertObjectMessage(m gjson.Result, group bool) (r []message.
|
||||
}, r...)
|
||||
return
|
||||
}
|
||||
} else if customText != "" {
|
||||
sender, err := strconv.ParseInt(e.Get("data").Get("qq").String(), 10, 64)
|
||||
if err != nil {
|
||||
log.Warnf("警告:自定义Reply 元素中必须包含QQ的Uin")
|
||||
return
|
||||
}
|
||||
msgTime, err := strconv.ParseInt(e.Get("data").Get("time").String(), 10, 64)
|
||||
if err != nil {
|
||||
msgTime = time.Now().Unix()
|
||||
}
|
||||
r = append([]message.IMessageElement{
|
||||
&message.ReplyElement{
|
||||
ReplySeq: int32(0),
|
||||
Sender: sender,
|
||||
Time: int32(msgTime),
|
||||
Elements: bot.ConvertStringMessage(customText, group),
|
||||
},
|
||||
}, r...)
|
||||
return
|
||||
}
|
||||
}
|
||||
if t == "forward" {
|
||||
|
@ -94,13 +94,23 @@ Type : `reply`
|
||||
|
||||
范围: **发送/接收**
|
||||
|
||||
> 注意: 如果id存在则优先处理id
|
||||
|
||||
参数:
|
||||
|
||||
| 参数名 | 类型 | 说明 |
|
||||
| ------ | ---- | ------------------------------------- |
|
||||
| `id` | int | 回复时所引用的消息id, 必须为本群消息. |
|
||||
| `text` | string | 自定义回复的信息 |
|
||||
| `qq` | int64 | 自定义回复时的自定义QQ, 如果使用自定义信息必须指定. |
|
||||
| `time` | int64 | 自定义回复时的时间, 格式为Unix时间 |
|
||||
|
||||
|
||||
|
||||
示例: `[CQ:reply,id=123456]`
|
||||
\
|
||||
自定义回复示例: `[CQ:reply,text=Hello World,qq=10086,time=3376656000]`
|
||||
|
||||
|
||||
### 红包
|
||||
|
||||
@ -197,7 +207,7 @@ Type: `node`
|
||||
| `id` | int32 | 转发消息id | 直接引用他人的消息合并转发, 实际查看顺序为原消息发送顺序 **与下面的自定义消息二选一** |
|
||||
| `name` | string | 发送者显示名字 | 用于自定义消息 (自定义消息并合并转发,实际查看顺序为自定义消息段顺序) |
|
||||
| `uin` | int64 | 发送者QQ号 | 用于自定义消息 |
|
||||
| `content` | message | 具体消息 | 用于自定义消息 **不支持引用回复** |
|
||||
| `content` | message | 具体消息 | 用于自定义消息 |
|
||||
|
||||
特殊说明: **需要使用单独的API `/send_group_forward_msg` 发送,并且由于消息段较为复杂,仅支持Array形式入参。 如果引用消息和自定义消息同时出现,实际查看顺序将取消息段顺序. 另外按 [CQHTTP](https://cqhttp.cc/docs/4.15/#/Message?id=格式) 文档说明, `data` 应全为字符串, 但由于需要接收`message` 类型的消息, 所以 *仅限此Type的content字段* 支持Array套娃**
|
||||
|
||||
@ -259,7 +269,8 @@ Type: `node`
|
||||
"data": {
|
||||
"name": "自定义发送者",
|
||||
"uin": "10086",
|
||||
"content": "我是自定义消息"
|
||||
"content": "我是自定义消息",
|
||||
"time": "3376656000"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -539,6 +550,12 @@ Type: `tts`
|
||||
| `group_id` | int64 | 群号 |
|
||||
| `messages` | forward node[] | 自定义转发消息, 具体看CQCode |
|
||||
|
||||
响应数据
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
| ------------ | ------ | ------ |
|
||||
| `message_id` | string | 消息id |
|
||||
|
||||
### 获取中文分词
|
||||
|
||||
终结点: `/.get_word_slices`
|
||||
|
Loading…
x
Reference in New Issue
Block a user