优化simai

This commit is contained in:
源文雨 2022-12-03 12:10:21 +08:00
parent b768e48a74
commit 20293b35f8
4 changed files with 39 additions and 28 deletions

2
data

@ -1 +1 @@
Subproject commit e3cfc94e84d923580840459bed8141ed16a5dbec
Subproject commit 485fc2618e37ee2a4065785cd068df9a90b7d014

12
go.mod
View File

@ -5,12 +5,12 @@ go 1.19
require (
github.com/Baidu-AIP/golang-sdk v1.1.1
github.com/Coloured-glaze/gg v1.3.4
github.com/FloatTech/AnimeAPI v1.6.1-0.20221202105645-10e15611adc7
github.com/FloatTech/floatbox v0.0.0-20221202084309-ad154513ab2f
github.com/FloatTech/AnimeAPI v1.6.1-0.20221203040820-0dda47e61cd8
github.com/FloatTech/floatbox v0.0.0-20221203040505-d7352e564906
github.com/FloatTech/sqlite v1.5.7
github.com/FloatTech/ttl v0.0.0-20220715042055-15612be72f5b
github.com/FloatTech/zbpctrl v1.5.3-0.20221202105428-5c0a0e162361
github.com/FloatTech/zbputils v1.6.1-0.20221202105607-9f335675fbc4
github.com/FloatTech/zbpctrl v1.5.3-0.20221203040611-11f118e1d5ec
github.com/FloatTech/zbputils v1.6.1-0.20221203040741-3bc28d5e3cd1
github.com/RomiChan/syncx v0.0.0-20221202055724-5f842c53020e
github.com/RomiChan/websocket v1.4.3-0.20220227141055-9b2c6168c9c5
github.com/antchfx/htmlquery v1.2.5
@ -20,7 +20,7 @@ require (
github.com/fumiama/go-base16384 v1.6.1
github.com/fumiama/go-registry v0.2.5-0.20221121111817-44b0846bdce6
github.com/fumiama/gotracemoe v0.0.3
github.com/fumiama/jieba v0.0.0-20221130083937-35ac98dc5feb
github.com/fumiama/jieba v0.0.0-20221203025406-36c17a10b565
github.com/fumiama/unibase2n v0.0.0-20221003115227-e7db987de949
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0
github.com/jinzhu/gorm v1.9.16
@ -33,7 +33,7 @@ require (
github.com/sirupsen/logrus v1.9.0
github.com/tidwall/gjson v1.14.4
github.com/wcharczuk/go-chart/v2 v2.1.0
github.com/wdvxdr1123/ZeroBot v1.6.4
github.com/wdvxdr1123/ZeroBot v1.6.5
gitlab.com/gomidi/midi/v2 v2.0.25
golang.org/x/image v0.1.0
gopkg.in/yaml.v3 v3.0.1

24
go.sum
View File

@ -4,20 +4,20 @@ github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym
github.com/Coloured-glaze/gg v1.3.4 h1:l31zIF/HaVwkzjrj+A56RGQoSKyKuR1IWtIrqXGFStI=
github.com/Coloured-glaze/gg v1.3.4/go.mod h1:Ih5NLNNDHOy3RJbB0EPqGTreIzq/H02TGThIagh8HJg=
github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
github.com/FloatTech/AnimeAPI v1.6.1-0.20221202105645-10e15611adc7 h1:sMosOwTlqkL+PKh+koV8kGjDhzuDbHdTXTQpfudfJ38=
github.com/FloatTech/AnimeAPI v1.6.1-0.20221202105645-10e15611adc7/go.mod h1:DfopNtuR88r8ip2N52C9sVvxPV2B6KI1wINcBH0DyEA=
github.com/FloatTech/floatbox v0.0.0-20221202084309-ad154513ab2f h1:fh4BuiOY+rDUBsf5bdIa3ta9PlcWGlf1Iu+Lyh4BJyg=
github.com/FloatTech/floatbox v0.0.0-20221202084309-ad154513ab2f/go.mod h1:m5Mp6l0BgwiM9u1EyT4p1bu7zRdKQLOHtgr8xSP2Uw8=
github.com/FloatTech/AnimeAPI v1.6.1-0.20221203040820-0dda47e61cd8 h1:HlJDqBlEuS1337zBhjjyutf+GESQJ6wMIk9zBoOVgBI=
github.com/FloatTech/AnimeAPI v1.6.1-0.20221203040820-0dda47e61cd8/go.mod h1:9d56SRgNBXZrs2mnndEMBuctdFHhxoTwGBvOK3jIVi0=
github.com/FloatTech/floatbox v0.0.0-20221203040505-d7352e564906 h1:Rxc/7zh/dR96prmq/mOjmtam261CSRwZPFXi/+oU7d8=
github.com/FloatTech/floatbox v0.0.0-20221203040505-d7352e564906/go.mod h1:i8k21EWZVoSz7/0PB2reDQXnGR6eEL9VytEev2XuqLc=
github.com/FloatTech/rendercard v0.0.2-0.20221128165614-a41216d2422e h1:7bF01RHsYS99Zp+OWfob1W/Cymho6fcggoRSpiuiYB8=
github.com/FloatTech/rendercard v0.0.2-0.20221128165614-a41216d2422e/go.mod h1:e2M5OWspdblwq182zbVgRefiOc+gXtB1XzTW/2z86/I=
github.com/FloatTech/sqlite v1.5.7 h1:Bvo4LSojcZ6dVtbHrkqvt6z4v8e+sj0G5PSUIvdawsk=
github.com/FloatTech/sqlite v1.5.7/go.mod h1:zFbHzRfB+CJ+VidfjuVbrcin3DAz283F7hF1hIeHzpY=
github.com/FloatTech/ttl v0.0.0-20220715042055-15612be72f5b h1:tvciXWq2nuvTbFeJGLDNIdRX3BI546D3O7k7vrVueZw=
github.com/FloatTech/ttl v0.0.0-20220715042055-15612be72f5b/go.mod h1:fHZFWGquNXuHttu9dUYoKuNbm3dzLETnIOnm1muSfDs=
github.com/FloatTech/zbpctrl v1.5.3-0.20221202105428-5c0a0e162361 h1:Et1yB5dT91b/E0i070T6PH3E2pPgD78TW+qndXW0Ni0=
github.com/FloatTech/zbpctrl v1.5.3-0.20221202105428-5c0a0e162361/go.mod h1:nGTH+FJQYr1pAA7gPKHMvGwGPKizgCXKaQ4+dYj7JPw=
github.com/FloatTech/zbputils v1.6.1-0.20221202105607-9f335675fbc4 h1:nnCpbMZpedc2nXMFA/aeDmNhxqzaiWXsmk4zJnYX1mY=
github.com/FloatTech/zbputils v1.6.1-0.20221202105607-9f335675fbc4/go.mod h1:6rc3f66hn6or36O5ayDGZm52c/pnM25GY2TPu6EXzX4=
github.com/FloatTech/zbpctrl v1.5.3-0.20221203040611-11f118e1d5ec h1:7v8vUn83DTD8mKRNmBFS4tp7OczWikrZPxEolrpMUWI=
github.com/FloatTech/zbpctrl v1.5.3-0.20221203040611-11f118e1d5ec/go.mod h1:9K0wS8sj6H8goHniT0zpaqd2rCrVbSbbCIDLrQKvCns=
github.com/FloatTech/zbputils v1.6.1-0.20221203040741-3bc28d5e3cd1 h1:b/DKfa17Q0FnNe01LyyPLHK80kIUK4ZZ0DNDwZ0PoVc=
github.com/FloatTech/zbputils v1.6.1-0.20221203040741-3bc28d5e3cd1/go.mod h1:0ds7lVGqlctA6u6S7vbLRr4w7SQIaVJCdIGKFXS0u2g=
github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc=
github.com/RomiChan/syncx v0.0.0-20221202055724-5f842c53020e h1:wR3MXQ3VbUlPKOOUwLOYgh/QaJThBTYtsl673O3lqSA=
github.com/RomiChan/syncx v0.0.0-20221202055724-5f842c53020e/go.mod h1:vD7Ra3Q9onRtojoY5sMCLQ7JBgjUsrXDnDKyFxqpf9w=
@ -64,8 +64,8 @@ github.com/fumiama/gofastTEA v0.0.10 h1:JJJ+brWD4kie+mmK2TkspDXKzqq0IjXm89aGYfoG
github.com/fumiama/gofastTEA v0.0.10/go.mod h1:RIdbYZyB4MbH6ZBlPymRaXn3cD6SedlCu5W/HHfMPBk=
github.com/fumiama/gotracemoe v0.0.3 h1:iI5EbE9A3UUbfukG6+/soYPjp1S31eCNYf4tw7s6/Jc=
github.com/fumiama/gotracemoe v0.0.3/go.mod h1:tyqahdUzHf0bQIAVY/GYmDWvYYe5ik1ZbhnGYh+zl40=
github.com/fumiama/jieba v0.0.0-20221130083937-35ac98dc5feb h1:yqhUp1HeNkpLZYrQ6Byxy7iMt8I7VcjTywzsqjUuYyw=
github.com/fumiama/jieba v0.0.0-20221130083937-35ac98dc5feb/go.mod h1:UUEvyLTJ7yoOA/viKG4wEis4ERydM7+Ny6gZUWgkS80=
github.com/fumiama/jieba v0.0.0-20221203025406-36c17a10b565 h1:sQuR2+N5HurnvsZhiKdEg+Ig354TaqgCQRxd/0KgIOQ=
github.com/fumiama/jieba v0.0.0-20221203025406-36c17a10b565/go.mod h1:UUEvyLTJ7yoOA/viKG4wEis4ERydM7+Ny6gZUWgkS80=
github.com/fumiama/sqlite3 v1.20.0-with-win386 h1:ZR1AXGBEtkfq9GAXehOVcwn+aaCG8itrkgEsz4ggx5k=
github.com/fumiama/sqlite3 v1.20.0-with-win386/go.mod h1:Os58MHwYCcYZCy2PGChBrQtBAw5/LS1ZZOkfc+C/I7s=
github.com/fumiama/unibase2n v0.0.0-20221003115227-e7db987de949 h1:VAzR8aoS2SCEBmRF9rqCPyXgXoP8mZ1viNL4mLWUg0Q=
@ -201,8 +201,8 @@ github.com/tklauser/numcpus v0.4.0 h1:E53Dm1HjH1/R2/aoCtXtPgzmElmn51aOkhCFSuZq//
github.com/tklauser/numcpus v0.4.0/go.mod h1:1+UI3pD8NW14VMwdgJNJ1ESk2UnwhAnz5hMwiKKqXCQ=
github.com/wcharczuk/go-chart/v2 v2.1.0 h1:tY2slqVQ6bN+yHSnDYwZebLQFkphK4WNrVwnt7CJZ2I=
github.com/wcharczuk/go-chart/v2 v2.1.0/go.mod h1:yx7MvAVNcP/kN9lKXM/NTce4au4DFN99j6i1OwDclNA=
github.com/wdvxdr1123/ZeroBot v1.6.4 h1:Us7FFp+FncLQViEJa2SDNrWMlz+Dj3DKsaZLLb9YWfw=
github.com/wdvxdr1123/ZeroBot v1.6.4/go.mod h1:T5kD5vLi/YxL/fyDOCOaawi96LRBdJjcXh2CIjDyFfg=
github.com/wdvxdr1123/ZeroBot v1.6.5 h1:w2dwDnMqYpwVAO3DPESznavAJ5T2jrqgU46owd3PFi4=
github.com/wdvxdr1123/ZeroBot v1.6.5/go.mod h1:T5kD5vLi/YxL/fyDOCOaawi96LRBdJjcXh2CIjDyFfg=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=

View File

@ -120,15 +120,15 @@ func init() {
}
logrus.Infoln("[thesaurus]加载", len(chatListD), "条傲娇词库", len(chatListK), "条可爱词库")
engine.OnMessage(canmatch(tKIMO),
ctxext.JiebaFullMatch(seg, getmsg, chatList...),
).SetBlock(false).Handle(randreply(kimomap))
engine.OnMessage(canmatch(tDERE),
ctxext.JiebaFullMatch(seg, getmsg, chatListD...),
).SetBlock(false).Handle(randreply(sm.D))
engine.OnMessage(canmatch(tKAWA),
ctxext.JiebaFullMatch(seg, getmsg, chatListK...),
).SetBlock(false).Handle(randreply(sm.K))
engine.OnMessage(canmatch(tKIMO), match(chatList, seg, getmsg)).
SetBlock(false).
Handle(randreply(kimomap))
engine.OnMessage(canmatch(tDERE), match(chatListD, seg, getmsg)).
SetBlock(false).
Handle(randreply(sm.D))
engine.OnMessage(canmatch(tKAWA), match(chatListK, seg, getmsg)).
SetBlock(false).
Handle(randreply(sm.K))
}()
}
@ -169,6 +169,15 @@ const (
tKAWA
)
func match(l []string, seg *jieba.Segmenter, getmsg func(*zero.Ctx) string) zero.Rule {
return func(ctx *zero.Ctx) bool {
if zero.KeywordRule(l...)(ctx) {
return true
}
return ctxext.JiebaFullMatch(seg, getmsg, l...)(ctx)
}
}
func canmatch(typ int64) zero.Rule {
return func(ctx *zero.Ctx) bool {
if zero.HasPicture(ctx) {
@ -195,8 +204,10 @@ func randreply(m map[string][]string) zero.Handler {
return func(ctx *zero.Ctx) {
key := ctx.State["matched"].(string)
val := m[key]
nick := zero.BotConfig.NickName[rand.Intn(len(zero.BotConfig.NickName))]
text := val[rand.Intn(len(val))]
text = strings.ReplaceAll(text, "{name}", ctx.CardOrNickName(ctx.Event.UserID))
text = strings.ReplaceAll(text, "{me}", nick)
id := ctx.Event.MessageID
for _, t := range strings.Split(text, "{segment}") {
process.SleepAbout1sTo2s()