🎨 优化代码结构

This commit is contained in:
源文雨
2022-04-06 11:15:24 +08:00
parent a6bd717971
commit 4ab968d563
6 changed files with 148 additions and 85 deletions

View File

@@ -95,23 +95,22 @@ func (ThirdCategory) TableName() string {
}
// GetAllFirstCategoryMessage 取出所有vtb
func (vdb *VtbDB) GetAllFirstCategoryMessage() string {
func (vdb *VtbDB) GetAllFirstCategoryMessage() (string, error) {
db := (*gorm.DB)(vdb)
firstStepMessage := "请选择一个vtb并发送序号:\n"
var fcl []FirstCategory
err := db.Debug().Model(&FirstCategory{}).Find(&fcl).Error
if err != nil {
log.Errorln("[vtb/model]数据库读取错误", err)
return ""
return "", err
}
for _, v := range fcl {
firstStepMessage += strconv.FormatInt(v.FirstCategoryIndex, 10) + ". " + v.FirstCategoryName + "\n"
}
return firstStepMessage
return firstStepMessage, nil
}
// GetAllSecondCategoryMessageByFirstIndex 取得同一个vtb所有语录类别
func (vdb *VtbDB) GetAllSecondCategoryMessageByFirstIndex(firstIndex int) string {
func (vdb *VtbDB) GetAllSecondCategoryMessageByFirstIndex(firstIndex int) (string, error) {
db := (*gorm.DB)(vdb)
secondStepMessage := "请选择一个语录类别并发送序号:\n"
var scl []SecondCategory
@@ -119,17 +118,16 @@ func (vdb *VtbDB) GetAllSecondCategoryMessageByFirstIndex(firstIndex int) string
db.Model(FirstCategory{}).Where("first_category_index = ?", firstIndex).First(&fc)
err := db.Debug().Model(&SecondCategory{}).Find(&scl, "first_category_uid = ?", fc.FirstCategoryUID).Error
if err != nil || len(scl) == 0 {
log.Errorln("[vtb/model]数据库读取错误", err)
return ""
return "", err
}
for _, v := range scl {
secondStepMessage += strconv.FormatInt(v.SecondCategoryIndex, 10) + ". " + v.SecondCategoryName + "\n"
}
return secondStepMessage
return secondStepMessage, nil
}
// GetAllThirdCategoryMessageByFirstIndexAndSecondIndex 取得同一个vtb同个类别的所有语录
func (vdb *VtbDB) GetAllThirdCategoryMessageByFirstIndexAndSecondIndex(firstIndex, secondIndex int) string {
func (vdb *VtbDB) GetAllThirdCategoryMessageByFirstIndexAndSecondIndex(firstIndex, secondIndex int) (string, error) {
db := (*gorm.DB)(vdb)
thirdStepMessage := "请选择一个语录并发送序号:\n"
var fc FirstCategory
@@ -137,13 +135,12 @@ func (vdb *VtbDB) GetAllThirdCategoryMessageByFirstIndexAndSecondIndex(firstInde
var tcl []ThirdCategory
err := db.Debug().Model(&ThirdCategory{}).Find(&tcl, "first_category_uid = ? and second_category_index = ?", fc.FirstCategoryUID, secondIndex).Error
if err != nil || len(tcl) == 0 {
log.Errorln("[vtb/model]数据库读取错误", err)
return ""
return "", err
}
for _, v := range tcl {
thirdStepMessage = thirdStepMessage + strconv.FormatInt(v.ThirdCategoryIndex, 10) + ". " + v.ThirdCategoryName + "\n"
}
return thirdStepMessage
return thirdStepMessage, nil
}
// GetThirdCategory ...
@@ -182,32 +179,28 @@ func (vdb *VtbDB) Close() error {
const vtbURL = "https://vtbkeyboard.moe/api/get_vtb_list"
// GetVtbList ...
func (vdb *VtbDB) GetVtbList() (uidList []string) {
func (vdb *VtbDB) GetVtbList() (uidList []string, err error) {
db := (*gorm.DB)(vdb)
client := &http.Client{}
req, err := http.NewRequest("GET", vtbURL, nil)
if err != nil {
log.Errorln(err)
return
}
// 自定义Header
req.Header.Set("User-Agent", web.RandUA())
resp, err := client.Do(req)
if err != nil {
log.Errorln(err)
return
}
defer resp.Body.Close()
bytes, err := io.ReadAll(resp.Body)
if err != nil {
log.Errorln(err)
return
}
vtbListStr, err := strconv.Unquote(strings.ReplaceAll(strconv.Quote(string(bytes)), `\\u`, `\u`))
if err != nil {
log.Errorln(err)
return
}
@@ -240,37 +233,33 @@ func (vdb *VtbDB) GetVtbList() (uidList []string) {
uidList = append(uidList, fc.FirstCategoryUID)
}
return uidList
return
}
// StoreVtb ...
func (vdb *VtbDB) StoreVtb(uid string) {
func (vdb *VtbDB) StoreVtb(uid string) (err error) {
db := (*gorm.DB)(vdb)
vtbURL := "https://vtbkeyboard.moe/api/get_vtb_page?uid=" + uid
client := &http.Client{}
req, err := http.NewRequest("GET", vtbURL, nil)
if err != nil {
log.Errorln(err)
return
}
// 自定义Header
req.Header.Set("User-Agent", web.RandUA())
resp, err := client.Do(req)
if err != nil {
log.Errorln(err)
return
}
defer resp.Body.Close()
bytes, err := io.ReadAll(resp.Body)
if err != nil {
log.Errorln(err)
return
}
vtbStr, err := strconv.Unquote(strings.ReplaceAll(strconv.Quote(string(bytes)), `\\u`, `\u`))
if err != nil {
log.Errorln(err)
return
}
@@ -333,4 +322,5 @@ func (vdb *VtbDB) StoreVtb(uid string) {
}
}
}
return
}