From 583257c784b9b139ad6823bbdeff05e308262675 Mon Sep 17 00:00:00 2001 From: Womsxd <45663319+Womsxd@users.noreply.github.com> Date: Sun, 13 Jun 2021 10:33:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=97=B6=E4=BD=BF=E7=94=A8httpx?= =?UTF-8?q?=E5=92=8Crequests=EF=BC=8C=E9=98=B2=E6=AD=A2openssl=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=A4=AA=E4=BD=8E=E6=97=A0=E6=B3=95=E4=BD=BF=E7=94=A8?= =?UTF-8?q?httpx=E5=AF=BC=E8=87=B4=E5=B4=A9=E6=BA=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- genshin.py | 10 +++++----- honkai3rd.py | 8 ++++---- main_multi.py | 10 +++++++--- mihoyobbs.py | 16 ++++++++-------- request.py | 14 ++++++++++---- requirements.txt | 3 ++- 6 files changed, 36 insertions(+), 25 deletions(-) diff --git a/genshin.py b/genshin.py index 4f0c959..32065bb 100644 --- a/genshin.py +++ b/genshin.py @@ -1,9 +1,9 @@ import time -import httpx import tools import config import random import setting +from request import http class genshin: def __init__(self) -> None: @@ -29,7 +29,7 @@ class genshin: def Getacc_list(self) -> list: tools.log.info("正在获取米哈游账号绑定原神账号列表...") temp_List = [] - req = httpx.get(setting.genshin_Account_info_url, headers=self.headers) + req = http.get(setting.genshin_Account_info_url, headers=self.headers) data = req.json() if data["retcode"] != 0: tools.log.warn("获取账号列表失败!") @@ -42,7 +42,7 @@ class genshin: #获取已经签到奖励列表 def Get_singgive(self) -> list: tools.log.info("正在获取签到奖励列表...") - req = httpx.get(setting.genshin_Singlisturl.format(setting.genshin_Act_id),headers=self.headers) + req = http.get(setting.genshin_Singlisturl.format(setting.genshin_Act_id),headers=self.headers) data = req.json() if data["retcode"] != 0: tools.log.warn("获取签到奖励列表失败") @@ -52,7 +52,7 @@ class genshin: #判断签到 def Is_sing(self, region:str, uid:str): - req = httpx.get(setting.genshin_Is_singurl.format(setting.genshin_Act_id, region, uid), headers=self.headers) + req = http.get(setting.genshin_Is_singurl.format(setting.genshin_Act_id, region, uid), headers=self.headers) data = req.json() if data["retcode"] != 0: tools.log.warn("获取账号签到信息失败!") @@ -75,7 +75,7 @@ class genshin: tools.log.info(f"旅行者{i[0]}今天已经签到过了~\r\n今天获得的奖励是{tools.Get_item(self.sing_Give[sing_Days])}") else: time.sleep(random.randint(2, 6)) - req = httpx.post(url=setting.genshin_Singurl, headers=self.headers, + req = http.post(url=setting.genshin_Singurl, headers=self.headers, json={'act_id': setting.genshin_Act_id, 'region': i[2], 'uid': i[1]}) data = req.json() if data["retcode"] == 0: diff --git a/honkai3rd.py b/honkai3rd.py index 1e60c64..946070d 100644 --- a/honkai3rd.py +++ b/honkai3rd.py @@ -1,9 +1,9 @@ import time -import httpx import tools import config import random import setting +from request import http class honkai3rd: def __init__(self) -> None: @@ -27,7 +27,7 @@ class honkai3rd: def Getacc_list(self) -> list: tools.log.info("正在获取米哈游账号绑定的崩坏3账号列表...") temp_List = [] - req = httpx.get(setting.honkai3rd_Account_info_url, headers=self.headers) + req = http.get(setting.honkai3rd_Account_info_url, headers=self.headers) data = req.json() if data["retcode"] != 0: tools.log.warn("获取账号列表失败!") @@ -50,7 +50,7 @@ class honkai3rd: #判断签到 def Is_sing(self, region:str, uid:str, nickname:str): - req = httpx.get(setting.honkai3rd_Is_singurl.format(setting.honkai3rd_Act_id, region, uid), headers=self.headers) + req = http.get(setting.honkai3rd_Is_singurl.format(setting.honkai3rd_Act_id, region, uid), headers=self.headers) data = req.json() if data["retcode"] != 0: tools.log.warn("获取账号签到信息失败!") @@ -72,7 +72,7 @@ class honkai3rd: is_data = self.Is_sing(region = i[2], uid = i[1], nickname = i[0]) if is_data == True: time.sleep(random.randint(2, 6)) - req = httpx.post(url=setting.honkai3rd_SingUrl, headers=self.headers, + req = http.post(url=setting.honkai3rd_SingUrl, headers=self.headers, json={'act_id': setting.honkai3rd_Act_id, 'region': i[2], 'uid': i[1]}) data = req.json() if data["retcode"] == 0: diff --git a/main_multi.py b/main_multi.py index 9a598bf..9490514 100644 --- a/main_multi.py +++ b/main_multi.py @@ -15,14 +15,14 @@ def Fund_config() ->list: file_Name.append(files) return (file_Name) -def main_multi(): +def main_multi(autorun:bool): tools.log.info("AutoMihoyoBBS Multi User mode") tools.log.info("正在搜索配置文件!") config_List = Fund_config() if len(config_List) == 0: tools.log.warn("未检测到配置文件,请确认config文件夹存在.json后缀名的配置文件!") exit() - if len(sys.argv) >= 2 and sys.argv[1] == "autorun": + if autorun: tools.log.info(f"已搜索到{len(config_List)}个配置文件,正在开始执行!") else: tools.log.info(f"已搜索到{len(config_List)}个配置文件,请确认是否无多余文件!\r\n{config_List}") @@ -40,6 +40,10 @@ def main_multi(): time.sleep(random.randint(2, 6)) if __name__ == "__main__": - main_multi() + if len(sys.argv) >= 2 and sys.argv[1] == "autorun": + autorun = True + else: + autorun = False + main_multi(autorun) sys.exit(0) pass \ No newline at end of file diff --git a/mihoyobbs.py b/mihoyobbs.py index b276204..1febd2b 100644 --- a/mihoyobbs.py +++ b/mihoyobbs.py @@ -1,9 +1,9 @@ import time -import httpx import tools import config import random import setting +from request import http Today_getcoins = 0 Today_have_getcoins = 0 #这个变量以后可能会用上,先留着了 @@ -44,7 +44,7 @@ class mihoyobbs: global Today_have_getcoins global Have_coins tools.log.info("正在获取任务列表") - req = httpx.get(url=setting.bbs_Taskslist, headers=self.headers) + req = http.get(url=setting.bbs_Taskslist, headers=self.headers) data = req.json() if "err" in data["message"]: tools.log.info("获取任务列表失败,你的cookie可能已过期,请重新设置cookie。") @@ -92,7 +92,7 @@ class mihoyobbs: temp_List = [] tools.log.info("正在获取帖子列表......") for i in setting.mihoyobbs_List_Use: - req = httpx.get(url=setting.bbs_Listurl.format(i["forumId"]), headers=self.headers) + req = http.get(url=setting.bbs_Listurl.format(i["forumId"]), headers=self.headers) data = req.json() for n in range(6): temp_List.append([data["data"]["list"][n]["post"]["post_id"], data["data"]["list"][n]["post"]["subject"]]) @@ -106,7 +106,7 @@ class mihoyobbs: #if self.Task_do["bbs_Sign"] == False: tools.log.info("正在签到......") for i in setting.mihoyobbs_List_Use: - req = httpx.post(url=setting.bbs_Signurl.format(i["id"]), data="" ,headers=self.headers) + req = http.post(url=setting.bbs_Signurl.format(i["id"]), data="" ,headers=self.headers) data = req.json() if "err" not in data["message"]: tools.log.info(str(i["name"]+ data["message"])) @@ -121,7 +121,7 @@ class mihoyobbs: if self.Task_do["bbs_Read_posts"] == False: tools.log.info("正在看帖......") for i in range(3): - req = httpx.get(url=setting.bbs_Detailurl.format(self.postsList[i][0]), headers=self.headers) + req = http.get(url=setting.bbs_Detailurl.format(self.postsList[i][0]), headers=self.headers) data = req.json() if data["message"] == "OK": tools.log.info("看帖:{} 成功".format(self.postsList[i][1])) @@ -134,7 +134,7 @@ class mihoyobbs: if self.Task_do["bbs_Like_posts"] == False: tools.log.info("正在点赞......") for i in range(5): - req = httpx.post(url=setting.bbs_Likeurl, headers=self.headers, + req = http.post(url=setting.bbs_Likeurl, headers=self.headers, json={"post_id": self.postsList[i][0], "is_cancel": False}) data = req.json() if data["message"] == "OK": @@ -142,7 +142,7 @@ class mihoyobbs: #判断取消点赞是否打开 if config.mihoyobbs["bbs_Unlike"] == True: time.sleep(random.randint(2, 6)) - req = httpx.post(url=setting.bbs_Likeurl, headers=self.headers, + req = http.post(url=setting.bbs_Likeurl, headers=self.headers, json={"post_id": self.postsList[i][0], "is_cancel": True}) data = req.json() if data["message"] == "OK": @@ -155,7 +155,7 @@ class mihoyobbs: def Share(self): if self.Task_do["bbs_Share"] == False: tools.log.info("正在分享......") - req = httpx.get(url=setting.bbs_Shareurl.format(self.postsList[0][0]), headers=self.headers) + req = http.get(url=setting.bbs_Shareurl.format(self.postsList[0][0]), headers=self.headers) data = req.json() if data["message"] == "OK": tools.log.info("分享:{} 成功".format(self.postsList[0][1])) diff --git a/request.py b/request.py index 8e20ea7..e61d705 100644 --- a/request.py +++ b/request.py @@ -1,9 +1,15 @@ -import httpx +try: + #优先使用httpx,在httpx无法使用的环境下使用requests + import httpx + http = httpx +except ImportError: + import requests + http = requests #这里实际上应该加个"-> dict"但是考虑到请求可能失败的关系,所以直接不声明返回变量 def get(url:str, **headers:dict): try: - req = httpx.get(url, headers=headers) + req = http.get(url, headers=headers) return req.json() except: print("请求失败,网络错误!") @@ -11,7 +17,7 @@ def get(url:str, **headers:dict): def post(url:str, data:dict, **headers:dict): try: - req = httpx.post(url, data=data, headers=headers) + req = http.post(url, data=data, headers=headers) return req.json() except: print("请求失败,网络错误!") @@ -19,7 +25,7 @@ def post(url:str, data:dict, **headers:dict): def post_json(url:str, json, **headers:dict): try: - req = httpx.post(url, json=json, headers=headers) + req = http.post(url, json=json, headers=headers) return req.json() except: print("请求失败,网络错误!") diff --git a/requirements.txt b/requirements.txt index 6d5b4f2..85ba4f1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1,2 @@ -httpx==0.18.1 \ No newline at end of file +httpx==0.18.1 +requests==2.25.1 \ No newline at end of file