Skip to content

Commit f89b6f5

Browse files
guohuiyuanGuohuiyuan
andauthored
⚡️wordle逻辑优化,bilibilipush、translate添加信息 (#179)
* ✨添加查成分功能 * 🚨修lint * 🚨减少空格 * 🐛修改网址 * 🐛修改vup数量错误问题 * 🐛图片读取不了,就不读了 * 🐛 固定头像大小,bilibilipush调公有库 * 🎨 修改json转换 * ✨ bilibilipush添加新类型,同时修改命令正则,wordle添加时间提醒,和单词语义,translate充实信息 * ⚡️使用公用的翻译函数 * 🚨 添加return和stop Co-authored-by: Guohuiyuan <[email protected]>
1 parent ec513e8 commit f89b6f5

File tree

4 files changed

+78
-41
lines changed

4 files changed

+78
-41
lines changed

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -349,11 +349,11 @@ print("run[CQ:image,file="+j["img"]+"]")
349349
- [x] 骂我
350350
- [x] 大力骂我
351351
- **b站推送** `import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/bilibili_push"`
352-
- [x] 添加订阅[uid]
353-
- [x] 取消订阅[uid]
354-
- [x] 取消动态订阅[uid]
355-
- [x] 取消直播订阅[uid]
356-
- [x] 推送列表
352+
- [x] 添加b站订阅[uid]
353+
- [x] 取消b站订阅[uid]
354+
- [x] 取消b站动态订阅[uid]
355+
- [x] 取消b站直播订阅[uid]
356+
- [x] b站推送列表
357357
- **网易云音乐热评** `import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/wangyiyun"`
358358
- [x] 来份网易云热评
359359
- **b站视频链接解析** `import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/bilibili_parse"`

plugin/bilibili_push/bilibili_push.go

Lines changed: 45 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,14 @@ var bdb *bilibilipushdb
3636
var (
3737
lastTime = map[int64]int64{}
3838
typeMsg = map[int64]string{
39-
1: "转发了一条动态",
40-
2: "有图营业",
41-
4: "无图营业",
42-
8: "发布了新投稿",
43-
16: "发布了短视频",
44-
64: "发布了新专栏",
45-
256: "发布了新音频",
39+
1: "转发了一条动态",
40+
2: "有图营业",
41+
4: "无图营业",
42+
8: "发布了新投稿",
43+
16: "发布了短视频",
44+
64: "发布了新专栏",
45+
256: "发布了新音频",
46+
2048: "发布了新简报",
4647
}
4748
liveStatus = map[int64]int{}
4849
uidErrorMsg = map[int]string{
@@ -59,11 +60,11 @@ func init() {
5960
en := control.Register(serviceName, &control.Options{
6061
DisableOnDefault: false,
6162
Help: "bilibilipush\n" +
62-
"- 添加订阅[uid]\n" +
63-
"- 取消订阅[uid]\n" +
64-
"- 取消动态订阅[uid]\n" +
65-
"- 取消直播订阅[uid]\n" +
66-
"- 推送列表",
63+
"- 添加b站订阅[uid]\n" +
64+
"- 取消b站订阅[uid]\n" +
65+
"- 取消b站动态订阅[uid]\n" +
66+
"- 取消b站直播订阅[uid]\n" +
67+
"- b站推送列表",
6768
PrivateDataFolder: serviceName,
6869
})
6970

@@ -75,7 +76,7 @@ func init() {
7576
log.Println("[bilibilipush]加载bilibilipush数据库")
7677
}()
7778

78-
en.OnRegex(`^添加订阅\s?(\d+)$`, zero.UserOrGrpAdmin).SetBlock(true).Handle(func(ctx *zero.Ctx) {
79+
en.OnRegex(`^添加b站订阅\s?(\d+)$`, zero.UserOrGrpAdmin).SetBlock(true).Handle(func(ctx *zero.Ctx) {
7980
buid, _ := strconv.ParseInt(ctx.State["regex_matched"].([]string)[1], 10, 64)
8081
var name string
8182
var ok bool
@@ -101,7 +102,7 @@ func init() {
101102
ctx.SendChain(message.Text("已添加" + name + "的订阅"))
102103
}
103104
})
104-
en.OnRegex(`^取消订阅\s?(\d+)$`, zero.UserOrGrpAdmin).SetBlock(true).Handle(func(ctx *zero.Ctx) {
105+
en.OnRegex(`^取消b站订阅\s?(\d+)$`, zero.UserOrGrpAdmin).SetBlock(true).Handle(func(ctx *zero.Ctx) {
105106
buid, _ := strconv.ParseInt(ctx.State["regex_matched"].([]string)[1], 10, 64)
106107
var name string
107108
var ok bool
@@ -127,7 +128,7 @@ func init() {
127128
ctx.SendChain(message.Text("已取消" + name + "的订阅"))
128129
}
129130
})
130-
en.OnRegex(`^取消动态订阅\s?(\d+)$`, zero.UserOrGrpAdmin).SetBlock(true).Handle(func(ctx *zero.Ctx) {
131+
en.OnRegex(`^取消b站动态订阅\s?(\d+)$`, zero.UserOrGrpAdmin).SetBlock(true).Handle(func(ctx *zero.Ctx) {
131132
buid, _ := strconv.ParseInt(ctx.State["regex_matched"].([]string)[1], 10, 64)
132133
var name string
133134
var ok bool
@@ -153,7 +154,7 @@ func init() {
153154
ctx.SendChain(message.Text("已取消" + name + "的动态订阅"))
154155
}
155156
})
156-
en.OnRegex(`^取消直播订阅\s?(\d+)$`, zero.UserOrGrpAdmin).SetBlock(true).Handle(func(ctx *zero.Ctx) {
157+
en.OnRegex(`^取消b站直播订阅\s?(\d+)$`, zero.UserOrGrpAdmin).SetBlock(true).Handle(func(ctx *zero.Ctx) {
157158
buid, _ := strconv.ParseInt(ctx.State["regex_matched"].([]string)[1], 10, 64)
158159
var name string
159160
var ok bool
@@ -179,14 +180,14 @@ func init() {
179180
ctx.SendChain(message.Text("已取消" + name + "的直播订阅"))
180181
}
181182
})
182-
en.OnFullMatch("推送列表", zero.UserOrGrpAdmin).SetBlock(true).Handle(func(ctx *zero.Ctx) {
183+
en.OnFullMatch("b站推送列表", zero.UserOrGrpAdmin).SetBlock(true).Handle(func(ctx *zero.Ctx) {
183184
gid := ctx.Event.GroupID
184185
if gid == 0 {
185186
gid = -ctx.Event.UserID
186187
}
187188
bpl := bdb.getAllPushByGroup(gid)
188189
fmt.Println(bpl)
189-
msg := "--------推送列表--------"
190+
msg := "--------b站推送列表--------"
190191
for _, v := range bpl {
191192
if _, ok := upMap[v.BilibiliUID]; !ok {
192193
bdb.updateAllUp()
@@ -401,6 +402,19 @@ func sendDynamic() {
401402
msg = append(msg, message.Text(cTitle))
402403
cCover := gjson.Get(cOrigin, "cover").String()
403404
msg = append(msg, message.Image(cCover))
405+
case 2048:
406+
cName := gjson.Get(cOrigin, "user.uname").String()
407+
msg = append(msg, message.Text(cName+typeMsg[cOrigType]+"\n"))
408+
cContent := gjson.Get(cOrigin, "vest.content").String()
409+
msg = append(msg, message.Text(cContent+"\n"))
410+
cTitle := gjson.Get(cOrigin, "sketch.title").String()
411+
msg = append(msg, message.Text(cTitle+"\n"))
412+
cDescText := gjson.Get(cOrigin, "sketch.desc_text").String()
413+
msg = append(msg, message.Text(cDescText))
414+
cCoverURL := gjson.Get(cOrigin, "sketch.cover_url").String()
415+
msg = append(msg, message.Image(cCoverURL))
416+
cTargetURL := gjson.Get(cOrigin, "sketch.target_url").String()
417+
msg = append(msg, message.Text("简报链接:"+cTargetURL+"\n"))
404418
default:
405419
msg = append(msg, message.Text("未知动态类型"+strconv.FormatInt(cOrigType, 10)+"\n"))
406420
}
@@ -462,6 +476,19 @@ func sendDynamic() {
462476
msg = append(msg, message.Text(cTitle))
463477
cCover := gjson.Get(cardStr, "cover").String()
464478
msg = append(msg, message.Image(cCover))
479+
case 2048:
480+
cName := gjson.Get(cardStr, "user.uname").String()
481+
msg = append(msg, message.Text(cName+typeMsg[cType]+"\n"))
482+
cContent := gjson.Get(cardStr, "vest.content").String()
483+
msg = append(msg, message.Text(cContent+"\n"))
484+
cTitle := gjson.Get(cardStr, "sketch.title").String()
485+
msg = append(msg, message.Text(cTitle+"\n"))
486+
cDescText := gjson.Get(cardStr, "sketch.desc_text").String()
487+
msg = append(msg, message.Text(cDescText))
488+
cCoverURL := gjson.Get(cardStr, "sketch.cover_url").String()
489+
msg = append(msg, message.Image(cCoverURL))
490+
cTargetURL := gjson.Get(cardStr, "sketch.target_url").String()
491+
msg = append(msg, message.Text("简报链接:"+cTargetURL+"\n"))
465492
default:
466493
msg = append(msg, message.Text("未知动态类型"+strconv.FormatInt(cType, 10)+"\n"))
467494
}

plugin/translation/tl.go

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,11 @@
22
package translation
33

44
import (
5-
"github.com/tidwall/gjson"
6-
zero "github.com/wdvxdr1123/ZeroBot"
7-
"github.com/wdvxdr1123/ZeroBot/message"
8-
5+
"github.com/FloatTech/AnimeAPI/tl"
96
control "github.com/FloatTech/zbputils/control"
107
"github.com/FloatTech/zbputils/ctxext"
11-
"github.com/FloatTech/zbputils/process"
12-
"github.com/FloatTech/zbputils/web"
8+
zero "github.com/wdvxdr1123/ZeroBot"
9+
"github.com/wdvxdr1123/ZeroBot/message"
1310
)
1411

1512
func init() {
@@ -20,13 +17,11 @@ func init() {
2017
}).OnRegex(`^>TL\s(-.{1,10}? )?(.*)$`).SetBlock(true).Limit(ctxext.LimitByUser).
2118
Handle(func(ctx *zero.Ctx) {
2219
msg := []string{ctx.State["regex_matched"].([]string)[2]}
23-
data, err := web.GetData("https://api.cloolc.club/fanyi?data=" + msg[0])
20+
data, err := tl.Translate(msg[0])
2421
if err != nil {
25-
ctx.SendChain(message.Text("ERROR:", err))
22+
ctx.SendChain(message.Text("Error:", data))
23+
return
2624
}
27-
info := gjson.ParseBytes(data)
28-
repo := info.Get("data.0")
29-
process.SleepAbout1sTo2s()
30-
ctx.SendChain(message.Text(repo.Get("value.0")))
25+
ctx.SendChain(message.Text(data))
3126
})
3227
}

plugin/wordle/wordle.go

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ package wordle
44
import (
55
"errors"
66
"fmt"
7+
"github.com/FloatTech/AnimeAPI/tl"
78
"image/color"
89
"math/rand"
910
"sort"
@@ -62,7 +63,7 @@ func init() {
6263
en := control.Register("wordle", &control.Options{
6364
DisableOnDefault: false,
6465
Help: "猜单词\n" +
65-
"- 个人猜单词" +
66+
"- 个人猜单词\n" +
6667
"- 团队猜单词",
6768
PublicDataFolder: "Wordle",
6869
}).ApplySingle(single.New(
@@ -107,6 +108,11 @@ func init() {
107108
Handle(func(ctx *zero.Ctx) {
108109
class := classdict[ctx.State["regex_matched"].([]string)[2]]
109110
target := words[class].cet4[rand.Intn(len(words[class].cet4))]
111+
tt, err := tl.Translate(target)
112+
if err != nil {
113+
ctx.SendChain(message.Text("ERROR:", err))
114+
return
115+
}
110116
game := newWordleGame(target)
111117
_, img, cl, _ := game("")
112118
ctx.Send(
@@ -125,35 +131,44 @@ func init() {
125131
zero.OnlyGroup, zero.CheckGroup(ctx.Event.GroupID))
126132
}
127133
var win bool
128-
var err error
129134
recv, cancel := next.Repeat()
130135
defer cancel()
136+
tick := time.NewTimer(105 * time.Second)
137+
after := time.NewTimer(120 * time.Second)
131138
for {
132139
select {
133-
case <-time.After(time.Second * 120):
140+
case <-tick.C:
141+
ctx.SendChain(message.Text("猜单词,你还有15s作答时间"))
142+
case <-after.C:
134143
ctx.Send(
135144
message.ReplyWithMessage(ctx.Event.MessageID,
136-
message.Text("猜单词超时,游戏结束...答案是: ", target),
145+
message.Text("猜单词超时,游戏结束...答案是: ", target, "(", tt, ")"),
137146
),
138147
)
139148
return
140149
case c := <-recv:
150+
tick.Reset(105 * time.Second)
151+
after.Reset(120 * time.Second)
141152
win, img, cl, err = game(c.Event.Message.String())
142153
switch {
143154
case win:
155+
tick.Stop()
156+
after.Stop()
144157
ctx.Send(
145158
message.ReplyWithMessage(c.Event.MessageID,
146159
message.ImageBytes(img),
147-
message.Text("太棒了,你猜出来了!"),
160+
message.Text("太棒了,你猜出来了!答案是: ", target, "(", tt, ")"),
148161
),
149162
)
150163
cl()
151164
return
152165
case err == errTimesRunOut:
166+
tick.Stop()
167+
after.Stop()
153168
ctx.Send(
154169
message.ReplyWithMessage(c.Event.MessageID,
155170
message.ImageBytes(img),
156-
message.Text("游戏结束...答案是: ", target),
171+
message.Text("游戏结束...答案是: ", target, "(", tt, ")"),
157172
),
158173
)
159174
cl()

0 commit comments

Comments
 (0)