1 | # -*- coding: utf-8 -*- |
||
2 | """ |
||
3 | cron: 30 14 * * * |
||
4 | new Env('Fa米家'); |
||
5 | """ |
||
6 | |||
7 | import requests |
||
8 | |||
9 | from notify_mtr import send |
||
10 | from utils import get_data |
||
11 | |||
12 | |||
13 | class FMAPP: |
||
14 | def __init__(self, check_items): |
||
15 | self.check_items = check_items |
||
16 | |||
17 | View Code Duplication | @staticmethod |
|
0 ignored issues
–
show
Duplication
introduced
by
![]() |
|||
18 | def sign(headers): |
||
19 | try: |
||
20 | url = ( |
||
21 | "https://fmapp.chinafamilymart.com.cn/api/app/market/member/signin/sign" |
||
22 | ) |
||
23 | res = requests.post(url, headers=headers).json() |
||
24 | if res.get("code") == "200": |
||
25 | data = res.get("data", {}) |
||
26 | msg = ( |
||
27 | f"再坚持 {data.get('nextDay')} 天即可获得 {data.get('nextNumber')} 个发米粒\n" |
||
28 | f"签到 {data.get('lastDay')} 天可获得 {data.get('lastNumber')} 个发米粒" |
||
29 | ) |
||
30 | else: |
||
31 | msg = res.get("message") |
||
32 | except Exception as e: |
||
33 | print("错误信息", e) |
||
34 | msg = f"未知错误:{e}" |
||
35 | return msg |
||
36 | |||
37 | View Code Duplication | @staticmethod |
|
0 ignored issues
–
show
|
|||
38 | def user_info(headers): |
||
39 | try: |
||
40 | url = "https://fmapp.chinafamilymart.com.cn/api/app/member/info" |
||
41 | res = requests.post(url, headers=headers).json() |
||
42 | if res.get("code") == "200": |
||
43 | msg = res.get("data", {}).get("nickName") |
||
44 | else: |
||
45 | msg = res.get("message") |
||
46 | except Exception as e: |
||
47 | print("错误信息", e) |
||
48 | msg = "未知错误,检查日志" |
||
49 | return msg |
||
50 | |||
51 | @staticmethod |
||
52 | def mili_count(headers): |
||
53 | try: |
||
54 | url = "https://fmapp.chinafamilymart.com.cn/api/app/member/v1/mili/service/detail" |
||
55 | res = requests.post( |
||
56 | url, headers=headers, json={"pageSize": 10, "pageNo": 1} |
||
57 | ).json() |
||
58 | if res.get("code") == "200": |
||
59 | msg = res.get("data", {}).get("miliNum") |
||
60 | else: |
||
61 | msg = res.get("message") |
||
62 | except Exception as e: |
||
63 | print("错误信息", e) |
||
64 | msg = "未知错误,检查日志" |
||
65 | return msg |
||
66 | |||
67 | def main(self): |
||
68 | msg_all = "" |
||
69 | for check_item in self.check_items: |
||
70 | token = check_item.get("token") |
||
71 | cookie = check_item.get("cookie") |
||
72 | blackbox = check_item.get("blackbox") |
||
73 | device_id = check_item.get("device_id") |
||
74 | fmversion = check_item.get("fmversion", "2.2.3") |
||
75 | os = check_item.get("os", "ios") |
||
76 | useragent = check_item.get("useragent", "Fa") |
||
77 | headers = { |
||
78 | "Accept": "*/*", |
||
79 | "Accept-Language": "zh-Hans;q=1.0", |
||
80 | "Accept-Encoding": "br;q=1.0, gzip;q=0.9, deflate;q=0.8", |
||
81 | "Host": "fmapp.chinafamilymart.com.cn", |
||
82 | "Content-Type": "application/json", |
||
83 | "loginChannel": "app", |
||
84 | "token": token, |
||
85 | "fmVersion": fmversion, |
||
86 | "deviceId": device_id, |
||
87 | "User-Agent": useragent, |
||
88 | "os": os, |
||
89 | "cookie": cookie, |
||
90 | "blackBox": blackbox, |
||
91 | } |
||
92 | sign_msg = self.sign(headers) |
||
93 | name_msg = self.user_info(headers) |
||
94 | mili_msg = self.mili_count(headers) |
||
95 | msg = f"帐号信息: {name_msg}\n签到状态: {sign_msg}\n米粒数量: {mili_msg}" |
||
96 | msg_all += msg + "\n\n" |
||
97 | return msg_all |
||
98 | |||
99 | |||
100 | if __name__ == "__main__": |
||
101 | _data = get_data() |
||
102 | _check_items = _data.get("FMAPP", []) |
||
103 | result = FMAPP(check_items=_check_items).main() |
||
104 | send("Fa米家", result) |
||
105 |