chore: update deps

This commit is contained in:
源文雨
2024-11-07 00:12:51 +09:00
parent f5e1c197dd
commit 83ca8c344b
57 changed files with 274 additions and 300 deletions

View File

@@ -5,7 +5,6 @@ import (
"math/rand"
"sort"
"strconv"
"strings"
"sync"
"time"
@@ -29,8 +28,8 @@ import (
)
type 婚姻登记 struct {
db *sql.Sqlite
sync.RWMutex
db sql.Sqlite
}
// 群设置
@@ -53,9 +52,7 @@ type userinfo struct {
}
var (
民政局 = &婚姻登记{
db: &sql.Sqlite{},
}
民政局 婚姻登记
engine = control.AutoRegister(&ctrl.Options[*zero.Ctx]{
DisableOnDefault: false,
Brief: "一群一天一夫一妻制群老婆",
@@ -81,7 +78,7 @@ var (
}),
))
getdb = fcext.DoOnceOnSuccess(func(ctx *zero.Ctx) bool {
民政局.db.DBPath = engine.DataFolder() + "结婚登记表.db"
民政局.db = sql.New(engine.DataFolder() + "结婚登记表.db")
err := 民政局.db.Open(time.Hour)
if err == nil {
// 创建群配置表
@@ -281,7 +278,7 @@ func init() {
ctx.SendChain(message.Text("该功能只能在群组使用或者指定群组"))
return
}
err = 民政局.清理花名册("group" + strconv.FormatInt(ctx.Event.GroupID, 10))
err = 民政局.清理花名册(ctx.Event.GroupID)
default:
cmd := ctx.State["regex_matched"].([]string)[1]
gid, _ := strconv.ParseInt(cmd, 10, 64) // 判断是否为群号
@@ -289,7 +286,7 @@ func init() {
ctx.SendChain(message.Text("请输入正确的群号"))
return
}
err = 民政局.清理花名册("group" + cmd)
err = 民政局.清理花名册(gid)
}
if err != nil {
ctx.SendChain(message.Text("[ERROR]:", err))
@@ -307,7 +304,7 @@ func (sql *婚姻登记) 查看设置(gid int64) (dbinfo updateinfo, err error)
if err != nil {
return
}
if !sql.db.CanFind("updateinfo", "where gid is "+strconv.FormatInt(gid, 10)) {
if !sql.db.CanFind("updateinfo", "WHERE gid = ?", gid) {
// 没有记录
return updateinfo{
GID: gid,
@@ -316,7 +313,7 @@ func (sql *婚姻登记) 查看设置(gid int64) (dbinfo updateinfo, err error)
CDtime: 12,
}, nil
}
_ = sql.db.Find("updateinfo", &dbinfo, "where gid is "+strconv.FormatInt(gid, 10))
_ = sql.db.Find("updateinfo", &dbinfo, "WHERE gid = ?", gid)
return
}
@@ -334,7 +331,7 @@ func (sql *婚姻登记) 开门时间(gid int64) error {
sql.Lock()
defer sql.Unlock()
dbinfo := updateinfo{}
_ = sql.db.Find("updateinfo", &dbinfo, "where gid is "+strconv.FormatInt(gid, 10))
_ = sql.db.Find("updateinfo", &dbinfo, "WHERE gid = ?", gid)
if time.Now().Format("2006/01/02") != dbinfo.Updatetime {
// 如果跨天了就删除
_ = sql.db.Drop("group" + strconv.FormatInt(gid, 10))
@@ -355,10 +352,9 @@ func (sql *婚姻登记) 查户口(gid, uid int64) (info userinfo, err error) {
if err != nil {
return
}
uidstr := strconv.FormatInt(uid, 10)
err = sql.db.Find(gidstr, &info, "where user = "+uidstr)
err = sql.db.Find(gidstr, &info, "WHERE user = ?", uid)
if err != nil {
err = sql.db.Find(gidstr, &info, "where target = "+uidstr)
err = sql.db.Find(gidstr, &info, "WHERE target = ?", uid)
}
return
}
@@ -423,7 +419,7 @@ func slicename(name string, canvas *gg.Context) (resultname string) {
return
}
func (sql *婚姻登记) 清理花名册(gid ...string) error {
func (sql *婚姻登记) 清理花名册(gid ...int64) error {
sql.Lock()
defer sql.Unlock()
switch gid {
@@ -439,9 +435,9 @@ func (sql *婚姻登记) 清理花名册(gid ...string) error {
}
return err
default:
err := sql.db.Drop(gid[0])
err := sql.db.Drop("group" + strconv.FormatInt(gid[0], 10))
if err == nil {
_ = sql.db.Del("cdsheet", "where GroupID is "+strings.ReplaceAll(gid[0], "group", ""))
_ = sql.db.Del("cdsheet", "WHERE GroupID = ?", gid[0])
}
return err
}

View File

@@ -214,7 +214,7 @@ func init() {
favor := favorability{}
delInfo := make([]string, 0, count*2)
favorInfo := make(map[string]int, count*2)
_ = 民政局.db.FindFor("favorability", &favor, "group by Userinfo", func() error {
_ = 民政局.db.FindFor("favorability", &favor, "GROUP BY Userinfo", func() error {
delInfo = append(delInfo, favor.Userinfo)
// 解析旧数据
userList := strings.Split(favor.Userinfo, "+")
@@ -236,15 +236,10 @@ func init() {
}
return nil
})
for _, updateinfo := range delInfo {
// 删除旧数据
err = 民政局.db.Del("favorability", "where Userinfo = '"+updateinfo+"'")
if err != nil {
userList := strings.Split(favor.Userinfo, "+")
uid1, _ := strconv.ParseInt(userList[0], 10, 64)
uid2, _ := strconv.ParseInt(userList[1], 10, 64)
ctx.SendChain(message.Text("[ERROR]: 删除", ctx.CardOrNickName(uid1), "和", ctx.CardOrNickName(uid2), "的好感度时发生了错误。\n错误信息:", err))
}
// 删除旧数据
err = 民政局.db.Del("favorability", "WHERE Userinfo IN ?", delInfo)
if err != nil {
ctx.SendChain(message.Text("[ERROR]: 删除好感度时发生了错误。\n错误信息:", err))
}
for userInfo, favor := range favorInfo {
favorInfo := favorability{
@@ -273,15 +268,15 @@ func (sql *婚姻登记) 查好感度(uid, target int64) (int, error) {
info := favorability{}
if uid > target {
userinfo := strconv.FormatInt(uid, 10) + "+" + strconv.FormatInt(target, 10)
err = sql.db.Find("favorability", &info, "where Userinfo is '"+userinfo+"'")
err = sql.db.Find("favorability", &info, "WHERE Userinfo = ?", userinfo)
if err != nil {
_ = sql.db.Find("favorability", &info, "where Userinfo glob '*"+userinfo+"*'")
_ = sql.db.Find("favorability", &info, "WHERE Userinfo glob ?", "*"+userinfo+"*")
}
} else {
userinfo := strconv.FormatInt(target, 10) + "+" + strconv.FormatInt(uid, 10)
err = sql.db.Find("favorability", &info, "where Userinfo is '"+userinfo+"'")
err = sql.db.Find("favorability", &info, "WHERE Userinfo = ?", userinfo)
if err != nil {
_ = sql.db.Find("favorability", &info, "where Userinfo glob '*"+userinfo+"*'")
_ = sql.db.Find("favorability", &info, "WHERE Userinfo glob ?", "*"+userinfo+"*")
}
}
return info.Favor, nil
@@ -304,7 +299,7 @@ func (sql *婚姻登记) getGroupFavorability(uid int64) (list favorList, err er
sql.RLock()
defer sql.RUnlock()
info := favorability{}
err = sql.db.FindFor("favorability", &info, "where Userinfo glob '*"+uidStr+"*'", func() error {
err = sql.db.FindFor("favorability", &info, "WHERE Userinfo glob ?", func() error {
var target string
userList := strings.Split(info.Userinfo, "+")
switch {
@@ -320,7 +315,7 @@ func (sql *婚姻登记) getGroupFavorability(uid int64) (list favorList, err er
Favor: info.Favor,
})
return nil
})
}, "*"+uidStr+"*")
sort.Sort(list)
return
}
@@ -338,15 +333,15 @@ func (sql *婚姻登记) 更新好感度(uid, target int64, score int) (favor in
targstr := strconv.FormatInt(target, 10)
if uid > target {
info.Userinfo = uidstr + "+" + targstr
err = sql.db.Find("favorability", &info, "where Userinfo is '"+info.Userinfo+"'")
err = sql.db.Find("favorability", &info, "WHERE Userinfo = ?", info.Userinfo)
} else {
info.Userinfo = targstr + "+" + uidstr
err = sql.db.Find("favorability", &info, "where Userinfo is '"+info.Userinfo+"'")
err = sql.db.Find("favorability", &info, "WHERE Userinfo = ?", info.Userinfo)
}
if err != nil {
err = sql.db.Find("favorability", &info, "where Userinfo glob '*"+targstr+"+"+uidstr+"*'")
err = sql.db.Find("favorability", &info, "WHERE Userinfo glob ?", "*"+targstr+"+"+uidstr+"*")
if err == nil { // 如果旧数据存在就删除旧数据
err = 民政局.db.Del("favorability", "where Userinfo = '"+info.Userinfo+"'")
err = 民政局.db.Del("favorability", "WHERE Userinfo = ?", info.Userinfo)
}
}
info.Favor += score

View File

@@ -372,18 +372,16 @@ func (sql *婚姻登记) 判断CD(gid, uid int64, model string, cdtime float64)
if err != nil {
return false, err
}
limitID := "where GroupID is " + strconv.FormatInt(gid, 10) +
" and UserID is " + strconv.FormatInt(uid, 10) +
" and ModeID is '" + model + "'"
if !sql.db.CanFind("cdsheet", limitID) {
limitID := "WHERE GroupID = ? AND UserID = ? AND ModeID = ?"
if !sql.db.CanFind("cdsheet", limitID, gid, uid, model) {
// 没有记录即不用比较
return true, nil
}
cdinfo := cdsheet{}
_ = sql.db.Find("cdsheet", &cdinfo, limitID)
_ = sql.db.Find("cdsheet", &cdinfo, limitID, gid, uid, model)
if time.Since(time.Unix(cdinfo.Time, 0)).Hours() > cdtime {
// 如果CD已过就删除
err = sql.db.Del("cdsheet", limitID)
err = sql.db.Del("cdsheet", limitID, gid, uid, model)
return true, err
}
return false, nil
@@ -404,16 +402,14 @@ func (sql *婚姻登记) 离婚休妻(gid, wife int64) error {
sql.Lock()
defer sql.Unlock()
gidstr := "group" + strconv.FormatInt(gid, 10)
wifestr := strconv.FormatInt(wife, 10)
return sql.db.Del(gidstr, "where target = "+wifestr)
return sql.db.Del(gidstr, "WHERE target = ?", wife)
}
func (sql *婚姻登记) 离婚休夫(gid, husband int64) error {
sql.Lock()
defer sql.Unlock()
gidstr := "group" + strconv.FormatInt(gid, 10)
husbandstr := strconv.FormatInt(husband, 10)
return sql.db.Del(gidstr, "where user = "+husbandstr)
return sql.db.Del(gidstr, "WHERE user = ?", husband)
}
// 注入判断 是否单身条件