From e439cd9f5835027de338fd45dd23ecf7f53b0cde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wuyi=E6=97=A0=E7=96=91?= <444835641@qq.com> Date: Thu, 10 Mar 2022 23:50:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E5=BC=80=E5=A7=8B?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E7=B1=B3=E6=B8=B8=E5=B8=81=20&=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0Stokne=EF=BC=9B=E4=BF=AE=E5=A4=8D=EF=BC=9A=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + genshinuid.py | 28 ++++++++++++++++++++++------ mihoyo_libs/get_mihoyo_bbs_coin.py | 24 +++++++++--------------- 3 files changed, 32 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index aaee8a42..f48191ca 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,7 @@ if(ask==true){copy("添加stoken" + cookie);msg=cookie}else{msg='Cancel'} - [@AMEKENN](https://github.com/AMEKENN) - 米游社签到部分的代码指导 - [@lgc233](https://github.com/lgc2333) - 众多优秀PR贡献 - [@RemKeeper](https://github.com/RemKeeper) - 简易Cookies获取文档 +- [@珊瑚宫千花](https://space.bilibili.com/398528056) - 角色别名Json提供 - [@wudifeixue](https://github.com/wudifeixue) - PR贡献 & Bug报告 - [@ZhouYingSASA](https://github.com/ZhouYingSASA) - PR贡献 & Bug报告 diff --git a/genshinuid.py b/genshinuid.py index ebd9d567..91a945d2 100644 --- a/genshinuid.py +++ b/genshinuid.py @@ -15,7 +15,7 @@ from mihoyo_libs.get_mihoyo_bbs_data import * sv = Service('genshinuid') hoshino_bot = get_bot() -FILE_PATH = os.path.join(os.path.dirname(__file__), 'mys') +FILE_PATH = os.path.josin(os.path.join(os.path.dirname(__file__), 'mihoyo_libs'),'mihoyo_bbs') INDEX_PATH = os.path.join(FILE_PATH, 'index') Texture_PATH = os.path.join(FILE_PATH, 'texture2d') @@ -241,6 +241,25 @@ async def clean_cache(): async def draw_event(): await draw_event_pic() +@sv.on_fullmatch('开始获取米游币') +async def send_mihoyo_coin(bot: HoshinoBot, ev: CQEvent): + await bot.send(ev, "开始操作……", at_sender=True) + try: + qid = ev.sender["user_id"] + im_mes = await mihoyo_coin(int(qid)) + im = im_mes + except TypeError or AttributeError: + im = "没有找到绑定信息。" + logger.exception("获取米游币失败") + except Exception as e: + im = "发生错误 {},请检查后台输出。".format(e) + logger.exception("获取米游币失败") + finally: + try: + await bot.send(ev, im, at_sender=True) + except ActionFailed as e: + await bot.send(ev, "机器人发送消息失败:{}".format(e.info['wording'])) + logger.exception("发送签到信息失败") @sv.on_fullmatch('全部重签') async def _(bot: HoshinoBot, ev: CQEvent): @@ -347,12 +366,9 @@ async def setting(ctx): if '添加 ' in message: try: mes = message.replace('添加 ', '') - await deal_ck(mes, userid) + im = await deal_ck(mes, userid) await hoshino_bot.send_msg(self_id=sid, user_id=userid, group_id=gid, - message=f'添加Cookies成功!\nCookies属于个人重要信息,如果你是在不知情的情况下添加,' - f'请马上修改米游社账户密码,保护个人隐私!\n————\n' - f'如果需要【开启自动签到】和【开启推送】还需要使用命令“绑定uid”绑定你的uid。\n' - f'例如:绑定uid123456789。') + message=im) except ActionFailed as e: await hoshino_bot.send_msg(self_id=sid, user_id=userid, group_id=gid, message="机器人发送消息失败:{}".format(e)) diff --git a/mihoyo_libs/get_mihoyo_bbs_coin.py b/mihoyo_libs/get_mihoyo_bbs_coin.py index 86a668e7..e03ae0b0 100644 --- a/mihoyo_libs/get_mihoyo_bbs_coin.py +++ b/mihoyo_libs/get_mihoyo_bbs_coin.py @@ -1,4 +1,3 @@ -from sre_constants import SUCCESS import time import random import string @@ -7,11 +6,6 @@ from httpx import AsyncClient from get_data import old_version_get_ds_token,random_hex -Today_getcoins = 0 -Today_have_getcoins = 0 # 这个变量以后可能会用上,先留着了 -Have_coins = 0 - - # 米游社的API列表 bbs_Cookieurl = "https://webapi.account.mihoyo.com/Api/cookie_accountinfo_by_loginticket?login_ticket={}" bbs_Cookieurl2 = "https://api-takumi.mihoyo.com/auth/api/getMultiTokenByLoginTicket?login_ticket={}&token_types=3&uid={}" @@ -82,6 +76,9 @@ class mihoyobbs_coin: "bbs_Share": False } self.mihoyobbs_List_Use = [] + self.Today_getcoins = 0 + self.Today_have_getcoins = 0 # 这个变量以后可能会用上,先留着了 + self.Have_coins = 0 async def task_run(self): await self.Load_Mihoyobbs_List_Use() @@ -102,9 +99,6 @@ class mihoyobbs_coin: # 获取任务列表,用来判断做了哪些任务 async def Get_taskslist(self): - global Today_getcoins - global Today_have_getcoins - global Have_coins #log.info("正在获取任务列表") async with AsyncClient() as client: req = await client.get(url = bbs_Taskslist, headers = self.headers) @@ -113,11 +107,11 @@ class mihoyobbs_coin: return "你的Cookies已失效。" #log.error("获取任务列表失败,你的cookie可能已过期,请重新设置cookie。") else: - Today_getcoins = data["data"]["can_get_points"] - Today_have_getcoins = data["data"]["already_received_points"] - Have_coins = data["data"]["total_points"] + self.Today_getcoins = data["data"]["can_get_points"] + self.Today_have_getcoins = data["data"]["already_received_points"] + self.Have_coins = data["data"]["total_points"] # 如果当日可获取米游币数量为0直接判断全部任务都完成了 - if Today_getcoins == 0: + if self.Today_getcoins == 0: self.Task_do["bbs_Sign"] = True self.Task_do["bbs_Read_posts"] = True self.Task_do["bbs_Like_posts"] = True @@ -125,10 +119,10 @@ class mihoyobbs_coin: else: # 如果第0个大于或等于62则直接判定任务没做 if data["data"]["states"][0]["mission_id"] >= 62: - #log.info(f"新的一天,今天可以获得{Today_getcoins}个米游币") + #log.info(f"新的一天,今天可以获得{self.Today_getcoins}个米游币") pass else: - #log.info(f"似乎还有任务没完成,今天还能获得{Today_getcoins}") + #log.info(f"似乎还有任务没完成,今天还能获得{self.Today_getcoins}") for i in data["data"]["states"]: # 58是讨论区签到 if i["mission_id"] == 58: