diff --git a/cloud_genshin.py b/cloud_genshin.py index e74afba..2643122 100644 --- a/cloud_genshin.py +++ b/cloud_genshin.py @@ -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 diff --git a/main.py b/main.py index 3dda549..eba661b 100644 --- a/main.py +++ b/main.py @@ -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') @@ -122,4 +122,4 @@ if __name__ == "__main__": message = "账号Cookie出错!" log.error("账号Cookie有问题!") push.push(status_code, message) -pass \ No newline at end of file +pass diff --git a/setting.py b/setting.py index b8ddc70..cdbebcc 100644 --- a/setting.py +++ b/setting.py @@ -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={}®ion={}& 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" \ No newline at end of file +cloud_genshin_Api = "https://api-cloudgame.mihoyo.com" +cloud_genshin_Inquire = cloud_genshin_Api + "/hk4e_cg_cn/wallet/wallet/get"