/
public.go
79 lines (71 loc) · 1.89 KB
/
public.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package genshin_sign
import (
"encoding/json"
"fmt"
"github.com/RicheyJang/PaimengBot/plugins/genshin/mihoyo"
log "github.com/sirupsen/logrus"
)
func Sign(uid string, cookie string) (string, error) {
// 获取角色信息
gameRole, err := mihoyo.GetUserGameRoleByUid(cookie, uid)
if err != nil {
return "获取原神角色失败", err
}
// 米游社签到
if err = mihoyo.Sign(cookie, *gameRole); err != nil { // 签到失败
msg := fmt.Sprintf("UID:%v, 昵称:%v\n米游社签到失败",
gameRole.Uid, gameRole.NickName)
return msg, err
}
// 签到成功
msg := fmt.Sprintf("UID:%v, 昵称:%v\n米游社签到成功", gameRole.Uid, gameRole.NickName)
// 查询签到信息
data, err := mihoyo.GetSignStateInfo(cookie, *gameRole)
if err != nil {
log.Warnf("GetSignStateInfo err: %v", err)
return msg, nil
}
msg += fmt.Sprintf("\n已连续签到%v天", data.TotalSignDay)
// 查询奖励信息
awards, err := mihoyo.GetSignAwardsList()
if err != nil {
log.Warnf("GetSignAwardsList err: %v", err)
return msg, nil
}
if len(awards.Awards) >= data.TotalSignDay {
item := awards.Awards[data.TotalSignDay-1]
msg += fmt.Sprintf("\n今天获得%d个%v", item.Count, item.Name)
}
return msg, nil
}
type EventFrom struct {
IsFromGroup bool
FromId string
QQ string `json:"qq"`
Auto bool
}
type UserInfo struct {
ID string
Uin string
cookie string
EventFrom EventFrom
}
func GetEventFrom(id int64) (eventFrom EventFrom, e error) {
key := fmt.Sprintf("genshin_eventfrom.u%v", id)
v, err := proxy.GetLevelDB().Get([]byte(key), nil)
if err != nil {
e = err
return
}
// 解析
e = json.Unmarshal(v, &eventFrom)
return
}
func PutEventFrom(id int64, u EventFrom) error {
key := fmt.Sprintf("genshin_eventfrom.u%v", id)
value, err := json.Marshal(u)
if err != nil {
return err
}
return proxy.GetLevelDB().Put([]byte(key), value, nil)
}