测试批量导入wskey 勿更新

This commit is contained in:
ZJY 2021-09-03 16:58:49 +08:00
parent f6f7cb0bb8
commit daa9328504
2 changed files with 93 additions and 32 deletions

View File

@ -97,42 +97,69 @@ var handleMessage = func(msgs ...interface{}) interface{} {
if err != nil {
return err
} else {
ss := regexp.MustCompile(`pt_key=([^;=\s]+);pt_pin=([^;=\s]+)`).FindAllStringSubmatch(rsp, -1)
if len(ss) > 0 {
xyb := 0
for _, s := range ss {
ck := JdCookie{
PtKey: s[1],
PtPin: s[2],
ss1 := regexp.MustCompile(`pin=([^;=\s]+);wskey=([^;=\s]+)`).FindAllStringSubmatch(msg, -1)
if len(ss1) > 0 {
for _, s := range ss1 {
ck1 := JdCookie{
PtPin: s[1],
WsKey: s[2],
}
if CookieOK(&ck) {
xyb++
if sender.IsQQ() {
ck.QQ = sender.UserID
} else if sender.IsTG() {
ck.Telegram = sender.UserID
}
if HasKey(ck.PtKey) {
sender.Reply(fmt.Sprintf("重复提交"))
if sender.IsQQ() {
ck1.QQ = sender.UserID
} else if sender.IsTG() {
ck1.Telegram = sender.UserID
}
if nck, err := GetJdCookie(ck1.PtPin); err == nil {
if nck.WsKey == "" {
nck.InPoolWskey(ck1.WsKey)
msg := fmt.Sprintf("写入WsKey%s", ck1.PtPin)
(&JdCookie{}).Push(msg)
logs.Info(msg)
} else {
if nck, err := GetJdCookie(ck.PtPin); err == nil {
nck.InPool(ck.PtKey)
msg := fmt.Sprintf("更新账号,%s", ck.PtPin)
(&JdCookie{}).Push(msg)
logs.Info(msg)
} else {
if Cdle {
ck.Hack = True
}
NewJdCookie(&ck)
msg := fmt.Sprintf("添加账号,%s", ck.PtPin)
sender.Reply(fmt.Sprintf(msg, AddCoin(sender.UserID)))
logs.Info(msg)
}
msg := fmt.Sprintf("重复写入")
(&JdCookie{}).Push(msg)
logs.Info(msg)
}
} else {
sender.Reply(fmt.Sprintf("无效,许愿币-1余额%d", RemCoin(sender.UserID, 1)))
ss := regexp.MustCompile(`pt_key=([^;=\s]+);pt_pin=([^;=\s]+)`).FindAllStringSubmatch(rsp, -1)
if len(ss) > 0 {
xyb := 0
for _, s := range ss {
ck := JdCookie{
PtKey: s[1],
PtPin: s[2],
WsKey: ck1.WsKey,
}
if CookieOK(&ck) {
xyb++
if sender.IsQQ() {
ck.QQ = sender.UserID
} else if sender.IsTG() {
ck.Telegram = sender.UserID
}
if nck, err := GetJdCookie(ck.PtPin); err == nil {
nck.InPool(ck.PtKey)
msg := fmt.Sprintf("更新账号,%s", ck.PtPin)
(&JdCookie{}).Push(msg)
logs.Info(msg)
} else {
if Cdle {
ck.Hack = True
}
NewJdCookie(&ck)
msg := fmt.Sprintf("添加账号,%s", ck.PtPin)
sender.Reply(fmt.Sprintf(msg, AddCoin(sender.UserID)))
logs.Info(msg)
}
} else {
sender.Reply(fmt.Sprintf("无效,许愿币-1余额%d", RemCoin(sender.UserID, 1)))
}
}
go func() {
Save <- &JdCookie{}
}()
return nil
}
}
}
go func() {

View File

@ -70,6 +70,14 @@ func HasKey(key string) bool {
return false
}
func HasWsKey(key string) bool {
if _, ok := keys[key]; ok {
return ok
}
keys[key] = true
return false
}
type JdCookie struct {
ID int `gorm:"column:ID;primaryKey"`
Priority int `gorm:"column:Priority;default:1"`
@ -106,6 +114,7 @@ type JdCookiePool struct {
ID int `gorm:"column:ID;primaryKey"`
PtKey string `gorm:"column:PtKey;unique"`
PtPin string `gorm:"column:PtPin"`
WsKey string `gorm:"column:WsKey"`
LoseAt string `gorm:"column:LoseAt"`
CreateAt string `gorm:"column:CreateAt"`
}
@ -185,6 +194,31 @@ func (ck *JdCookie) Update(column string, value interface{}) {
}
}
func (ck *JdCookie) InPoolWskey(wskey string) error {
if ck.ID != 0 {
date := Date()
tx := db.Begin()
jp := &JdCookiePool{}
if tx.Where(fmt.Sprintf("%s = '%s'", PtPin, ck.PtPin)).First(jp).Error == nil {
return tx.Rollback().Error
}
if err := tx.Create(&JdCookiePool{
PtPin: ck.PtPin,
WsKey: wskey,
CreateAt: date,
}).Error; err != nil {
tx.Rollback()
return err
}
tx.Model(ck).Updates(map[string]interface{}{
Available: True,
WsKey: wskey,
})
return tx.Commit().Error
}
return nil
}
func (ck *JdCookie) InPool(pt_key string) error {
if ck.ID != 0 {
date := Date()