测试批量导入wskey 勿更新
This commit is contained in:
parent
f6f7cb0bb8
commit
daa9328504
@ -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() {
|
||||
|
||||
34
models/db.go
34
models/db.go
@ -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()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user