forked from yuxian158/check
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathck_fmapp.py
104 lines (96 loc) · 3.77 KB
/
ck_fmapp.py
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# -*- coding: utf-8 -*-
"""
建议cron: 30 14 * * *
new Env('米家');
"""
import json
import requests
from getENV import getENv
from checksendNotify import send
class FMAPPCheckIn:
def __init__(self, check_item):
self.check_item = check_item
@staticmethod
def sign(headers):
try:
url = "https://fmapp.chinafamilymart.com.cn/api/app/market/member/signin/sign"
response = requests.post(url=url, headers=headers).json()
code = response.get("code")
if code == "200":
data = response.get("data", {})
msg = (
f"在坚持{data.get('nextDay')}天即可获得{data.get('nextNumber')}个发米粒\n"
f"签到{data.get('lastDay')}天可获得{data.get('lastNumber')}个发米粒"
)
else:
msg = response.get("message")
except Exception as e:
print("错误信息", str(e))
msg = "未知错误,检查日志"
return msg
@staticmethod
def user_info(headers):
try:
url = "https://fmapp.chinafamilymart.com.cn/api/app/member/info"
response = requests.post(url=url, headers=headers).json()
code = response.get("code")
if code == "200":
data = response.get("data", {})
msg = data.get("nickName")
else:
msg = response.get("message")
except Exception as e:
print("错误信息", str(e))
msg = "未知错误,检查日志"
return msg
@staticmethod
def mili_count(headers):
try:
url = "https://fmapp.chinafamilymart.com.cn/api/app/member/v1/mili/service/detail"
response = requests.post(url=url, headers=headers, data=json.dumps({"pageSize": 10, "pageNo": 1})).json()
code = response.get("code")
if code == "200":
data = response.get("data", {})
msg = data.get("miliNum")
else:
msg = response.get("message")
except Exception as e:
print("错误信息", str(e))
msg = "未知错误,检查日志"
return msg
def main(self):
fmapp_token = self.check_item.get("fmapp_token")
fmapp_cookie = self.check_item.get("fmapp_cookie")
fmapp_blackbox = self.check_item.get("fmapp_blackbox")
fmapp_device_id = self.check_item.get("fmapp_device_id")
fmapp_fmversion = self.check_item.get("fmapp_fmversion", "2.2.3")
fmapp_os = self.check_item.get("fmapp_os", "ios")
fmapp_useragent = self.check_item.get("fmapp_useragent", "Fa")
headers = {
"Accept": "*/*",
"Accept-Language": "zh-Hans;q=1.0",
"Accept-Encoding": "br;q=1.0, gzip;q=0.9, deflate;q=0.8",
"Host": "fmapp.chinafamilymart.com.cn",
"Content-Type": "application/json",
"loginChannel": "app",
"token": fmapp_token,
"fmVersion": fmapp_fmversion,
"deviceId": fmapp_device_id,
"User-Agent": fmapp_useragent,
"os": fmapp_os,
"cookie": fmapp_cookie,
"blackBox": fmapp_blackbox,
}
sign_msg = self.sign(headers=headers)
name_msg = self.user_info(headers=headers)
mili_msg = self.mili_count(headers=headers)
msg = f"帐号信息: {name_msg}\n签到状态: {sign_msg}\n米粒数量: {mili_msg}"
return msg
if __name__ == "__main__":
getENv()
with open("/ql/config/check.json", "r", encoding="utf-8") as f:
datas = json.loads(f.read())
_check_item = datas.get("FMAPP_ACCOUNT_LIST", [])[0]
res = FMAPPCheckIn(check_item=_check_item).main()
print(res)
send("米家APP", res)