From 863dd718d0ba3f2851448d36fb9a814e73345be4 Mon Sep 17 00:00:00 2001 From: Womsxd <45663319+Womsxd@users.noreply.github.com> Date: Sun, 24 Apr 2022 13:06:26 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.py | 9 ++++----- docker.py | 1 + genshin.py | 3 ++- login.py | 11 ++++++----- main_multi.py | 5 +++-- request.py | 32 +++----------------------------- setting.py | 4 ++-- tools.py | 6 +++--- 8 files changed, 24 insertions(+), 47 deletions(-) diff --git a/config.py b/config.py index c9ab67d..2ca9f3a 100644 --- a/config.py +++ b/config.py @@ -72,8 +72,8 @@ def save_config(): data["mihoyobbs_Stoken"] = mihoyobbs_Stoken f.seek(0) f.truncate() - temp_Text = json.dumps(data, sort_keys=False, indent=4, separators=(', ', ': ')) - f.write(temp_Text) + temp_text = json.dumps(data, sort_keys=False, indent=4, separators=(', ', ': ')) + f.write(temp_text) f.flush() f.close() log.info("Config保存完毕") @@ -89,9 +89,8 @@ def clear_cookies(): data["mihoyobbs_Cookies"] = "" f.seek(0) f.truncate() - temp_Text = json.dumps(data, sort_keys=False, indent=4, separators=(', ', ': ')) - f.write(temp_Text) + temp_text = json.dumps(data, sort_keys=False, indent=4, separators=(', ', ': ')) + f.write(temp_text) f.flush() f.close() log.info("Cookie删除完毕") - diff --git a/docker.py b/docker.py index 940a531..30d4b4c 100644 --- a/docker.py +++ b/docker.py @@ -8,6 +8,7 @@ from crontab import CronTab time_format = "%Y-%m-%d %H:%M:%S" + def stop_me(_signo, _stack): log.info("Docker container has stoped....") exit(-1) diff --git a/genshin.py b/genshin.py index dedce53..2092f88 100644 --- a/genshin.py +++ b/genshin.py @@ -74,7 +74,8 @@ class Genshin: json={'act_id': setting.genshin_Act_id, 'region': i[2], 'uid': i[1]}) data = req.json() if data["retcode"] == 0: - log.info(f"旅行者{i[0]}签到成功~\r\n今天获得的奖励是{tools.get_item(self.sign_Give[0 if sign_days == 0 else sign_days + 1])}") + log.info("旅行者{i[0]}签到成功~\r\n今天获得的奖励是" + f"{tools.get_item(self.sign_Give[0 if sign_days == 0 else sign_days + 1])}") sign_days += 1 elif data["retcode"] == -5003: log.info(f"旅行者{i[0]}今天已经签到过了~\r\n今天获得的奖励是{tools.get_item(self.sign_Give[sign_days])}") diff --git a/login.py b/login.py index 57034d4..4172e5c 100644 --- a/login.py +++ b/login.py @@ -1,6 +1,6 @@ import config -import request import setting +from request import http from loghelper import log from error import CookieError @@ -12,16 +12,17 @@ def login(): raise CookieError('No cookie') # 判断Cookie里面是否有login_ticket 没有的话直接退了 if "login_ticket" in config.mihoyobbs_Cookies: - temp_Cookies = config.mihoyobbs_Cookies.split(";") - for i in temp_Cookies: + temp_cookies = config.mihoyobbs_Cookies.split(";") + for i in temp_cookies: if i.split("=")[0] == " login_ticket": config.mihoyobbs_Login_ticket = i.split("=")[1] break # 这里获取Stuid,但是实际是可以直接拿cookie里面的Uid - data = request.get(url=setting.bbs_Cookie_url.format(config.mihoyobbs_Login_ticket)) + data = http.get(url=setting.bbs_Cookie_url.format(config.mihoyobbs_Login_ticket)).json() if "成功" in data["data"]["msg"]: config.mihoyobbs_Stuid = str(data["data"]["cookie_info"]["account_id"]) - data = request.get(url=setting.bbs_Cookie_url2.format(config.mihoyobbs_Login_ticket, config.mihoyobbs_Stuid)) + data = http.get(url=setting.bbs_Cookie_url2.format( + config.mihoyobbs_Login_ticket, config.mihoyobbs_Stuid)).json() config.mihoyobbs_Stoken = data["data"]["list"][0]["token"] log.info("登录成功!") log.info("正在保存Config!") diff --git a/main_multi.py b/main_multi.py index 6cbde62..cad7378 100644 --- a/main_multi.py +++ b/main_multi.py @@ -32,7 +32,7 @@ def main_multi(autorun: bool): log.info(f"已搜索到{len(config_list)}个配置文件,请确认是否无多余文件!\r\n{config_list}") try: input("请输入回车继续,需要重新搜索配置文件请Ctrl+C退出脚本") - except: + except KeyboardInterrupt: exit(0) results = {"ok": [], "close": [], "error": []} for i in iter(config_list): @@ -51,7 +51,8 @@ def main_multi(autorun: bool): log.info(f"{i}执行完毕") time.sleep(random.randint(3, 10)) print("") - push_message = f'脚本执行完毕,共执行{len(config_list)}个配置文件,成功{len(results["ok"])}个,没执行{len(results["close"])}个,失败{len(results["error"])}个'\ + push_message = f'脚本执行完毕,共执行{len(config_list)}个配置文件,成功{len(results["ok"])}个,' \ + f'没执行{len(results["close"])}个,失败{len(results["error"])}个' \ f'\r\n没执行的配置文件: {results["close"]}\r\n执行失败的配置文件: {results["error"]}' log.info(push_message) push.push(0, push_message) diff --git a/request.py b/request.py index 8b090a1..c8fdd1d 100644 --- a/request.py +++ b/request.py @@ -5,39 +5,13 @@ try: http = httpx.Client(timeout=10, transport=httpx.HTTPTransport(retries=5)) # 当openssl版本小于1.0.2的时候直接进行一个空请求让httpx报错 import tools + if tools.get_openssl_version() <= 102: httpx.get() -except: +except (TypeError, ModuleNotFoundError): import requests from requests.adapters import HTTPAdapter + http = requests.Session() http.mount('http://', HTTPAdapter(max_retries=5)) http.mount('https://', HTTPAdapter(max_retries=5)) - - -# 这里实际上应该加个"-> dict"但是考虑到请求可能失败的关系,所以直接不声明返回变量 -def get(url: str, **headers: dict): - try: - req = http.get(url, headers=headers) - return req.json() - except: - print("请求失败,网络错误!") - return "" - - -def post(url: str, data: dict, **headers: dict): - try: - req = http.post(url, data=data, headers=headers) - return req.json() - except: - print("请求失败,网络错误!") - return "" - - -def post_json(url: str, json, **headers: dict): - try: - req = http.post(url, json=json, headers=headers) - return req.json() - except: - print("请求失败,网络错误!") - return "" diff --git a/setting.py b/setting.py index 0017246..e065b8d 100644 --- a/setting.py +++ b/setting.py @@ -73,13 +73,13 @@ honkai2_Sign_url = web_Api + "/event/luna/sign" # 崩坏3自动签到相关的设置 honkai3rd_Act_id = "ea20211026151532" -honkai3rd_Account_info_url = account_Info_url + "bh3_cn" # 废弃字段,之后可能会删除 +honkai3rd_Account_info_url = account_Info_url + "bh3_cn" # 废弃字段,之后可能会删除 honkai3rd_Is_signurl = web_Api + "/common/eutheniav2/index?act_id={}®ion={}&uid={}" honkai3rd_SignUrl = web_Api + "/common/eutheniav2/sign" # 原神自动签到相关的设置 genshin_Act_id = "e202009291139501" -genshin_Account_info_url = account_Info_url + "hk4e_cn" # 废弃字段,之后可能会删除 +genshin_Account_info_url = account_Info_url + "hk4e_cn" # 废弃字段,之后可能会删除 genshin_Signlisturl = web_Api + "/event/bbs_sign_reward/home?act_id={}" genshin_Is_signurl = web_Api + "/event/bbs_sign_reward/info?act_id={}®ion={}&uid={}" genshin_Signurl = web_Api + "/event/bbs_sign_reward/sign" diff --git a/tools.py b/tools.py index c8e5f03..5a42ca0 100644 --- a/tools.py +++ b/tools.py @@ -53,10 +53,10 @@ def get_item(raw_data: dict) -> str: # 获取明天早晨0点的时间戳 -def nextday() -> int: +def next_day() -> int: now_time = int(time.time()) - nextday_time = now_time - now_time % 86400 + time.timezone + 86400 - return nextday_time + next_day_time = now_time - now_time % 86400 + time.timezone + 86400 + return next_day_time # 获取Openssl版本