This commit is contained in:
cdle 2021-08-18 12:00:15 +08:00
parent adc00449c2
commit bf8b3911ae
3 changed files with 126 additions and 34 deletions

View File

@ -27,6 +27,11 @@ type Asset struct {
ToExpireJd float64
ToExpireJx float64
ToExpireJs float64
ToExpireJk float64
Jd float64
Jx float64
Js float64
Jk float64
}
}
@ -35,6 +40,11 @@ var Int = func(s string) int {
return i
}
var Float64 = func(s string) float64 {
i, _ := strconv.ParseFloat(s, 64)
return i
}
func DailyAssetsPush() {
for _, ck := range GetJdCookies() {
if (ck.QQ != 0 && Config.QQID != 0 && SendQQ != nil) || ck.PushPlus != "" {
@ -61,9 +71,12 @@ func DailyAssetsPush() {
}
func (ck *JdCookie) Query() string {
msgs := []string{}
msgs := []string{
fmt.Sprintf("账号:%s", ck.Nickname),
}
asset := Asset{}
if CookieOK(ck) {
cookie := fmt.Sprintf("pt_key=%s;pt_pin=%s;", ck.PtKey, ck.PtPin)
today := time.Now().Local().Format("2006-01-02")
yestoday := time.Now().Local().Add(-time.Hour * 24).Format("2006-01-02")
page := 1
@ -72,9 +85,10 @@ func (ck *JdCookie) Query() string {
if end {
break
}
bds := getJingBeanBalanceDetail(page, fmt.Sprintf("pt_key=%s;pt_pin=%s;", ck.PtKey, ck.PtPin))
bds := getJingBeanBalanceDetail(page, cookie)
if bds == nil {
end = true
msgs = append(msgs, "京豆数据异常")
break
}
for _, bd := range bds {
@ -104,17 +118,57 @@ func (ck *JdCookie) Query() string {
fmt.Sprintf("今日收入:%d京豆", asset.Bean.TodayIn),
fmt.Sprintf("今日支出:%d京豆", asset.Bean.TodayOut),
}...)
msgs = append(msgs, fmt.Sprintf("当前京豆:%v京豆", ck.BeanNum))
rps := redPacket(cookie)
ysd := int(time.Now().Add(24 * time.Hour).Unix())
if rps != nil {
for _, rp := range rps {
b := Float64(rp.Balance)
asset.RedPacket.Total += b
if strings.Contains(rp.ActivityName, "京喜") {
asset.RedPacket.Jx += b
if ysd >= rp.BeginTime {
asset.RedPacket.ToExpireJx += b
asset.RedPacket.ToExpire += b
}
} else if strings.Contains(rp.ActivityName, "极速版") {
asset.RedPacket.Js += b
if ysd >= rp.BeginTime {
asset.RedPacket.ToExpireJs += b
asset.RedPacket.ToExpire += b
}
} else if strings.Contains(rp.ActivityName, "京东健康") {
asset.RedPacket.Jk += b
if ysd >= rp.BeginTime {
asset.RedPacket.ToExpireJk += b
asset.RedPacket.ToExpire += b
}
} else {
asset.RedPacket.Jd += b
if ysd >= rp.BeginTime {
asset.RedPacket.ToExpireJd += b
asset.RedPacket.ToExpire += b
}
}
}
msgs = append(msgs, []string{
fmt.Sprintf("当前总红包:%.2f(今日总过期%.2f)元🧧", asset.RedPacket.Total, asset.RedPacket.ToExpire),
fmt.Sprintf("京喜红包:%.2f(今日总过期%.2f)元🧧", asset.RedPacket.Jx, asset.RedPacket.ToExpireJx),
fmt.Sprintf("极速红包:%.2f(今日总过期%.2f)元🧧", asset.RedPacket.Js, asset.RedPacket.ToExpireJs),
fmt.Sprintf("健康红包:%.2f(今日总过期%.2f)元🧧", asset.RedPacket.Jk, asset.RedPacket.ToExpireJk),
fmt.Sprintf("京东红包:%.2f(今日总过期%.2f)元🧧", asset.RedPacket.Jd, asset.RedPacket.ToExpireJd),
}...)
} else {
msgs = append(msgs, "红包数据异常")
}
} else {
msgs = append(msgs, []string{
"提醒:该账号已过期,请重新登录",
}...)
}
ck.PtPin, _ = url.QueryUnescape(ck.PtPin)
return strings.Join(append([]string{
fmt.Sprintf("账号:%s", ck.PtPin),
fmt.Sprintf("昵称:%s", ck.Nickname),
fmt.Sprintf("备注:%s", ck.Note),
}, append(msgs, fmt.Sprintf("当前京豆:%v京豆", ck.BeanNum))...), "\n")
return strings.Join(msgs, "\n")
}
type BeanDetail struct {
@ -142,3 +196,54 @@ func getJingBeanBalanceDetail(page int, cookie string) []BeanDetail {
json.Unmarshal(data, &a)
return a.DetailList
}
type RedList struct {
ActivityName string `json:"activityName"`
Balance string `json:"balance"`
BeginTime int `json:"beginTime"`
DelayRemark string `json:"delayRemark"`
Discount string `json:"discount"`
EndTime int `json:"endTime"`
HbID string `json:"hbId"`
HbState int `json:"hbState"`
IsDelay bool `json:"isDelay"`
OrgLimitStr string `json:"orgLimitStr"`
}
func redPacket(cookie string) []RedList {
type UseRedInfo struct {
Count int `json:"count"`
RedList []RedList `json:"redList"`
}
type Data struct {
AvaiCount int `json:"avaiCount"`
Balance string `json:"balance"`
CountdownTime string `json:"countdownTime"`
ExpiredBalance string `json:"expiredBalance"`
ServerCurrTime int `json:"serverCurrTime"`
UseRedInfo UseRedInfo `json:"useRedInfo"`
}
type AutoGenerated struct {
Data Data `json:"data"`
Errcode int `json:"errcode"`
Msg string `json:"msg"`
}
a := AutoGenerated{}
req := httplib.Get(`https://m.jingxi.com/user/info/QueryUserRedEnvelopesV2?type=1&orgFlag=JD_PinGou_New&page=1&cashRedType=1&redBalanceFlag=1&channel=1&_=` + fmt.Sprint(time.Now().Unix()) + `&sceneval=2&g_login_type=1&g_ty=ls`)
req.Header("User-Agent", ua)
req.Header("Host", "m.jingxi.com")
req.Header("Accept", "*/*")
req.Header("Connection", "keep-alive")
req.Header("Accept-Language", "zh-cn")
req.Header("Accept-Encoding", "gzip, deflate, br")
req.Header("Referer", "https://st.jingxi.com/my/redpacket.shtml?newPg=App&jxsid=16156262265849285961")
req.Header("Cookie", cookie)
data, err := req.Bytes()
fmt.Println(data, err)
if err != nil {
return nil
}
json.Unmarshal(data, &a)
return a.Data.UseRedInfo.RedList
}

View File

@ -133,6 +133,7 @@ func initCookie() {
}
func CookieOK(ck *JdCookie) bool {
// redPacket(fmt.Sprintf("pt_key=%s;pt_pin=%s;", ck.PtKey, ck.PtPin))
if ck == nil {
return true
}

View File

@ -163,29 +163,23 @@ var handleMessage = func(msgs ...interface{}) interface{} {
return nil
case "查询", "query":
cks := GetJdCookies()
pins := ""
tmp := []JdCookie{}
for _, ck := range cks {
if tp == "qq" {
if ck.QQ == id {
pins += "&" + ck.PtPin
tmp = append(tmp, ck)
}
} else if tp == "qqg" {
if ck.QQ == msgs[3].(int) {
pins += "&" + ck.PtPin
tmp = append(tmp, ck)
}
}
}
if pins == "" {
if len(tmp) == 0 {
return "你尚未绑定🐶东账号,请对我说扫码,扫码后即可查询账户资产信息。"
}
for _, task := range Config.Tasks {
if task.Word == msg {
task.Envs = []Env{{
Name: "pins",
Value: pins,
}}
runTask(&task, msgs...)
}
for _, ck := range tmp {
go sendMessagee(ck.Query(), msgs...)
}
return nil
default:
@ -249,11 +243,11 @@ var handleMessage = func(msgs ...interface{}) interface{} {
}
cks := GetJdCookies()
a := s[2]
pins := ""
tmp := []JdCookie{}
if s := strings.Split(a, "-"); len(s) == 2 {
for i, ck := range cks {
if i+1 >= Int(s[0]) && i+1 <= Int(s[1]) {
pins += "&" + ck.PtPin
tmp = append(tmp, ck)
}
}
} else if x := regexp.MustCompile(`^[\s\d,]+$`).FindString(a); x != "" {
@ -261,7 +255,7 @@ var handleMessage = func(msgs ...interface{}) interface{} {
for i, ck := range cks {
for _, x := range xx {
if fmt.Sprint(i+1) == x[1] {
pins += "&" + ck.PtPin
tmp = append(tmp, ck)
}
}
@ -270,24 +264,16 @@ var handleMessage = func(msgs ...interface{}) interface{} {
a = strings.Replace(a, " ", "", -1)
for _, ck := range cks {
if strings.Contains(ck.Note, a) || strings.Contains(ck.Nickname, a) || strings.Contains(ck.PtPin, a) {
pins += "&" + ck.PtPin
tmp = append(tmp, ck)
}
}
}
if pins == "" {
if len(tmp) == 0 {
return "找不到匹配的账号"
}
for _, task := range Config.Tasks {
if task.Word == "查询" {
task.Envs = []Env{{
Name: "pins",
Value: pins,
}}
runTask(&task, msgs...)
break
}
for _, ck := range tmp {
go sendMessagee(ck.Query(), msgs...)
}
return nil