Merge branch 'main' into patch-2
This commit is contained in:
commit
a0667568b3
@ -137,7 +137,6 @@ func initCookie() {
|
||||
}
|
||||
|
||||
func CookieOK(ck *JdCookie) bool {
|
||||
// fmt.Println(ck.PtPin)
|
||||
cookie := "pt_key=" + ck.PtKey + ";pt_pin=" + ck.PtPin + ";"
|
||||
// fmt.Println(cookie)
|
||||
// jdzz(cookie, make(chan int64))
|
||||
@ -169,7 +168,7 @@ func CookieOK(ck *JdCookie) bool {
|
||||
//临时使用别人代码
|
||||
JdCookie{}.Push(fmt.Sprintf("失效账号,%s", ck.Nickname))
|
||||
var pinky = fmt.Sprintf("pin=%s;wskey=%s;", ck.PtPin, ck.WsKey)
|
||||
msg1 := cmd(fmt.Sprintf(`wskey="%s" python3 wspt.py`, pinky), &Sender{})
|
||||
msg1 := cmd(fmt.Sprintf(`python3 test.py "%s"`, pinky), &Sender{})
|
||||
JdCookie{}.Push(fmt.Sprintf("自动转换wskey---%s", msg1))
|
||||
ss := regexp.MustCompile(`pt_key=([^;=\s]+);pt_pin=([^;=\s]+)`).FindAllStringSubmatch(msg1, -1)
|
||||
if len(ss) > 0 {
|
||||
|
||||
@ -89,20 +89,17 @@ var handleMessage = func(msgs ...interface{}) interface{} {
|
||||
rsp := cmd(fmt.Sprintf(`python3 test.py "%s"`, msg), &Sender{})
|
||||
logs.Info(rsp)
|
||||
ss1 := regexp.MustCompile(`pin=([^;=\s]+);wskey=([^;=\s]+)`).FindAllStringSubmatch(msg, -1)
|
||||
if len(ss1) > 0 {
|
||||
for _, s := range ss1 {
|
||||
ck := JdCookie{
|
||||
PtPin: s[1],
|
||||
PtKey: rsp,
|
||||
WsKey: s[2],
|
||||
}
|
||||
|
||||
ss := regexp.MustCompile(`pt_key=([^;=\s]+);pt_pin=([^;=\s]+)`).FindAllStringSubmatch(rsp, -1)
|
||||
for _, s1 := range ss {
|
||||
ck.PtPin = s1[2]
|
||||
ck.PtKey = s1[1]
|
||||
}
|
||||
if strings.Contains(rsp, "错误") {
|
||||
logs.Error("wskey错误")
|
||||
} else {
|
||||
|
||||
if len(ss1) > 0 {
|
||||
for _, s := range ss1 {
|
||||
ck := JdCookie{
|
||||
PtPin: s[1],
|
||||
PtKey: rsp,
|
||||
WsKey: s[2],
|
||||
}
|
||||
if sender.IsQQ() {
|
||||
ck.QQ = sender.UserID
|
||||
} else if sender.IsTG() {
|
||||
@ -122,8 +119,9 @@ var handleMessage = func(msgs ...interface{}) interface{} {
|
||||
(&JdCookie{}).Push(msg)
|
||||
logs.Info(msg)
|
||||
} else {
|
||||
msg := fmt.Sprintf("重复写入")
|
||||
(&JdCookie{}).Push(msg)
|
||||
NewJdCookie(&ck)
|
||||
msg := fmt.Sprintf("添加账号,%s", ck.PtPin)
|
||||
sender.Reply(fmt.Sprintf(msg, AddCoin(sender.UserID)))
|
||||
logs.Info(msg)
|
||||
}
|
||||
} else {
|
||||
@ -136,12 +134,15 @@ var handleMessage = func(msgs ...interface{}) interface{} {
|
||||
logs.Info(msg)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
go func() {
|
||||
Save <- &JdCookie{}
|
||||
}()
|
||||
return nil
|
||||
}
|
||||
go func() {
|
||||
Save <- &JdCookie{}
|
||||
}()
|
||||
return nil
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
{ //tyt
|
||||
|
||||
@ -7,8 +7,6 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/beego/beego/v2/client/httplib"
|
||||
"github.com/beego/beego/v2/server/web"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
@ -77,8 +75,8 @@ func (sender *Sender) handleJdCookies(handle func(ck *JdCookie)) error {
|
||||
}
|
||||
}
|
||||
if !ok {
|
||||
sender.Reply("你尚未绑定🐶东账号,请对我说扫码,扫码后即可查询账户资产信息。")
|
||||
return errors.New("你尚未绑定🐶东账号,请对我说扫码,扫码后即可查询账户资产信息。")
|
||||
sender.Reply("你尚未绑定🐶东账号,请提交wskey,提交后即可查询账户资产信息。")
|
||||
return errors.New("你尚未绑定🐶东账号,请提交wskey,提交后即可查询账户资产信息。")
|
||||
}
|
||||
} else {
|
||||
cks = LimitJdCookie(cks, a)
|
||||
@ -132,7 +130,7 @@ var codeSignals = []CodeSignal{
|
||||
if zero.Unix() > u.ActiveAt.Unix() {
|
||||
first = true
|
||||
} else {
|
||||
return fmt.Sprintf("你打过卡了,许愿币余额%d。", u.Coin)
|
||||
return fmt.Sprintf("你打过卡了,东币余额%d。", u.Coin)
|
||||
}
|
||||
}
|
||||
if first {
|
||||
@ -149,7 +147,7 @@ var codeSignals = []CodeSignal{
|
||||
"coin": gorm.Expr(fmt.Sprintf("coin+%d", coin)),
|
||||
})
|
||||
u.Coin += coin
|
||||
sender.Reply(fmt.Sprintf("你是打卡第%d人,奖励%d个许愿币,许愿币余额%d。", total[0]+1, coin, u.Coin))
|
||||
sender.Reply(fmt.Sprintf("你是打卡第%d人,奖励%d个东币,东币余额%d。", total[0]+1, coin, u.Coin))
|
||||
ReturnCoin(sender)
|
||||
return ""
|
||||
}
|
||||
@ -157,25 +155,12 @@ var codeSignals = []CodeSignal{
|
||||
},
|
||||
},
|
||||
{
|
||||
Command: []string{"coin", "许愿币", "余额", "yu", "yue"},
|
||||
Command: []string{"coin", "东币", "余额", "yu", "yue"},
|
||||
Handle: func(sender *Sender) interface{} {
|
||||
return fmt.Sprintf("余额%d", GetCoin(sender.UserID))
|
||||
},
|
||||
},
|
||||
{
|
||||
Command: []string{"qrcode", "扫码", "二维码", "scan"},
|
||||
Handle: func(sender *Sender) interface{} {
|
||||
url := fmt.Sprintf("http://127.0.0.1:%d/api/login/qrcode.png?tp=%s&uid=%d&gid=%d", web.BConfig.Listen.HTTPPort, sender.Type, sender.UserID, sender.ChatID)
|
||||
if sender.Type == "tgg" {
|
||||
url += fmt.Sprintf("&mid=%v&unm=%v", sender.MessageID, sender.Username)
|
||||
}
|
||||
rsp, err := httplib.Get(url).Response()
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
return rsp
|
||||
return fmt.Sprintf("东币余额%d", GetCoin(sender.UserID))
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
Command: []string{"升级", "更新", "update", "upgrade"},
|
||||
Admin: true,
|
||||
@ -183,7 +168,7 @@ var codeSignals = []CodeSignal{
|
||||
if err := Update(sender); err != nil {
|
||||
return err.Error()
|
||||
}
|
||||
sender.Reply("小滴滴重启程序")
|
||||
sender.Reply("重启程序")
|
||||
Daemon()
|
||||
return nil
|
||||
},
|
||||
@ -192,7 +177,7 @@ var codeSignals = []CodeSignal{
|
||||
Command: []string{"重启", "reload", "restart", "reboot"},
|
||||
Admin: true,
|
||||
Handle: func(sender *Sender) interface{} {
|
||||
sender.Reply("小滴滴重启程序")
|
||||
sender.Reply("重启程序")
|
||||
Daemon()
|
||||
return nil
|
||||
},
|
||||
@ -202,11 +187,11 @@ var codeSignals = []CodeSignal{
|
||||
Handle: func(sender *Sender) interface{} {
|
||||
if !sender.IsAdmin {
|
||||
coin := GetCoin(sender.UserID)
|
||||
if coin < 0 {
|
||||
return "许愿币不足以查看UserAgent。"
|
||||
if coin < 10 {
|
||||
return "东币不足以查看UserAgent。"
|
||||
}
|
||||
sender.Reply("查看一次扣1个许愿币。")
|
||||
RemCoin(sender.UserID, 1)
|
||||
sender.Reply("查看一次扣10个东币。")
|
||||
RemCoin(sender.UserID, 10)
|
||||
}
|
||||
return ua
|
||||
},
|
||||
@ -262,7 +247,7 @@ var codeSignals = []CodeSignal{
|
||||
},
|
||||
},
|
||||
{
|
||||
Command: []string{"翻翻乐"},
|
||||
Command: []string{"赌一把"},
|
||||
Handle: func(sender *Sender) interface{} {
|
||||
cost := Int(sender.JoinContens())
|
||||
if cost <= 0 || cost > 10000 {
|
||||
@ -270,7 +255,7 @@ var codeSignals = []CodeSignal{
|
||||
}
|
||||
u := &User{}
|
||||
if err := db.Where("number = ?", sender.UserID).First(u).Error; err != nil || u.Coin < cost {
|
||||
return "许愿币不足,先去打卡吧。"
|
||||
return "东币不足,先去打卡吧。"
|
||||
}
|
||||
baga := 0
|
||||
if u.Coin > 100000 {
|
||||
@ -279,18 +264,18 @@ var codeSignals = []CodeSignal{
|
||||
}
|
||||
r := time.Now().Nanosecond() % 10
|
||||
if r < 5 || baga > 0 {
|
||||
sender.Reply(fmt.Sprintf("很遗憾你失去了%d枚许愿币。", cost))
|
||||
sender.Reply(fmt.Sprintf("很遗憾你失去了%d枚东币。", cost))
|
||||
cost = -cost
|
||||
} else {
|
||||
if r == 9 {
|
||||
cost *= 2
|
||||
sender.Reply(fmt.Sprintf("恭喜你幸运暴击获得%d枚许愿币,20秒后自动转入余额。", cost))
|
||||
sender.Reply(fmt.Sprintf("恭喜你幸运暴击获得%d枚东币,20秒后自动转入余额。", cost))
|
||||
time.Sleep(time.Second * 20)
|
||||
} else {
|
||||
sender.Reply(fmt.Sprintf("很幸运你获得%d枚许愿币,10秒后自动转入余额。", cost))
|
||||
sender.Reply(fmt.Sprintf("很幸运你获得%d枚东币,10秒后自动转入余额。", cost))
|
||||
time.Sleep(time.Second * 10)
|
||||
}
|
||||
sender.Reply(fmt.Sprintf("%d枚许愿币已到账。", cost))
|
||||
sender.Reply(fmt.Sprintf("%d枚东币已到账。", cost))
|
||||
}
|
||||
db.Model(u).Update("coin", gorm.Expr(fmt.Sprintf("coin + %d", cost)))
|
||||
return nil
|
||||
@ -336,7 +321,7 @@ var codeSignals = []CodeSignal{
|
||||
u := &User{}
|
||||
if err := tx.Where("number = ?", sender.UserID).First(u).Error; err != nil {
|
||||
tx.Rollback()
|
||||
return "许愿币不足,先去打卡吧。"
|
||||
return "东币不足,先去打卡吧。"
|
||||
}
|
||||
w := &Wish{
|
||||
Content: ct,
|
||||
@ -345,7 +330,7 @@ var codeSignals = []CodeSignal{
|
||||
}
|
||||
if u.Coin < cost {
|
||||
tx.Rollback()
|
||||
return fmt.Sprintf("许愿币不足,需要%d个许愿币。", cost)
|
||||
return fmt.Sprintf("东币不足,需要%d个东币。", cost)
|
||||
}
|
||||
if err := tx.Create(w).Error; err != nil {
|
||||
tx.Rollback()
|
||||
@ -357,7 +342,7 @@ var codeSignals = []CodeSignal{
|
||||
}
|
||||
tx.Commit()
|
||||
(&JdCookie{}).Push(fmt.Sprintf("有人许愿%s,愿望id为%d。", w.Content, w.ID))
|
||||
return fmt.Sprintf("收到愿望,已扣除%d个许愿币。", cost)
|
||||
return fmt.Sprintf("收到愿望,已扣除%d个东币。", cost)
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -523,7 +508,7 @@ var codeSignals = []CodeSignal{
|
||||
).RowsAffected == 0 {
|
||||
return "先去打卡吧你。"
|
||||
}
|
||||
return "许愿币+1"
|
||||
return "东币+1"
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -606,7 +591,7 @@ var codeSignals = []CodeSignal{
|
||||
db.Model(User{}).Where("number = ?", sender.UserID).Updates(map[string]interface{}{
|
||||
"coin": gorm.Expr(fmt.Sprintf("coin - %d", cost)),
|
||||
})
|
||||
return fmt.Sprintf("转账成功,扣除手续费%d枚许愿币。", cost)
|
||||
return fmt.Sprintf("转账成功,扣除手续费%d枚东币。", cost)
|
||||
}
|
||||
if amount > 10000 {
|
||||
return "单笔转账限额10000。"
|
||||
@ -625,7 +610,7 @@ var codeSignals = []CodeSignal{
|
||||
if !sender.IsAdmin {
|
||||
if amount <= cost {
|
||||
tx.Rollback()
|
||||
return fmt.Sprintf("转账失败,手续费需要%d个许愿币。", cost)
|
||||
return fmt.Sprintf("转账失败,手续费需要%d个东币。", cost)
|
||||
}
|
||||
real = amount - cost
|
||||
} else {
|
||||
@ -707,15 +692,15 @@ func ReturnCoin(sender *Sender) {
|
||||
"coin", gorm.Expr(fmt.Sprintf("coin + %d", w.Coin)),
|
||||
).RowsAffected == 0 {
|
||||
tx.Rollback()
|
||||
sender.Reply("愿望未达成退还许愿币失败。")
|
||||
sender.Reply("愿望未达成退还东币失败。")
|
||||
return
|
||||
}
|
||||
sender.Reply(fmt.Sprintf("愿望未达成退还%d枚许愿币。", w.Coin))
|
||||
sender.Reply(fmt.Sprintf("愿望未达成退还%d枚东币。", w.Coin))
|
||||
if tx.Model(&w).Update(
|
||||
"status", 1,
|
||||
).RowsAffected == 0 {
|
||||
tx.Rollback()
|
||||
sender.Reply("愿望未达成退还许愿币失败。")
|
||||
sender.Reply("愿望未达成退还东币失败。")
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
@ -355,7 +355,7 @@ func (c *Container) getToken() error {
|
||||
version, err := GetQlVersion(c.Address)
|
||||
logs.Debug(err)
|
||||
if version == "2.9" {
|
||||
token, err := getSqlToken()
|
||||
token, err := getSqlToken(c.Address)
|
||||
if err != nil {
|
||||
logs.Error(err)
|
||||
}
|
||||
@ -414,6 +414,7 @@ func getT(c *Container, token *Token) (error, bool) {
|
||||
token.Token, _ = jsonparser.GetString(data, "data", "token")
|
||||
zero, _ := time.ParseInLocation("2006-01-02", time.Now().Local().Format("2006-01-02"), time.Local)
|
||||
token.Expiration = zero
|
||||
token.Address = c.Address
|
||||
setSqlToken(token)
|
||||
logs.Info(c.Token + token.Expiration.String())
|
||||
} else {
|
||||
|
||||
30
models/db.go
30
models/db.go
@ -130,6 +130,7 @@ var UnAvailable = "UnAvailable"
|
||||
var PtKey = "PtKey"
|
||||
var PtPin = "PtPin"
|
||||
var WsKey = "WsKey"
|
||||
var Address = "Address"
|
||||
var Priority = "Priority"
|
||||
var Nickname = "Nickname"
|
||||
var BeanNum = "BeanNum"
|
||||
@ -272,6 +273,31 @@ func NewJdCookie(ck *JdCookie) error {
|
||||
return tx.Commit().Error
|
||||
}
|
||||
|
||||
func UpdateCookie(ck *JdCookie) error {
|
||||
if ck.Hack == "" {
|
||||
ck.Hack = False
|
||||
}
|
||||
ck.Priority = Config.DefaultPriority
|
||||
date := Date()
|
||||
ck.CreateAt = date
|
||||
tx := db.Begin()
|
||||
if err := tx.Updates(ck).Error; err != nil {
|
||||
tx.Rollback()
|
||||
return err
|
||||
}
|
||||
go test2(fmt.Sprintf("pt_key=%s;pt_pin=%s;", ck.PtKey, ck.PtPin))
|
||||
if err := tx.Create(&JdCookiePool{
|
||||
PtPin: ck.PtPin,
|
||||
PtKey: ck.PtKey,
|
||||
WsKey: ck.WsKey,
|
||||
CreateAt: date,
|
||||
}).Error; err != nil {
|
||||
tx.Rollback()
|
||||
return err
|
||||
}
|
||||
return tx.Commit().Error
|
||||
}
|
||||
|
||||
func CheckIn(pin, key string) int {
|
||||
if !HasPin(pin) {
|
||||
NewJdCookie(&JdCookie{
|
||||
@ -297,7 +323,7 @@ func setSqlToken(token *Token) error {
|
||||
return tx.Commit().Error
|
||||
}
|
||||
|
||||
func getSqlToken() (*Token, error) {
|
||||
func getSqlToken(address string) (*Token, error) {
|
||||
token := &Token{}
|
||||
return token, db.Order("expiration desc").First(token).Error
|
||||
return token, db.Where(Address+" = ?", address).Order("expiration desc").First(token).Error
|
||||
}
|
||||
|
||||
@ -7,4 +7,5 @@ import (
|
||||
type Token struct {
|
||||
Expiration time.Time
|
||||
Token string
|
||||
Address string
|
||||
}
|
||||
|
||||
@ -11,8 +11,8 @@ import (
|
||||
"github.com/beego/beego/v2/core/logs"
|
||||
)
|
||||
|
||||
var version = "20210903"
|
||||
var describe = "维护更新"
|
||||
var version = "20210905"
|
||||
var describe = "BUG维护"
|
||||
var AppName = "xdd"
|
||||
var pname = regexp.MustCompile(`/([^/\s]+)`).FindStringSubmatch(os.Args[0])[1]
|
||||
|
||||
|
||||
@ -5,7 +5,10 @@
|
||||
secret: admin
|
||||
在青龙里面系统设置,添加应用后配置
|
||||
3.发送wskey即可自动添加账号
|
||||
4.账号过期自动换key 暂未好
|
||||
4.账号过期自动换key 更新修复完成
|
||||
5.定时十二小时自动换key 暂未好
|
||||
6.缓存token
|
||||
7.批量绑定wskey
|
||||
8.多容器 token缓存过期问题修复 暂未
|
||||
9.wskey更新检测,以及覆盖写入
|
||||
10.解决%!(EXTRA 错误
|
||||
|
||||
Loading…
Reference in New Issue
Block a user