🎨 🔥 优化代码结构

This commit is contained in:
fumiama
2022-02-15 20:50:49 +08:00
parent 121403231a
commit 4ca5038ae9
52 changed files with 441 additions and 795 deletions

View File

@@ -2,11 +2,13 @@
package curse
import (
"github.com/sirupsen/logrus"
zero "github.com/wdvxdr1123/ZeroBot"
"github.com/wdvxdr1123/ZeroBot/message"
control "github.com/FloatTech/zbputils/control"
"github.com/FloatTech/zbputils/ctxext"
"github.com/FloatTech/zbputils/file"
"github.com/FloatTech/zbputils/process"
"github.com/FloatTech/zbputils/control/order"
@@ -21,8 +23,25 @@ func init() {
engine := control.Register("curse", order.AcquirePrio(), &control.Options{
DisableOnDefault: true,
Help: "骂人(求骂,自卫)\n- 骂我\n- 大力骂我",
PublicDataFolder: "Curse",
})
go func() {
dbpath := engine.DataFolder()
db.DBPath = dbpath + "curse.db"
defer order.DoneOnExit()()
_, err := file.GetLazyData(db.DBPath, false, true)
if err != nil {
panic(err)
}
err = db.Create("curse", &curse{})
if err != nil {
panic(err)
}
c, _ := db.Count("curse")
logrus.Infoln("[curse]加载", c, "条骂人语录")
}()
engine.OnFullMatch("骂我").SetBlock(true).Limit(ctxext.LimitByUser).Handle(func(ctx *zero.Ctx) {
process.SleepAbout1sTo2s()
text := getRandomCurseByLevel(minLevel).Text

View File

@@ -1,41 +0,0 @@
package curse
import (
"os"
"github.com/sirupsen/logrus"
sql "github.com/FloatTech/sqlite"
"github.com/FloatTech/zbputils/file"
"github.com/FloatTech/zbputils/process"
"github.com/FloatTech/zbputils/control/order"
)
const (
dbpath = "data/Curse/"
dbfile = dbpath + "curse.db"
)
var (
db = &sql.Sqlite{DBPath: dbfile}
)
// 加载数据库
func init() {
go func() {
defer order.DoneOnExit()()
process.SleepAbout1sTo2s()
_ = os.MkdirAll(dbpath, 0755)
_, err := file.GetLazyData(dbfile, false, true)
if err != nil {
panic(err)
}
err = db.Create("curse", &curse{})
if err != nil {
panic(err)
}
c, _ := db.Count("curse")
logrus.Infoln("[curse]加载", c, "条骂人语录")
}()
}

View File

@@ -1,11 +1,15 @@
package curse
import sql "github.com/FloatTech/sqlite"
type curse struct {
ID uint32 `db:"id"`
Text string `db:"text"`
Level string `db:"level"`
}
var db = &sql.Sqlite{}
func getRandomCurseByLevel(level string) (c curse) {
_ = db.Find("curse", &c, "where level = '"+level+"' ORDER BY RANDOM() limit 1")
return