From 25cc35461c206ac568642400c96ceea4a296da23 Mon Sep 17 00:00:00 2001 From: Womsxd <45663319+Womsxd@users.noreply.github.com> Date: Sat, 23 Apr 2022 09:35:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=87=8D=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 41 +++++++++++++++++++++++------------------ mihoyobbs.py | 44 ++++++++++++++++++++++++++------------------ 2 files changed, 49 insertions(+), 36 deletions(-) diff --git a/main.py b/main.py index 68d2dbc..0a4506e 100644 --- a/main.py +++ b/main.py @@ -13,7 +13,7 @@ from error import CookieError def main(): # 初始化,加载配置 - return_data = "\n米游社:" + return_data = "\n米游社: " config.load_config() if config.enable_Config: # 检测参数是否齐全,如果缺少就进行登入操作 @@ -36,26 +36,31 @@ def main(): setting.mihoyobbs_List_Use.append(i) # 米游社签到 if config.mihoyobbs["bbs_Global"]: - bbs = mihoyobbs.mihoyobbs() + bbs = mihoyobbs.Mihoyobbs() if bbs.Task_do["bbs_Sign"] and bbs.Task_do["bbs_Read_posts"] and bbs.Task_do["bbs_Like_posts"] and \ bbs.Task_do["bbs_Share"]: - return_data += "\n" + f"今天已经全部完成了!\n"\ - f"一共获得{mihoyobbs.Today_have_getcoins}个米游币\n目前有{mihoyobbs.Have_coins}个米游币" - log.info(f"今天已经全部完成了!一共获得{mihoyobbs.Today_have_getcoins}个米游币,目前有{mihoyobbs.Have_coins}个米游币") + return_data += "\n" + f"今天已经全部完成了!\n" \ + f"一共获得{mihoyobbs.today_have_get_coins}个米游币\n目前有{mihoyobbs.Have_coins}个米游币" + log.info(f"今天已经全部完成了!一共获得{mihoyobbs.today_have_get_coins}个米游币,目前有{mihoyobbs.Have_coins}个米游币") else: - if config.mihoyobbs["bbs_Signin"]: - bbs.signing() - if config.mihoyobbs["bbs_Read_posts"]: - bbs.read_posts() - if config.mihoyobbs["bbs_Like_posts"]: - bbs.Likeposts() - if config.mihoyobbs["bbs_Share"]: - bbs.share_post() - bbs.Get_taskslist() - return_data += "\n" + f"今天已经获得{mihoyobbs.Today_have_getcoins}个米游币\n"\ - f"还能获得{mihoyobbs.Today_getcoins}个米游币\n目前有{mihoyobbs.Have_coins}个米游币" - log.info(f"今天已经获得{mihoyobbs.Today_have_getcoins}个米游币," - f"还能获得{mihoyobbs.Today_getcoins}个米游币,目前有{mihoyobbs.Have_coins}个米游币") + i = 0 + while mihoyobbs.today_get_coins != 0 and i < 3: + if i > 0: + bbs.refresh_list() + if config.mihoyobbs["bbs_Signin"]: + bbs.signing() + if config.mihoyobbs["bbs_Read_posts"]: + bbs.read_posts() + if config.mihoyobbs["bbs_Like_posts"]: + bbs.like_posts() + if config.mihoyobbs["bbs_Share"]: + bbs.share_post() + bbs.get_tasks_list() + i += 1 + return_data += "\n" + f"今天已经获得{mihoyobbs.today_have_get_coins}个米游币\n" \ + f"还能获得{mihoyobbs.today_get_coins}个米游币\n目前有{mihoyobbs.Have_coins}个米游币" + log.info(f"今天已经获得{mihoyobbs.today_have_get_coins}个米游币," + f"还能获得{mihoyobbs.today_get_coins}个米游币,目前有{mihoyobbs.Have_coins}个米游币") time.sleep(random.randint(2, 8)) else: return_data += "\n" + "米游社功能未启用!" diff --git a/mihoyobbs.py b/mihoyobbs.py index bc2205b..8e8d38b 100644 --- a/mihoyobbs.py +++ b/mihoyobbs.py @@ -7,13 +7,12 @@ from request import http from loghelper import log from error import CookieError - -Today_getcoins = 0 -Today_have_getcoins = 0 # 这个变量以后可能会用上,先留着了 +today_get_coins = 0 +today_have_get_coins = 0 # 这个变量以后可能会用上,先留着了 Have_coins = 0 -class mihoyobbs: +class Mihoyobbs: def __init__(self): self.headers = { "DS": tools.get_ds(web=False, web_old=False), @@ -37,17 +36,20 @@ class mihoyobbs: "bbs_Like_posts_num": 5, "bbs_Share": False } - self.Get_taskslist() + self.get_tasks_list() # 如果这三个任务都做了就没必要获取帖子了 if self.Task_do["bbs_Read_posts"] and self.Task_do["bbs_Like_posts"] and self.Task_do["bbs_Share"]: pass else: self.postsList = self.get_list() + def refresh_list(self) -> None: + self.postsList = self.get_list() + # 获取任务列表,用来判断做了哪些任务 - def Get_taskslist(self): - global Today_getcoins - global Today_have_getcoins + def get_tasks_list(self): + global today_get_coins + global today_have_get_coins global Have_coins log.info("正在获取任务列表") req = http.get(url=setting.bbs_Tasks_list, headers=self.headers) @@ -57,11 +59,11 @@ class mihoyobbs: config.clear_cookies() raise CookieError('Cookie expires') else: - Today_getcoins = data["data"]["can_get_points"] - Today_have_getcoins = data["data"]["already_received_points"] + today_get_coins = data["data"]["can_get_points"] + today_have_get_coins = data["data"]["already_received_points"] Have_coins = data["data"]["total_points"] # 如果当日可获取米游币数量为0直接判断全部任务都完成了 - if Today_getcoins == 0: + if today_get_coins == 0: self.Task_do["bbs_Sign"] = True self.Task_do["bbs_Read_posts"] = True self.Task_do["bbs_Like_posts"] = True @@ -69,10 +71,10 @@ class mihoyobbs: else: # 如果第0个大于或等于62则直接判定任务没做 if data["data"]["states"][0]["mission_id"] >= 62: - log.info(f"新的一天,今天可以获得{Today_getcoins}个米游币") + log.info(f"新的一天,今天可以获得{today_get_coins}个米游币") pass else: - log.info(f"似乎还有任务没完成,今天还能获得{Today_getcoins}") + log.info(f"似乎还有任务没完成,今天还能获得{today_get_coins}") for i in data["data"]["states"]: # 58是讨论区签到 if i["mission_id"] == 58: @@ -101,10 +103,16 @@ class mihoyobbs: def get_list(self) -> list: temp_list = [] log.info("正在获取帖子列表......") - req = http.get(url=setting.bbs_List_url.format(setting.mihoyobbs_List_Use[0]["forumId"]), headers=self.headers) - data = req.json() + req = http.get(url=setting.bbs_List_url.format(setting.mihoyobbs_List_Use[0]["forumId"]), + headers=self.headers) + data = req.json()["data"]["list"] for n in range(5): - temp_list.append([data["data"]["list"][n]["post"]["post_id"], data["data"]["list"][n]["post"]["subject"]]) + r_l = random.choice(data) + while r_l["post"]["subject"] in str(temp_list): + r_l = random.choice(data) + temp_list.append([r_l["post"]["post_id"], r_l["post"]["subject"]]) + # temp_list.append([data["data"]["list"][n]["post"]["post_id"], data["data"]["list"][n]["post"]["subject"]]) + log.info("已获取{}个帖子".format(len(temp_list))) return temp_list @@ -139,7 +147,7 @@ class mihoyobbs: time.sleep(random.randint(2, 8)) # 点赞 - def Likeposts(self): + def like_posts(self): if self.Task_do["bbs_Like_posts"]: log.info("点赞任务已经完成过了~") else: @@ -175,6 +183,6 @@ class mihoyobbs: log.info("分享任务执行成功......") break else: - log.debug(f"分享任务执行失败,正在执行第{i+2}次,共3次") + log.debug(f"分享任务执行失败,正在执行第{i + 2}次,共3次") time.sleep(random.randint(2, 8)) time.sleep(random.randint(2, 8))