Skip to content

Commit 9dade7f

Browse files
committed
fix: customize tts download
1 parent f043fbf commit 9dade7f

4 files changed

Lines changed: 41 additions & 4 deletions

File tree

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ go 1.20
55
require (
66
github.com/Baidu-AIP/golang-sdk v1.1.1
77
github.com/FloatTech/AnimeAPI v1.6.1-0.20230827144904-758793598579
8-
github.com/FloatTech/floatbox v0.0.0-20230331064925-9af336a84944
8+
github.com/FloatTech/floatbox v0.0.0-20230827160415-f0865337a824
99
github.com/FloatTech/gg v1.1.3-0.20230226151425-6ea91286ba08
1010
github.com/FloatTech/imgfactory v0.2.2-0.20230413152719-e101cc3606ef
1111
github.com/FloatTech/rendercard v0.0.10-0.20230223064326-45d29fa4ede9

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym
44
github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
55
github.com/FloatTech/AnimeAPI v1.6.1-0.20230827144904-758793598579 h1:IMbVe2zNXAgoNaSnNzXq9F3PSgf6tbqbDUjzBwmCOkA=
66
github.com/FloatTech/AnimeAPI v1.6.1-0.20230827144904-758793598579/go.mod h1:6vYu7bW5gPQsBnXB+I6yk+eJQaaAwusoQ/I/wQMwOAI=
7-
github.com/FloatTech/floatbox v0.0.0-20230331064925-9af336a84944 h1:/eQoMa6Aj3coF5F7yhzZe1+SzX6SItul7MW8//pl18o=
8-
github.com/FloatTech/floatbox v0.0.0-20230331064925-9af336a84944/go.mod h1:FwQm6wk+b4wuW54KCKn3zccMX47Q5apnHD/Yakzv0fI=
7+
github.com/FloatTech/floatbox v0.0.0-20230827160415-f0865337a824 h1:w72fzQg1Y9+VLSRl7iKzaZ6fG3myyMJfpOSajcjaMDM=
8+
github.com/FloatTech/floatbox v0.0.0-20230827160415-f0865337a824/go.mod h1:FwQm6wk+b4wuW54KCKn3zccMX47Q5apnHD/Yakzv0fI=
99
github.com/FloatTech/gg v1.1.3-0.20230226151425-6ea91286ba08 h1:dPLeoiTVSBlgls+66EB/UJ2e38BaASmBN5nANaycSBU=
1010
github.com/FloatTech/gg v1.1.3-0.20230226151425-6ea91286ba08/go.mod h1:uzPzAeT35egARdRuu+1oyjU3CmTwCceoq3Vvje7LpcI=
1111
github.com/FloatTech/imgfactory v0.2.2-0.20230413152719-e101cc3606ef h1:CJbK/2FRwPuZpeb6M4sWK2d7oXDnBEGhpkQuQrgc91A=

plugin/ai_reply/main.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,17 @@
22
package aireply
33

44
import (
5+
"crypto/md5"
6+
"encoding/hex"
7+
"os"
58
"regexp"
69
"strconv"
10+
"strings"
711
"time"
812

913
"github.com/FloatTech/AnimeAPI/tts/genshin"
14+
"github.com/FloatTech/floatbox/binary"
15+
"github.com/FloatTech/floatbox/file"
1016
ctrl "github.com/FloatTech/zbpctrl"
1117
"github.com/FloatTech/zbputils/control"
1218
"github.com/FloatTech/zbputils/ctxext"
@@ -75,6 +81,12 @@ func init() { // 插件主体
7581
})
7682

7783
endpre := regexp.MustCompile(`\pP$`)
84+
ttscachedir := ent.DataFolder() + "cache/"
85+
_ = os.RemoveAll(ttscachedir)
86+
err := os.MkdirAll(ttscachedir, 0755)
87+
if err != nil {
88+
panic(err)
89+
}
7890
ent.OnMessage(zero.OnlyToMe).SetBlock(true).Limit(ctxext.LimitByUser).
7991
Handle(func(ctx *zero.Ctx) {
8092
msg := ctx.ExtractPlainText()
@@ -98,6 +110,17 @@ func init() { // 插件主体
98110
ctx.SendChain(message.Reply(ctx.Event.MessageID), message.Text(reply))
99111
return
100112
}
113+
if strings.HasPrefix(rec, "http") {
114+
b := md5.Sum(binary.StringToBytes(rec))
115+
fn := hex.EncodeToString(b[:])
116+
fp := ttscachedir + fn
117+
if file.IsNotExist(fp) {
118+
if file.DownloadTo(rec, fp) != nil {
119+
return
120+
}
121+
}
122+
rec = "file:///" + file.BOTPATH + "/" + fp
123+
}
101124
// 发送语音
102125
if id := ctx.SendChain(message.Record(rec)); id.ID() == 0 {
103126
ctx.SendChain(message.Reply(ctx.Event.MessageID), message.Text(reply))

plugin/moegoe/main.go

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,17 @@
22
package moegoe
33

44
import (
5+
"crypto/md5"
6+
"encoding/hex"
57
"fmt"
68
"net/url"
79

810
zero "github.com/wdvxdr1123/ZeroBot"
911
"github.com/wdvxdr1123/ZeroBot/message"
1012

1113
"github.com/FloatTech/AnimeAPI/tts/genshin"
14+
"github.com/FloatTech/floatbox/binary"
15+
"github.com/FloatTech/floatbox/file"
1216
ctrl "github.com/FloatTech/zbpctrl"
1317
"github.com/FloatTech/zbputils/control"
1418
"github.com/FloatTech/zbputils/ctxext"
@@ -53,6 +57,16 @@ func init() {
5357
}
5458
text := ctx.State["regex_matched"].([]string)[2]
5559
name := ctx.State["regex_matched"].([]string)[1]
56-
ctx.SendChain(message.Record(fmt.Sprintf(genshin.CNAPI, name, url.QueryEscape(text), url.QueryEscape(.k))))
60+
rec := fmt.Sprintf(genshin.CNAPI, name, url.QueryEscape(text), url.QueryEscape(.k))
61+
b := md5.Sum(binary.StringToBytes(rec))
62+
fn := hex.EncodeToString(b[:])
63+
fp := "data/tts/" + fn
64+
if file.IsNotExist(fp) {
65+
if file.DownloadTo(rec, fp) != nil {
66+
return
67+
}
68+
}
69+
rec = "file:///" + file.BOTPATH + "/" + fp
70+
ctx.SendChain(message.Record(rec))
5771
})
5872
}

0 commit comments

Comments
 (0)