x
This commit is contained in:
parent
adc00449c2
commit
bf8b3911ae
119
models/asset.go
119
models/asset.go
@ -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
|
||||
}
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user