云原神签到

This commit is contained in:
Womsxd 2022-08-28 17:31:01 +08:00
parent f4b2433fd9
commit 858d425d15
No known key found for this signature in database
GPG Key ID: 0FE76418EE689B68
3 changed files with 39 additions and 34 deletions

View File

@ -1,18 +1,17 @@
import setting
from request import http
import tools
import config
import setting
from request import http
from loghelper import log
class cloud_ys():
def __init__(self,token) -> None:
class CloudGenshin:
def __init__(self) -> None:
self.headers = {
'x-rpc-combo_token': token,
'x-rpc-combo_token': config.config['cloud_games']['genshin']['token'],
'x-rpc-client_type': setting.mihoyobbs_Client_type,
'x-rpc-app_version': setting.cloudgenshin_Version,
'x-rpc-sys_version': '12', # Previous version need to convert the type of this var
'x-rpc-sys_version': '12',
'x-rpc-channel': 'mihoyo',
'x-rpc-device_id': tools.get_device_id(),
'x-rpc-device_name': 'Xiaomi M2012K11AC',
@ -25,20 +24,27 @@ class cloud_ys():
'User-Agent': 'okhttp/4.9.0'
}
def Sgin(self):
req = http.get(url=setting.Cloud_Ys_Sgin,headers=self.headers).json()
try:
jg = req['data']['list'][0]['msg']
if "每日登录奖励" in jg:
log.info("云原神签到成功")
data = "云原神签到成功"
except IndexError:
log.warning("云原神签到失败或重复签到")
data = "云原神签到失败或重复签到"
except Exception as er:
log.warning(f"云原神签到失败,出现了错误:{er}")
data = f"云原神签到失败,出现了错误:{er}"
reqs = http.get(url=setting.Cloud_ys_Inquire,headers=self.headers).json()
nr = (f"\n你当前拥有免费时长 {reqs['data']['free_time']['free_time']} 分钟,畅玩卡状态为 {reqs['data']['play_card']['short_msg']},拥有米云币 {reqs['data']['coin']['coin_num']}")
data = data + nr
return data
def sign_account(self):
ret_msg = "云原神:\r\n"
req = http.get(url=setting.cloud_genshin_Inquire, headers=self.headers)
data = req.json()
if data['retcode'] == 0:
if req["data"]["free_time"]['free_time'] == '0':
log.info('签到失败,未获得免费时长,可能是已经签到过了或者超出免费时长上线')
else:
log.info(f'签到成功,已获得{data["data"]["free_time"]["free_time"]}分钟免费时长')
ret_msg = f'你当前拥有免费时长 {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()
else:
ret_msg = f'脚本签到失败json文本:{req.text}'
log.warning(ret_msg)
return ret_msg
if __name__ == '__main__':
pass

10
main.py
View File

@ -96,14 +96,14 @@ def main():
ret_code = 3
return_data += "\n\n" + genshin_message
time.sleep(random.randint(2, 8))
if config.config['cloud_genshin']['enable']:
if config.config['cloud_games']['genshin']["enable"]:
log.info("正在进行云原神签到")
if config.config['cloud_genshin']['token'] == "":
if config.config['cloud_games']['genshin']['token'] == "":
log.info("token为空,跳过任务")
else:
cloud_ys = cloud_genshin.cloud_ys(config.config['cloud_genshin']['token'])
data = cloud_ys.Sgin()
return_data += "\n\n云原神:\n"+data
cloud_ys = cloud_genshin.CloudGenshin()
data = cloud_ys.sign_account()
return_data += "\n\n" + data
return ret_code, return_data
elif config.config["account"]["cookie"] == "CookieError":
raise CookieError('Cookie expires')

View File

@ -7,7 +7,7 @@ mihoyobbs_Version = "2.35.2" # Slat和Version相互对应
# 米游社的客户端类型
mihoyobbs_Client_type = "2" # 1为ios 2为安卓
mihoyobbs_Client_type_web = "5" # 4为pc web 5为mobile web
#云原神版本
# 云原神版本
cloudgenshin_Version = "3.0.0"
# 米游社的分区列表
@ -78,7 +78,6 @@ headers = {
# 通用设置
bbs_Api = "https://bbs-api.mihoyo.com"
web_Api = "https://api-takumi.mihoyo.com"
Cloud_Ys_Api = "https://api-cloudgame.mihoyo.com"
account_Info_url = web_Api + "/binding/api/getUserGameRolesByCookie?game_biz="
# 米游社的API列表
@ -116,5 +115,5 @@ genshin_Is_signurl = web_Api + "/event/bbs_sign_reward/info?act_id={}&region={}&
genshin_Signurl = web_Api + "/event/bbs_sign_reward/sign"
# 云原神相关api
Cloud_Ys_Sgin = Cloud_Ys_Api + "/hk4e_cg_cn/gamer/api/listNotifications?status=NotificationStatusUnread&type=NotificationTypePopup&is_sort=true"
Cloud_ys_Inquire = Cloud_Ys_Api + "/hk4e_cg_cn/wallet/wallet/get"
cloud_genshin_Api = "https://api-cloudgame.mihoyo.com"
cloud_genshin_Inquire = cloud_genshin_Api + "/hk4e_cg_cn/wallet/wallet/get"