新增:开始获取米游币 & 添加Stokne;修复:活动列表

This commit is contained in:
Wuyi无疑 2022-03-10 23:50:35 +08:00
parent 7e63649a55
commit e439cd9f58
3 changed files with 32 additions and 21 deletions

View File

@ -70,6 +70,7 @@ if(ask==true){copy("添加stoken" + cookie);msg=cookie}else{msg='Cancel'}
- [@AMEKENN](https://github.com/AMEKENN) - 米游社签到部分的代码指导 - [@AMEKENN](https://github.com/AMEKENN) - 米游社签到部分的代码指导
- [@lgc233](https://github.com/lgc2333) - 众多优秀PR贡献 - [@lgc233](https://github.com/lgc2333) - 众多优秀PR贡献
- [@RemKeeper](https://github.com/RemKeeper) - 简易Cookies获取文档 - [@RemKeeper](https://github.com/RemKeeper) - 简易Cookies获取文档
- [@珊瑚宫千花](https://space.bilibili.com/398528056) - 角色别名Json提供
- [@wudifeixue](https://github.com/wudifeixue) - PR贡献 & Bug报告 - [@wudifeixue](https://github.com/wudifeixue) - PR贡献 & Bug报告
- [@ZhouYingSASA](https://github.com/ZhouYingSASA) - PR贡献 & Bug报告 - [@ZhouYingSASA](https://github.com/ZhouYingSASA) - PR贡献 & Bug报告

View File

@ -15,7 +15,7 @@ from mihoyo_libs.get_mihoyo_bbs_data import *
sv = Service('genshinuid') sv = Service('genshinuid')
hoshino_bot = get_bot() 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') INDEX_PATH = os.path.join(FILE_PATH, 'index')
Texture_PATH = os.path.join(FILE_PATH, 'texture2d') Texture_PATH = os.path.join(FILE_PATH, 'texture2d')
@ -241,6 +241,25 @@ async def clean_cache():
async def draw_event(): async def draw_event():
await draw_event_pic() 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('全部重签') @sv.on_fullmatch('全部重签')
async def _(bot: HoshinoBot, ev: CQEvent): async def _(bot: HoshinoBot, ev: CQEvent):
@ -347,12 +366,9 @@ async def setting(ctx):
if '添加 ' in message: if '添加 ' in message:
try: try:
mes = message.replace('添加 ', '') 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, await hoshino_bot.send_msg(self_id=sid, user_id=userid, group_id=gid,
message=f'添加Cookies成功\nCookies属于个人重要信息如果你是在不知情的情况下添加' message=im)
f'请马上修改米游社账户密码,保护个人隐私!\n————\n'
f'如果需要【开启自动签到】和【开启推送】还需要使用命令“绑定uid”绑定你的uid。\n'
f'例如绑定uid123456789。')
except ActionFailed as e: except ActionFailed as e:
await hoshino_bot.send_msg(self_id=sid, user_id=userid, group_id=gid, await hoshino_bot.send_msg(self_id=sid, user_id=userid, group_id=gid,
message="机器人发送消息失败:{}".format(e)) message="机器人发送消息失败:{}".format(e))

View File

@ -1,4 +1,3 @@
from sre_constants import SUCCESS
import time import time
import random import random
import string import string
@ -7,11 +6,6 @@ from httpx import AsyncClient
from get_data import old_version_get_ds_token,random_hex from get_data import old_version_get_ds_token,random_hex
Today_getcoins = 0
Today_have_getcoins = 0 # 这个变量以后可能会用上,先留着了
Have_coins = 0
# 米游社的API列表 # 米游社的API列表
bbs_Cookieurl = "https://webapi.account.mihoyo.com/Api/cookie_accountinfo_by_loginticket?login_ticket={}" 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={}" 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 "bbs_Share": False
} }
self.mihoyobbs_List_Use = [] self.mihoyobbs_List_Use = []
self.Today_getcoins = 0
self.Today_have_getcoins = 0 # 这个变量以后可能会用上,先留着了
self.Have_coins = 0
async def task_run(self): async def task_run(self):
await self.Load_Mihoyobbs_List_Use() await self.Load_Mihoyobbs_List_Use()
@ -102,9 +99,6 @@ class mihoyobbs_coin:
# 获取任务列表,用来判断做了哪些任务 # 获取任务列表,用来判断做了哪些任务
async def Get_taskslist(self): async def Get_taskslist(self):
global Today_getcoins
global Today_have_getcoins
global Have_coins
#log.info("正在获取任务列表") #log.info("正在获取任务列表")
async with AsyncClient() as client: async with AsyncClient() as client:
req = await client.get(url = bbs_Taskslist, headers = self.headers) req = await client.get(url = bbs_Taskslist, headers = self.headers)
@ -113,11 +107,11 @@ class mihoyobbs_coin:
return "你的Cookies已失效。" return "你的Cookies已失效。"
#log.error("获取任务列表失败你的cookie可能已过期请重新设置cookie。") #log.error("获取任务列表失败你的cookie可能已过期请重新设置cookie。")
else: else:
Today_getcoins = data["data"]["can_get_points"] self.Today_getcoins = data["data"]["can_get_points"]
Today_have_getcoins = data["data"]["already_received_points"] self.Today_have_getcoins = data["data"]["already_received_points"]
Have_coins = data["data"]["total_points"] self.Have_coins = data["data"]["total_points"]
# 如果当日可获取米游币数量为0直接判断全部任务都完成了 # 如果当日可获取米游币数量为0直接判断全部任务都完成了
if Today_getcoins == 0: if self.Today_getcoins == 0:
self.Task_do["bbs_Sign"] = True self.Task_do["bbs_Sign"] = True
self.Task_do["bbs_Read_posts"] = True self.Task_do["bbs_Read_posts"] = True
self.Task_do["bbs_Like_posts"] = True self.Task_do["bbs_Like_posts"] = True
@ -125,10 +119,10 @@ class mihoyobbs_coin:
else: else:
# 如果第0个大于或等于62则直接判定任务没做 # 如果第0个大于或等于62则直接判定任务没做
if data["data"]["states"][0]["mission_id"] >= 62: if data["data"]["states"][0]["mission_id"] >= 62:
#log.info(f"新的一天,今天可以获得{Today_getcoins}个米游币") #log.info(f"新的一天,今天可以获得{self.Today_getcoins}个米游币")
pass pass
else: else:
#log.info(f"似乎还有任务没完成,今天还能获得{Today_getcoins}") #log.info(f"似乎还有任务没完成,今天还能获得{self.Today_getcoins}")
for i in data["data"]["states"]: for i in data["data"]["states"]:
# 58是讨论区签到 # 58是讨论区签到
if i["mission_id"] == 58: if i["mission_id"] == 58: