mirror of
https://github.com/FloatTech/ZeroBot-Plugin.git
synced 2026-02-06 15:20:22 +00:00
chore: update deps
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
// 注入判断 是否单身条件
|
||||
|
||||
Reference in New Issue
Block a user