-
Notifications
You must be signed in to change notification settings - Fork 170
/
Copy pathcloudgames.py
113 lines (100 loc) · 4.99 KB
/
cloudgames.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
105
106
107
108
109
110
111
112
113
import random
import time
import tools
import config
import setting
from request import http
from loghelper import log
class CloudGenshin:
def __init__(self, token) -> None:
self.headers = {
'Host': 'api-cloudgame.mihoyo.com',
'Accept': '*/*',
'Referer': 'https://app.mihoyo.com',
'x-rpc-combo_token': token,
'Accept-Encoding': 'gzip, deflate',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/99.0.4844.84 Safari/537.36',
}
def sign_account(self) -> str:
ret_msg = "云原神:\r\n"
req = http.get(url=setting.cloud_genshin_sgin, headers=self.headers)
data = req.json()
if data['retcode'] == 0:
free_time_data = data["data"]["free_time"]
free_time = int(free_time_data["free_time"])
send_free_time = int(free_time_data["send_freetime"])
if send_free_time > 0:
log.info(f'签到成功,已获得{send_free_time}分钟免费时长')
ret_msg += f'签到成功,已获得{send_free_time}分钟免费时长\n'
else:
if free_time < 600:
time.sleep(random.randint(3, 6))
data2 = http.get(url=setting.cloud_genshin_sgin, headers=self.headers).json()
free_time2 = int(data2["data"]["free_time"]["free_time"])
if free_time2 > free_time:
get_free_time = free_time2 - free_time
log.info(f'签到成功,已获得{get_free_time}分钟免费时长')
ret_msg += f'签到成功,已获得{get_free_time}分钟免费时长\n'
else:
log.info('签到失败,未获得免费时长,可能是已经签到过了或者超出免费时长上限')
ret_msg += '签到失败,未获得免费时长,可能是已经签到过了或者超出免费时长上限\n'
ret_msg += f'你当前拥有免费时长 {tools.time_conversion(int(data["data"]["free_time"]["free_time"]))} ,' \
f'畅玩卡状态为 {data["data"]["play_card"]["short_msg"]},拥有米云币 {data["data"]["coin"]["coin_num"]} 枚'
log.info(ret_msg)
elif data['retcode'] == -100:
ret_msg = "云原神token失效/防沉迷"
log.warning(ret_msg)
config.clear_cookie_cloudgame_genshin()
else:
ret_msg = f'脚本签到失败,json文本:{req.text}'
log.warning(ret_msg)
return ret_msg
class CloudZZZ:
def __init__(self, token) -> None:
self.headers = {
'Host': 'cg-nap-api.mihoyo.com',
'Accept': '*/*',
'x-rpc-combo_token': token,
'Accept-Encoding': 'gzip, deflate',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/99.0.4844.84 Safari/537.36',
}
def sign_account(self) -> str:
ret_msg = "云绝区零:\r\n"
req = http.get(url=setting.cloud_zzz_sgin, headers=self.headers)
data = req.json()
if data['retcode'] == 0:
if int(data["data"]["free_time"]["send_freetime"]) > 0:
log.info(f'签到成功,已获得{data["data"]["free_time"]["send_freetime"]}分钟免费时长')
ret_msg += f'签到成功,已获得{data["data"]["free_time"]["send_freetime"]}分钟免费时长\n'
else:
log.info('签到失败,未获得免费时长,可能是已经签到过了或者超出免费时长上限')
ret_msg += '签到失败,未获得免费时长,可能是已经签到过了或者超出免费时长上限\n'
ret_msg += f'你当前拥有免费时长 {tools.time_conversion(int(data["data"]["free_time"]["free_time"]))} ,' \
f'畅玩卡状态为 {data["data"]["play_card"]["short_msg"]},拥有邦邦点 {data["data"]["coin"]["coin_num"]} 个'
log.info(ret_msg)
elif data['retcode'] == -100:
ret_msg = "云绝区零token失效/防沉迷"
log.warning(ret_msg)
config.clear_cookie_cloudgame_zzz()
else:
ret_msg = f'脚本签到失败,json文本:{req.text}'
log.warning(ret_msg)
return ret_msg
def run_task() -> str:
ret_msg = ""
cg_cn = config.config['cloud_games']['cn']
if not cg_cn['enable']:
return ""
# 云原神签到
if cg_cn['genshin']['enable'] and cg_cn['genshin']['token'] != "":
cg_genshin = CloudGenshin(cg_cn['genshin']['token'])
ret_msg += cg_genshin.sign_account() + "\n\n"
# 云绝区零签到
if cg_cn['zzz']['enable'] and cg_cn['zzz']['token'] != "":
cg_zzz = CloudZZZ(cg_cn['zzz']['token'])
ret_msg += cg_zzz.sign_account() + "\n\n"
return ret_msg
if __name__ == '__main__':
pass