Passed
Pull Request — master (#125)
by
unknown
02:09
created

ck_haidilao.Haidilao.main()   A

Complexity

Conditions 2

Size

Total Lines 6
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 6
nop 1
dl 0
loc 6
rs 10
c 0
b 0
f 0
1
# -*- coding: utf-8 -*-
2
"""
3
cron: 20 8 * * *
4
new Env('海底捞会员签到');
5
"""
6
7
import json
8
import requests
9
10
from notify_mtr import send
11
from utils import get_data
12
13
14
class Haidilao:
15
    def __init__(self, check_items):
16
        self.check_items = check_items
17
18
    @staticmethod
19
    def checkin(openid,uid):
20
        url = "https://superapp-public.kiwa-tech.com/"
21
        headers = {
22
            "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile MicroMessenger NetType/4G Language/en miniProgram",
23
            "Content-Type": "json",
24
            "AppId": 15
25
        }
26
        login_data = {
27
            "openId" : openid,
28
            "country" : "CN",
29
            "uid" : uid,
30
            "type" : 1,
31
            "codeType" : 1
32
        }
33
        login = requests.post(url + "login/thirdCommLogin", headers=headers, data=json.dumps(login_data)).text
34
        try:
35
            login = json.loads(login)
36
            if login["success"] != True:
37
                return "登陆失败"
38
        except json.decoder.JSONDecodeError:
39
            return "请求失败"
40
        headers["_HAIDILAO_APP_TOKEN"] = login["data"]["token"]
41
        headers["ReqType"] = "APPH5"
42
        headers["Referer"] = url + "app-sign-in/?SignInToken=" + login["data"]["token"] + "&source=MiniApp"
43
        signin = requests.post(url + "activity/wxapp/signin/signin", headers=headers, data=json.dumps({"signinSource" : "MiniApp"})).text
44
        try:
45
            signin = json.loads(signin)
46
            if signin["success"] != True:
47
                return "今日签到过了"
48
        except json.decoder.JSONDecodeError:
49
            return "请求失败"
50
        fragment = requests.post(url + "activity/wxapp/signin/queryFragment", headers=headers).text
51
        try:
52
            fragment = json.loads(fragment)
53
            if signin["success"] == True:
54
                return "账号:" + login["data"]["name"] + "\n\n签到成功,碎片余额:" + fragment["data"]["total"]
55
        except json.decoder.JSONDecodeError:
56
            return "请求失败"
57
58
    def main(self):
59
        msg_all = ""
60
        for check_item in self.check_items:
61
            msg = self.checkin(openid=str(check_item.get("openid")),uid=str(check_item.get("uid")))
62
            msg_all += msg + "\n\n"
63
        return msg_all
64
65
66
if __name__ == "__main__":
67
    data = get_data()
68
    _check_items = data.get("HAIDILAO", [])
69
    res = Haidilao(check_items=_check_items).main()
70
    send("海底捞会员签到", res)
71