From f455a56ecd341201c0467fa09a4a10becf05e3a7 Mon Sep 17 00:00:00 2001 From: Womsxd <45663319+Womsxd@users.noreply.github.com> Date: Thu, 28 Apr 2022 13:50:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=A7=8B=E4=BB=A5v5=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD(=E6=9C=AA=E6=AD=A3=E5=BC=8F=E5=90=AF=E7=94=A8v5?= =?UTF-8?q?=E7=89=88=E6=9C=AC)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- account.py | 4 +-- config.py | 86 +++++++++++++++++++--------------------------------- genshin.py | 4 +-- honkai2.py | 2 +- honkai3rd.py | 2 +- login.py | 16 +++++----- main.py | 26 ++++++++-------- mihoyobbs.py | 4 +-- tools.py | 2 +- 9 files changed, 62 insertions(+), 84 deletions(-) diff --git a/account.py b/account.py index 7d6d031..078c663 100644 --- a/account.py +++ b/account.py @@ -18,12 +18,12 @@ def stop_module(game_id: str) -> None: # 崩坏2功能敬请期待 pass elif game_id == "bh3_cn": - config.honkai3rd_Auto_sign = False + config.config["games"]["cn"]["honkai3rd"] = False elif game_id == "nxx_cn": # 未定好像没米游社签到 pass elif game_id == "hk4e_cn": - config.genshin_Auto_sign = False + config.config["games"]["cn"]["genshin"] = False else: raise NameError config.save_config() diff --git a/config.py b/config.py index 6a8bc51..7048222 100644 --- a/config.py +++ b/config.py @@ -5,69 +5,47 @@ from loghelper import log # 这个字段现在还没找好塞什么地方好,就先塞config这里了 serverless = False -# 是否启用config -enable = True -# 这里的内容会自动获取 -login_ticket = "" -stuid = "" -stoken = "" -# 这里是米游社的cookie -cookies = "" -# 这个dist里面的内容和米游社有关 -mihoyobbs = { - # 全局开关,关闭之后下面的都不执行 - "bbs_Global": True, - # 讨论区签到 - "bbs_Signin": True, - # 多个讨论区签到 - "bbs_Signin_multi": True, - # 指定签到讨论区 - # 1是崩坏3 2是原神 3是崩坏2 4是未定事件簿 5是大别墅 - # 可以通过设置讨论区的id位置来设置主讨论区,[5,1]就是大别墅为主社区 - # 看帖子 点赞 分享帖子都是使用主社区获取到的列表 - "bbs_Signin_multi_list": [], - # 浏览3个帖子 - "bbs_Read_posts": True, - # 完成5次点赞 - "bbs_Like_posts": True, - # 完成后取消点赞 - "bbs_Unlike": True, - # 分享帖子 - "bbs_Share": True, -} -# 原神自动签到 -genshin_Auto_sign = True -# 崩坏3自动签到 -honkai3rd_Auto_sign = True +v5_config = '{"enable":false,"version":5,"account":{"cookie":"","login_ticket":"","stuid":"","stoken":""},"mihoyobbs":{' \ + '"enable":true,"checkin":true,"checkin_multi":true,"checkin_multi_list":[2,5],"read_posts":true,' \ + '"like_posts":true,"un_like":true,"share_post":true},"games":{"cn":{"enable":true,"hokai2":{' \ + '"auto_checkin":false,"black_list":[]},"honkai3rd":{"auto_checkin":false,"black_list":[]},' \ + '"tears_of_themis":{"auto_checkin":false,"black_list":[]},"genshin":{"auto_checkin":false,"black_list":[' \ + ']}},"os":{"enable":false,"cookie":"","genshin":{"auto_checkin":false,"black_list":[]}}}} ' +config = json.loads(v5_config) path = os.path.dirname(os.path.realpath(__file__)) + "/config" config_Path = f"{path}/config.json" def load_v4(data: dict): - global enable - global login_ticket - global stuid - global stoken - global cookies - global mihoyobbs - global genshin_Auto_sign - global honkai3rd_Auto_sign - enable = data["enable_Config"] - login_ticket = data["mihoyobbs_Login_ticket"] - stuid = data["mihoyobbs_Stuid"] - stoken = data["mihoyobbs_Stoken"] - cookies = data["mihoyobbs_Cookies"] - mihoyobbs = data["mihoyobbs"] - genshin_Auto_sign = data["genshin_Auto_sign"] - honkai3rd_Auto_sign = data["honkai3rd_Auto_sign"] + global config + # 配置开关 + config["enable"] = data["enable_Config"] + # 账号 cookie + config["account"]["login_ticket"] = data["mihoyobbs_Login_ticket"] + config["account"]["stuid"] = data["mihoyobbs_Stuid"] + config["account"]["stoken"] = data["mihoyobbs_Stoken"] + config["account"]["cookie"] = data["mihoyobbs_Cookies"] + # bbs 相关设置(自己之前造的孽) + config["mihoyobbs"]["enable"] = data["mihoyobbs"]["bbs_Global"] + config["mihoyobbs"]["checkin"] = data["mihoyobbs"]["bbs_Signin"] + config["mihoyobbs"]["checkin_multi"] = data["mihoyobbs"]["bbs_Signin_multi"] + config["mihoyobbs"]["checkin_multi_list"] = data["mihoyobbs"]["bbs_Signin_multi_list"] + config["mihoyobbs"]["read_post"] = data["mihoyobbs"]["bbs_Read_posts"] + config["mihoyobbs"]["like_post"] = data["mihoyobbs"]["bbs_Like_posts"] + config["mihoyobbs"]["un_like"] = data["mihoyobbs"]["bbs_Unlike"] + config["mihoyobbs"]["share_post"] = data["mihoyobbs"]["bbs_Share"] + # 游戏相关设置 v4只支持原神和崩坏3,所以其他选项默认关闭 + config["games"]["cn"]["genshin"] = data["genshin_Auto_sign"] + config["games"]["cn"]["honkai3rd"] = data["honkai3rd_Auto_sign"] def load_config(): + global config with open(config_Path, "r") as f: data = json.load(f) if data.get('version') == 5: - pass + config = data else: load_v4(data) f.close() @@ -81,9 +59,9 @@ def save_config(): return None with open(config_Path, "r+") as f: data = json.load(f) - data["mihoyobbs_Login_ticket"] = login_ticket - data["mihoyobbs_Stuid"] = stuid - data["mihoyobbs_Stoken"] = stoken + data["mihoyobbs_Login_ticket"] = config["account"]["login_ticket"] + data["mihoyobbs_Stuid"] = config["account"]["stuid"] + data["mihoyobbs_Stoken"] = config["account"]["stoken"] temp_text = json.dumps(data, sort_keys=False, indent=4, separators=(', ', ': ')) try: f.seek(0) diff --git a/genshin.py b/genshin.py index d6bc179..697c284 100644 --- a/genshin.py +++ b/genshin.py @@ -24,7 +24,7 @@ class Genshin: 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,en-US;q=0.8', 'X-Requested-With': 'com.mihoyo.hyperion', - "Cookie": config.cookies, + "Cookie": config.config["account"]["cookie"], 'x-rpc-device_id': tools.get_device_id() } self.acc_List = get_account_list("hk4e_cn", self.headers) @@ -48,7 +48,7 @@ class Genshin: if data["retcode"] != 0: log.warning("获取账号签到信息失败!") print(req.text) - config.genshin_Auto_sign = False + config.config["games"]["cn"]["genshin"] = False config.save_config() raise CookieError("BBS Cookie Errror") return data["data"] diff --git a/honkai2.py b/honkai2.py index 00ffbcf..3cdc372 100644 --- a/honkai2.py +++ b/honkai2.py @@ -25,7 +25,7 @@ class Honkai2: 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,en-US;q=0.8', 'X-Requested-With': 'com.mihoyo.hyperion', - "Cookie": config.cookies, + "Cookie": config.config["account"]["cookie"], 'x-rpc-device_id': tools.get_device_id() } self.acc_List = get_account_list("bh2_cn", self.headers) diff --git a/honkai3rd.py b/honkai3rd.py index f56ac1a..a71cc24 100644 --- a/honkai3rd.py +++ b/honkai3rd.py @@ -24,7 +24,7 @@ class Honkai3rd: 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,en-US;q=0.8', 'X-Requested-With': 'com.mihoyo.hyperion', - "Cookie": config.cookies, + "Cookie": config.config["account"]["cookie"], 'x-rpc-device_id': tools.get_device_id() } self.acc_List = get_account_list("bh3_cn", self.headers) diff --git a/login.py b/login.py index 5b5667e..fb1e2f5 100644 --- a/login.py +++ b/login.py @@ -6,24 +6,24 @@ from error import CookieError def login(): - if config.cookies == '': + if config.config["account"]["cookie"] == '': log.error("请填入Cookies!") config.clear_cookies() raise CookieError('No cookie') # 判断Cookie里面是否有login_ticket 没有的话直接退了 - if "login_ticket" in config.cookies: - temp_cookies = config.cookies.split(";") + if "login_ticket" in config.config["account"]["cookie"]: + temp_cookies = config.config["account"]["cookie"].split(";") for i in temp_cookies: if i.split("=")[0] == " login_ticket": - config.login_ticket = i.split("=")[1] + config.config["account"]["login_ticket"] = i.split("=")[1] break # 这里获取Stuid,但是实际是可以直接拿cookie里面的Uid - data = http.get(url=setting.bbs_Cookie_url.format(config.login_ticket)).json() + data = http.get(url=setting.bbs_Cookie_url.format(config.config["account"]["login_ticket"])).json() if "成功" in data["data"]["msg"]: - config.stuid = str(data["data"]["cookie_info"]["account_id"]) + config.config["account"]["stuid"] = str(data["data"]["cookie_info"]["account_id"]) data = http.get(url=setting.bbs_Cookie_url2.format( - config.login_ticket, config.stuid)).json() - config.stoken = data["data"]["list"][0]["token"] + config.config["account"]["login_ticket"], config.config["account"]["stuid"])).json() + config.config["account"]["stoken"] = data["data"]["list"][0]["token"] log.info("登录成功!") log.info("正在保存Config!") config.save_config() diff --git a/main.py b/main.py index c05bcc5..d616b67 100644 --- a/main.py +++ b/main.py @@ -15,17 +15,17 @@ def main(): # 初始化,加载配置 return_data = "\n米游社: " config.load_config() - if config.enable: + if config.config["enable"]: # 检测参数是否齐全,如果缺少就进行登入操作 - if config.login_ticket == "" or config.stuid == "" or config.stoken == "": + if config.config["account"]["login_ticket"] == "" or config.config["account"]["stuid"] == "" or config.config["account"]["stoken"] == "": # 登入,如果没开启bbs全局没打开就无需进行登入操作 - if config.mihoyobbs["bbs_Global"]: + if config.config["mihoyobbs"]["enable"] : login.login() time.sleep(random.randint(2, 8)) # 获取要使用的BBS列表,#判断是否开启bbs_Signin_multi - if config.mihoyobbs["bbs_Signin_multi"]: + if config.config["mihoyobbs"]["checkin_multi"] : # 用这里的方案可以实现当让id在第一个的时候为主社区 - for i in config.mihoyobbs["bbs_Signin_multi_list"]: + for i in config.config["mihoyobbs"]["checkin_multi_list"] : for i2 in setting.mihoyobbs_List: if i == int(i2["id"]): setting.mihoyobbs_List_Use.append(i2) @@ -35,7 +35,7 @@ def main(): if int(i["id"]) == 5: setting.mihoyobbs_List_Use.append(i) # 米游社签到 - if config.mihoyobbs["bbs_Global"]: + if config.config["mihoyobbs"]["enable"] : 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"]: @@ -47,13 +47,13 @@ def main(): while mihoyobbs.today_get_coins != 0 and i < 3: if i > 0: bbs.refresh_list() - if config.mihoyobbs["bbs_Signin"]: + if config.config["mihoyobbs"]["checkin"] : bbs.signing() - if config.mihoyobbs["bbs_Read_posts"]: + if config.config["mihoyobbs"]["read_post"] : bbs.read_posts() - if config.mihoyobbs["bbs_Like_posts"]: + if config.config["mihoyobbs"]["like_post"] : bbs.like_posts() - if config.mihoyobbs["bbs_Share"]: + if config.config["mihoyobbs"]["share_post"] : bbs.share_post() bbs.get_tasks_list() i += 1 @@ -66,7 +66,7 @@ def main(): return_data += "\n" + "米游社功能未启用!" log.info("米游社功能未启用!") # 原神签到 - if config.genshin_Auto_sign: + if config.config["games"]["cn"]["genshin"]: log.info("正在进行原神签到") genshin_help = genshin.Genshin() return_data += "\n\n" + genshin_help.sign_account() @@ -74,14 +74,14 @@ def main(): else: log.info("原神签到功能未启用!") # 崩坏3签到 - if config.honkai3rd_Auto_sign: + if config.config["games"]["cn"]["honkai3rd"]: log.info("正在进行崩坏3签到") honkai3rd_help = honkai3rd.Honkai3rd() return_data += "\n\n" + honkai3rd_help.sign_account() else: log.info("崩坏3签到功能未启用!") return 0, return_data - elif config.cookies == "CookieError": + elif config.config["account"]["cookie"] == "CookieError": raise CookieError('Cookie expires') else: log.warning("Config未启用!") diff --git a/mihoyobbs.py b/mihoyobbs.py index a6571d8..51b69ff 100644 --- a/mihoyobbs.py +++ b/mihoyobbs.py @@ -16,7 +16,7 @@ class Mihoyobbs: def __init__(self): self.headers = { "DS": tools.get_ds(web=False, web_old=False), - "cookie": f"stuid={config.stuid};stoken={config.stoken}", + "cookie": f'stuid={config.config["account"]["stuid"]};stoken={config.config["account"]["stoken"]}', "x-rpc-client_type": setting.mihoyobbs_Client_type, "x-rpc-app_version": setting.mihoyobbs_Version, "x-rpc-sys_version": "6.0.1", @@ -159,7 +159,7 @@ class Mihoyobbs: if data["message"] == "OK": log.debug("点赞:{} 成功".format(self.postsList[i][1])) # 判断取消点赞是否打开 - if config.mihoyobbs["bbs_Unlike"]: + if config.config["mihoyobbs"]["un_like"] : time.sleep(random.randint(2, 8)) req = http.post(url=setting.bbs_Like_url, headers=self.headers, json={"post_id": self.postsList[i][0], "is_cancel": True}) diff --git a/tools.py b/tools.py index 34f28c8..4709089 100644 --- a/tools.py +++ b/tools.py @@ -41,7 +41,7 @@ def get_ds(web: bool, web_old: bool) -> str: # 生成一个device id def get_device_id() -> str: - return str(uuid.uuid3(uuid.NAMESPACE_URL, config.cookies)).replace( + return str(uuid.uuid3(uuid.NAMESPACE_URL, config.config["account"]["cookie"])).replace( '-', '').upper()