🔥 精简 log 输出

This commit is contained in:
源文雨
2022-04-05 23:18:13 +08:00
parent f2914adb65
commit a6bd717971
24 changed files with 222 additions and 152 deletions

View File

@@ -214,7 +214,7 @@ func (vdb *VtbDB) GetVtbList() (uidList []string) {
count := gjson.Get(vtbListStr, "#").Int()
for i := int64(0); i < count; i++ {
item := gjson.Get(vtbListStr, strconv.FormatInt(i, 10))
log.Println(item)
log.Debugln(item)
fc := FirstCategory{
FirstCategoryIndex: i,
FirstCategoryName: item.Get("name").String(),
@@ -222,7 +222,7 @@ func (vdb *VtbDB) GetVtbList() (uidList []string) {
FirstCategoryIconPath: item.Get("icon_path").String(),
FirstCategoryUID: item.Get("uid").String(),
}
log.Println(fc)
log.Debugln(fc)
if err := db.Debug().Model(&FirstCategory{}).First(&fc, "first_category_uid = ?", fc.FirstCategoryUID).Error; err != nil {
if gorm.IsRecordNotFoundError(err) {
@@ -275,10 +275,10 @@ func (vdb *VtbDB) StoreVtb(uid string) {
}
secondCount := gjson.Get(vtbStr, "data.voices.#").Int()
log.Println("二级品类一共有", secondCount)
log.Debugln("二级品类一共有", secondCount)
for secondIndex := int64(0); secondIndex < secondCount; secondIndex++ {
secondItem := gjson.Get(vtbStr, "data.voices."+strconv.FormatInt(secondIndex, 10))
log.Println(secondItem)
log.Debugln(secondItem)
sc := SecondCategory{
SecondCategoryName: secondItem.Get("categoryName").String(),
SecondCategoryIndex: secondIndex,
@@ -301,10 +301,10 @@ func (vdb *VtbDB) StoreVtb(uid string) {
})
}
thirdCount := secondItem.Get("voiceList.#").Int()
log.Println("三级品类一共有", thirdCount)
log.Debugln("三级品类一共有", thirdCount)
for thirdIndex := int64(0); thirdIndex < thirdCount; thirdIndex++ {
thirdItem := secondItem.Get("voiceList." + strconv.FormatInt(thirdIndex, 10))
log.Println(thirdItem)
log.Debugln(thirdItem)
tc := ThirdCategory{
ThirdCategoryName: thirdItem.Get("name").String(),
ThirdCategoryIndex: thirdIndex,
@@ -314,7 +314,7 @@ func (vdb *VtbDB) StoreVtb(uid string) {
ThirdCategoryPath: thirdItem.Get("path").String(),
ThirdCategoryAuthor: thirdItem.Get("author").String(),
}
log.Println(tc)
log.Debugln(tc)
if err := db.Debug().Model(&ThirdCategory{}).First(&tc, "first_category_uid = ? and second_category_index = ? and third_category_index = ?",
uid, secondIndex, thirdIndex).Error; err != nil {

View File

@@ -13,7 +13,6 @@ import (
"time"
_ "github.com/fumiama/sqlite3" // use sql
log "github.com/sirupsen/logrus"
zero "github.com/wdvxdr1123/ZeroBot"
"github.com/wdvxdr1123/ZeroBot/message"
"github.com/wdvxdr1123/ZeroBot/utils/helper"
@@ -58,14 +57,15 @@ func init() {
Repeat() // 不断监听复读
db, err := model.Open(dbfile)
if err != nil {
log.Errorln("[vtb]:", err)
ctx.SendChain(message.Text("ERROR:", err))
return
}
defer db.Close()
defer cancel()
firstStepImageBytes, err := text.RenderToBase64(db.GetAllFirstCategoryMessage(), text.FontFile, 400, 20)
if err != nil {
log.Errorln("[vtb]:", err)
ctx.SendChain(message.Text("ERROR:", err))
return
}
if id := ctx.SendChain(message.Reply(ctx.Event.MessageID), message.Image("base64://"+helper.BytesToString(firstStepImageBytes))); id.ID() == 0 {
ctx.SendChain(message.Text("ERROR:可能被风控了"))
@@ -85,19 +85,20 @@ func init() {
switch step {
case 0:
firstIndex, err = strconv.Atoi(c.Event.RawMessage)
// log.Println(fmt.Sprintf("当前在第%d步", step))
// log.Println(fmt.Sprintf("firstIndex:%d,secondIndex:%d,thirdIndex:%d", firstIndex, secondIndex, thirdIndex))
// log.Debugln(fmt.Sprintf("当前在第%d步", step))
// log.Debugln(fmt.Sprintf("firstIndex:%d,secondIndex:%d,thirdIndex:%d", firstIndex, secondIndex, thirdIndex))
if err != nil {
ctx.SendChain(message.Reply(c.Event.MessageID), message.Text("请输入正确的序号,三次输入错误,指令可退出重输"))
errorCount++
} else {
secondStepMessage := db.GetAllSecondCategoryMessageByFirstIndex(firstIndex)
// log.Println(secondStepMessage)
// log.Debugln(secondStepMessage)
if secondStepMessage == "" {
ctx.SendChain(message.Reply(c.Event.MessageID), message.Text("你选择的序号没有内容,请重新选择,三次输入错误,指令可退出重输"))
firstStepImageBytes, err := text.RenderToBase64(db.GetAllFirstCategoryMessage(), text.FontFile, 400, 20)
if err != nil {
log.Errorln("[vtb]:", err)
ctx.SendChain(message.Text("ERROR:", err))
return
}
if id := ctx.SendChain(message.Reply(ctx.Event.MessageID), message.Image("base64://"+helper.BytesToString(firstStepImageBytes))); id.ID() == 0 {
ctx.SendChain(message.Text("ERROR:可能被风控了"))
@@ -106,7 +107,8 @@ func init() {
} else {
secondStepMessageBytes, err := text.RenderToBase64(secondStepMessage, text.FontFile, 400, 20)
if err != nil {
log.Errorln("[vtb]:", err)
ctx.SendChain(message.Text("ERROR:", err))
return
}
if id := ctx.SendChain(message.Reply(ctx.Event.MessageID), message.Image("base64://"+helper.BytesToString(secondStepMessageBytes))); id.ID() == 0 {
ctx.SendChain(message.Text("ERROR:可能被风控了"))
@@ -116,19 +118,20 @@ func init() {
}
case 1:
secondIndex, err = strconv.Atoi(c.Event.RawMessage)
// log.Println(fmt.Sprintf("当前在第%d步", step))
// log.Println(fmt.Sprintf("firstIndex:%d,secondIndex:%d,thirdIndex:%d", firstIndex, secondIndex, thirdIndex))
// log.Debugln(fmt.Sprintf("当前在第%d步", step))
// log.Debugln(fmt.Sprintf("firstIndex:%d,secondIndex:%d,thirdIndex:%d", firstIndex, secondIndex, thirdIndex))
if err != nil {
ctx.SendChain(message.Reply(c.Event.MessageID), message.Text("请输入正确的序号,三次输入错误,指令可退出重输"))
errorCount++
} else {
thirdStepMessage := db.GetAllThirdCategoryMessageByFirstIndexAndSecondIndex(firstIndex, secondIndex)
// log.Println(thirdStepMessage)
// log.Debugln(thirdStepMessage)
if thirdStepMessage == "" {
ctx.SendChain(message.Reply(c.Event.MessageID), message.Text("你选择的序号没有内容,请重新选择,三次输入错误,指令可退出重输"))
secondStepMessageBytes, err := text.RenderToBase64(db.GetAllSecondCategoryMessageByFirstIndex(firstIndex), text.FontFile, 400, 20)
if err != nil {
log.Errorln("[vtb]:", err)
ctx.SendChain(message.Text("ERROR:", err))
return
}
if id := ctx.SendChain(message.Reply(ctx.Event.MessageID), message.Image("base64://"+helper.BytesToString(secondStepMessageBytes))); id.ID() == 0 {
ctx.SendChain(message.Text("ERROR:可能被风控了"))
@@ -137,7 +140,8 @@ func init() {
} else {
thirdStepMessageBytes, err := text.RenderToBase64(thirdStepMessage, text.FontFile, 400, 20)
if err != nil {
log.Errorln("[vtb]:", err)
ctx.SendChain(message.Text("ERROR:", err))
return
}
if id := ctx.SendChain(message.Reply(ctx.Event.MessageID), message.Image("base64://"+helper.BytesToString(thirdStepMessageBytes))); id.ID() == 0 {
ctx.SendChain(message.Text("ERROR:可能被风控了"))
@@ -147,8 +151,8 @@ func init() {
}
case 2:
thirdIndex, err = strconv.Atoi(c.Event.RawMessage)
// log.Println(fmt.Sprintf("当前在第%d步", step))
// log.Println(fmt.Sprintf("firstIndex:%d,secondIndex:%d,thirdIndex:%d", firstIndex, secondIndex, thirdIndex))
// log.Debugln(fmt.Sprintf("当前在第%d步", step))
// log.Debugln(fmt.Sprintf("firstIndex:%d,secondIndex:%d,thirdIndex:%d", firstIndex, secondIndex, thirdIndex))
if err != nil {
ctx.SendChain(message.Reply(c.Event.MessageID), message.Text("请输入正确的序号,三次输入错误,指令可退出重输"))
errorCount++
@@ -160,7 +164,8 @@ func init() {
ctx.SendChain(message.Reply(c.Event.MessageID), message.Text("没有内容请重新选择,三次输入错误,指令可退出重输"))
firstStepImageBytes, err := text.RenderToBase64(db.GetAllFirstCategoryMessage(), text.FontFile, 400, 20)
if err != nil {
log.Errorln("[vtb]:", err)
ctx.SendChain(message.Text("ERROR:", err))
return
}
if id := ctx.SendChain(message.Reply(ctx.Event.MessageID), message.Image("base64://"+helper.BytesToString(firstStepImageBytes))); id.ID() == 0 {
ctx.SendChain(message.Text("ERROR:可能被风控了"))
@@ -169,16 +174,16 @@ func init() {
step = 1
} else {
if reg.MatchString(recURL) {
// log.Println(reg.FindStringSubmatch(recordUrl)[1])
// log.Println(url.QueryEscape(reg.FindStringSubmatch(recordUrl)[1]))
// log.Debugln(reg.FindStringSubmatch(recordUrl)[1])
// log.Debugln(url.QueryEscape(reg.FindStringSubmatch(recordUrl)[1]))
recURL = strings.ReplaceAll(recURL, reg.FindStringSubmatch(recURL)[1], url.QueryEscape(reg.FindStringSubmatch(recURL)[1]))
recURL = strings.ReplaceAll(recURL, "+", "%20")
// log.Println(recordUrl)
// log.Debugln(recordUrl)
}
ctx.SendChain(message.Reply(c.Event.MessageID), message.Text("请欣赏《"+tc.ThirdCategoryName+"》"))
if !re.MatchString(recURL) {
log.Errorln("[vtb]:文件格式不匹配")
ctx.SendChain(message.Text("ERROR:文件格式不匹配"))
return
}
format := re.FindStringSubmatch(recURL)[1]
@@ -187,7 +192,11 @@ func init() {
ctx.SendChain(message.Record("file:///" + file.BOTPATH + "/" + recordFile))
return
}
initRecord(recordFile, recURL)
err = initRecord(recordFile, recURL)
if err != nil {
ctx.SendChain(message.Text("ERROR:", err))
return
}
ctx.SendChain(message.Record("file:///" + file.BOTPATH + "/" + recordFile))
return
}
@@ -205,9 +214,10 @@ func init() {
Handle(func(ctx *zero.Ctx) {
db, err := model.Open(dbfile)
if err != nil {
log.Errorln("[vtb]:", err)
ctx.SendChain(message.Text("ERROR:", err))
return
}
defer db.Close()
tc := db.RandomVtb()
fc := db.GetFirstCategoryByFirstUID(tc.FirstCategoryUID)
if (tc != model.ThirdCategory{}) && (fc != model.FirstCategory{}) {
@@ -219,7 +229,7 @@ func init() {
}
ctx.SendChain(message.Reply(ctx.Event.MessageID), message.Text("请欣赏"+fc.FirstCategoryName+"的《"+tc.ThirdCategoryName+"》"))
if !re.MatchString(recURL) {
log.Errorln("[vtb]:文件格式不匹配")
ctx.SendChain(message.Text("ERROR:文件格式不匹配"))
return
}
format := re.FindStringSubmatch(recURL)[1]
@@ -228,10 +238,13 @@ func init() {
ctx.SendChain(message.Record("file:///" + file.BOTPATH + "/" + recordFile))
return
}
initRecord(recordFile, recURL)
err = initRecord(recordFile, recURL)
if err != nil {
ctx.SendChain(message.Text("ERROR:", err))
return
}
ctx.SendChain(message.Record("file:///" + file.BOTPATH + "/" + recordFile))
}
db.Close()
})
engine.OnFullMatch("更新vtb", zero.SuperUserPermission).SetBlock(true).
Handle(func(ctx *zero.Ctx) {
@@ -243,14 +256,15 @@ func init() {
}
err := db.Close()
if err != nil {
log.Errorln("[vtb/cron]", err)
ctx.SendChain(message.Text("ERROR:", err))
return
}
}
ctx.Send("vtb数据库已更新")
})
}
func initRecord(recordFile, recordURL string) {
func initRecord(recordFile, recordURL string) error {
if file.IsNotExist(recordFile) {
client := web.NewTLS12Client()
req, _ := http.NewRequest("GET", recordURL, nil)
@@ -258,18 +272,17 @@ func initRecord(recordFile, recordURL string) {
req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0")
resp, err := client.Do(req)
if err != nil {
log.Errorln("[vtb]:", err)
return
return err
}
defer resp.Body.Close()
data, err := io.ReadAll(resp.Body)
if err != nil {
log.Errorln("[vtb]:", err)
return
return err
}
err = os.WriteFile(recordFile, data, 0666)
if err != nil {
log.Errorln("[vtb]:", err)
return err
}
}
return nil
}