This commit is contained in:
cdle
2021-09-28 08:11:16 +08:00
parent ca4fe0aaf8
commit 4a10a587ed
4 changed files with 41 additions and 19 deletions
+2
View File
@@ -35,6 +35,8 @@ var E Edit
var R Replace var R Replace
var N Notify var N Notify
type ImageUrl string
type Faker struct { type Faker struct {
Message string Message string
matches [][]string matches [][]string
+3 -3
View File
@@ -92,14 +92,14 @@ func InitReplies() {
s.Reply(err) s.Reply(err)
return nil return nil
} }
s.Reply(httplib.Get(f).Response()) s.Reply(ImageUrl(f))
return nil return nil
} }
if reply.Request.Regex != "" { if reply.Request.Regex != "" {
d, _ := ioutil.ReadAll(rsp.Body) d, _ := ioutil.ReadAll(rsp.Body)
res := regexp.MustCompile(reply.Request.Regex).FindStringSubmatch(string(d)) res := regexp.MustCompile(reply.Request.Regex).FindStringSubmatch(string(d))
if len(res) != 0 { if len(res) != 0 {
s.Reply(httplib.Get(res[1]).Response()) s.Reply(ImageUrl(res[1]))
} }
return nil return nil
} }
@@ -176,7 +176,7 @@ func InitReplies() {
v := re[0] v := re[0]
get := strings.Replace(strings.TrimRight(v, ")"), "image(", "", -1) get := strings.Replace(strings.TrimRight(v, ")"), "image(", "", -1)
f, _ := jsonparser.GetString(data, strings.Split(get, ".")...) f, _ := jsonparser.GetString(data, strings.Split(get, ".")...)
s.Reply(httplib.Get(f).Response()) s.Reply(ImageUrl(f))
content = strings.Replace(content, v, "", -1) content = strings.Replace(content, v, "", -1)
} }
content = strings.Replace(content, `[d]`, ",", -1) content = strings.Replace(content, `[d]`, ",", -1)
+25 -11
View File
@@ -3,13 +3,12 @@ package qq
import ( import (
"bytes" "bytes"
"fmt" "fmt"
"io/ioutil"
"net/http"
"strings" "strings"
"time" "time"
"github.com/Mrs4s/MiraiGo/message" "github.com/Mrs4s/MiraiGo/message"
"github.com/Mrs4s/go-cqhttp/coolq" "github.com/Mrs4s/go-cqhttp/coolq"
"github.com/beego/beego/v2/adapter/httplib"
"github.com/cdle/sillyGirl/core" "github.com/cdle/sillyGirl/core"
) )
@@ -167,9 +166,14 @@ func (sender *Sender) Reply(msgs ...interface{}) (int, error) {
content = msg.(string) content = msg.(string)
case []byte: case []byte:
content = string(msg.([]byte)) content = string(msg.([]byte))
case *http.Response: case core.ImageUrl:
data, _ := ioutil.ReadAll(msg.(*http.Response).Body) data, err := httplib.Get(string(msg.(core.ImageUrl))).Bytes()
bot.SendPrivateMessage(m.Sender.Uin, int64(qq.GetInt("groupCode")), &message.SendingMessage{Elements: []message.IMessageElement{&coolq.LocalImageElement{Stream: bytes.NewReader(data)}}}) if err != nil {
sender.Reply(err)
return 0, nil
} else {
bot.SendPrivateMessage(m.Sender.Uin, int64(qq.GetInt("groupCode")), &message.SendingMessage{Elements: []message.IMessageElement{&coolq.LocalImageElement{Stream: bytes.NewReader(data)}}})
}
} }
if content != "" { if content != "" {
bot.SendPrivateMessage(m.Sender.Uin, int64(qq.GetInt("groupCode")), &message.SendingMessage{Elements: []message.IMessageElement{&message.TextElement{Content: content}}}) bot.SendPrivateMessage(m.Sender.Uin, int64(qq.GetInt("groupCode")), &message.SendingMessage{Elements: []message.IMessageElement{&message.TextElement{Content: content}}})
@@ -182,9 +186,14 @@ func (sender *Sender) Reply(msgs ...interface{}) (int, error) {
content = msg.(string) content = msg.(string)
case []byte: case []byte:
content = string(msg.([]byte)) content = string(msg.([]byte))
case *http.Response: case core.ImageUrl:
data, _ := ioutil.ReadAll(msg.(*http.Response).Body) data, err := httplib.Get(string(msg.(core.ImageUrl))).Bytes()
bot.SendPrivateMessage(m.Sender.Uin, int64(qq.GetInt("groupCode")), &message.SendingMessage{Elements: []message.IMessageElement{&coolq.LocalImageElement{Stream: bytes.NewReader(data)}}}) if err != nil {
sender.Reply(err)
return 0, nil
} else {
bot.SendPrivateMessage(m.Sender.Uin, int64(qq.GetInt("groupCode")), &message.SendingMessage{Elements: []message.IMessageElement{&coolq.LocalImageElement{Stream: bytes.NewReader(data)}}})
}
} }
if content != "" { if content != "" {
bot.SendPrivateMessage(m.Sender.Uin, int64(qq.GetInt("groupCode")), &message.SendingMessage{Elements: []message.IMessageElement{&message.TextElement{Content: content}}}) bot.SendPrivateMessage(m.Sender.Uin, int64(qq.GetInt("groupCode")), &message.SendingMessage{Elements: []message.IMessageElement{&message.TextElement{Content: content}}})
@@ -199,9 +208,14 @@ func (sender *Sender) Reply(msgs ...interface{}) (int, error) {
case []byte: case []byte:
content = string(msg.([]byte)) content = string(msg.([]byte))
case *http.Response: case core.ImageUrl:
data, _ := ioutil.ReadAll(msg.(*http.Response).Body) data, err := httplib.Get(string(msg.(core.ImageUrl))).Bytes()
id = bot.SendGroupMessage(m.GroupCode, &message.SendingMessage{Elements: []message.IMessageElement{&message.AtElement{Target: m.Sender.Uin}, &message.TextElement{Content: "\n"}, &coolq.LocalImageElement{Stream: bytes.NewReader(data)}}}) if err != nil {
sender.Reply(err)
return 0, nil
} else {
id = bot.SendGroupMessage(m.GroupCode, &message.SendingMessage{Elements: []message.IMessageElement{&message.AtElement{Target: m.Sender.Uin}, &message.TextElement{Content: "\n"}, &coolq.LocalImageElement{Stream: bytes.NewReader(data)}}})
}
} }
if content != "" { if content != "" {
if strings.Contains(content, "\n") { if strings.Contains(content, "\n") {
+11 -5
View File
@@ -2,10 +2,10 @@ package tg
import ( import (
"fmt" "fmt"
"net/http"
"strings" "strings"
"time" "time"
"github.com/astaxie/beego/httplib"
"github.com/beego/beego/v2/core/logs" "github.com/beego/beego/v2/core/logs"
"github.com/cdle/sillyGirl/core" "github.com/cdle/sillyGirl/core"
tb "gopkg.in/tucnak/telebot.v2" tb "gopkg.in/tucnak/telebot.v2"
@@ -196,10 +196,16 @@ func (sender *Sender) Reply(msgs ...interface{}) (int, error) {
}) })
} }
rt, err = b.Send(r, msg.(string), options...) rt, err = b.Send(r, msg.(string), options...)
case *http.Response: case core.ImageUrl:
rts, err := b.SendAlbum(r, tb.Album{&tb.Photo{File: tb.FromReader(msg.(*http.Response).Body)}}, options...) rsp, err := httplib.Get(string(msg.(core.ImageUrl))).Response()
if err == nil { if err != nil {
rt = &rts[0] sender.Reply(err)
return 0, nil
} else {
rts, err := b.SendAlbum(r, tb.Album{&tb.Photo{File: tb.FromReader(rsp.Body)}}, options...)
if err == nil {
rt = &rts[0]
}
} }
} }
if err != nil { if err != nil {