Merge branch 'main' into patch-2

This commit is contained in:
764763903a 2021-09-06 15:58:32 +08:00 committed by GitHub
commit a0667568b3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 86 additions and 70 deletions

View File

@ -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 {

View File

@ -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

View File

@ -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
}
}

View File

@ -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 {

View File

@ -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
}

View File

@ -7,4 +7,5 @@ import (
type Token struct {
Expiration time.Time
Token string
Address string
}

View File

@ -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]

View File

@ -5,7 +5,10 @@
secret: admin
在青龙里面系统设置,添加应用后配置
3.发送wskey即可自动添加账号
4.账号过期自动换key 暂未好
4.账号过期自动换key 更新修复完成
5.定时十二小时自动换key 暂未好
6.缓存token
7.批量绑定wskey
8.多容器 token缓存过期问题修复 暂未
9.wskey更新检测以及覆盖写入
10.解决%!(EXTRA 错误