update
This commit is contained in:
+36
-1
@@ -1,6 +1,8 @@
|
|||||||
package tg
|
package tg
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
|
"encoding/base64"
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
@@ -264,6 +266,7 @@ func (sender *Sender) Reply(msgs ...interface{}) (int, error) {
|
|||||||
case []byte:
|
case []byte:
|
||||||
rt, err = b.Send(r, string(msg.([]byte)), options...)
|
rt, err = b.Send(r, string(msg.([]byte)), options...)
|
||||||
case string:
|
case string:
|
||||||
|
message := msg.(string)
|
||||||
if edit != nil && sender.reply != nil {
|
if edit != nil && sender.reply != nil {
|
||||||
if *edit == 0 {
|
if *edit == 0 {
|
||||||
if sender.reply != nil {
|
if sender.reply != nil {
|
||||||
@@ -279,12 +282,44 @@ func (sender *Sender) Reply(msgs ...interface{}) (int, error) {
|
|||||||
}
|
}
|
||||||
return sender.reply.ID, nil
|
return sender.reply.ID, nil
|
||||||
}
|
}
|
||||||
|
paths := []string{}
|
||||||
|
for _, v := range regexp.MustCompile(`\[CQ:image,file=([^\[\]]+)\]`).FindAllStringSubmatch(message, -1) {
|
||||||
|
paths = append(paths, "data/images/"+v[1])
|
||||||
|
message = strings.Replace(message, fmt.Sprintf(`[CQ:image,file=%s]`, v[1]), "", -1)
|
||||||
|
}
|
||||||
|
if len(paths) > 0 {
|
||||||
|
is := []tb.InputMedia{}
|
||||||
|
for index, path := range paths {
|
||||||
|
if strings.Contains(message, "base64") {
|
||||||
|
decodeBytes, _ := base64.StdEncoding.DecodeString(path)
|
||||||
|
i := &tb.Photo{File: tb.FromReader(bytes.NewReader(decodeBytes))}
|
||||||
|
if index == 0 {
|
||||||
|
i.Caption = message
|
||||||
|
}
|
||||||
|
is = append(is, i)
|
||||||
|
} else {
|
||||||
|
data, err := os.ReadFile(path)
|
||||||
|
if err == nil {
|
||||||
|
url := regexp.MustCompile("(https.*)").FindString(string(data))
|
||||||
|
if url != "" {
|
||||||
|
i := &tb.Photo{File: tb.FromURL(url)}
|
||||||
|
if index == 0 {
|
||||||
|
i.Caption = message
|
||||||
|
}
|
||||||
|
is = append(is, i)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
b.SendAlbum(r, is)
|
||||||
|
} else {
|
||||||
|
rt, err = b.Send(r, message, options...)
|
||||||
|
}
|
||||||
if replace != nil {
|
if replace != nil {
|
||||||
b.Delete(&tb.Message{
|
b.Delete(&tb.Message{
|
||||||
ID: int(*edit),
|
ID: int(*edit),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
rt, err = b.Send(r, msg.(string), options...)
|
|
||||||
case core.ImagePath:
|
case core.ImagePath:
|
||||||
f, err := os.Open(string(msg.(core.ImagePath)))
|
f, err := os.Open(string(msg.(core.ImagePath)))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user