diff --git a/README.md b/README.md index c3543e7..e85c6c4 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@

✨基于HoshinoBotgo-cqhttp的原神Q群机器人✨

- version + version license python go-cqhttp @@ -15,6 +15,7 @@

+ ## 简介 通过米游社接口,查询uid的游戏信息,并附带各种娱乐功能。 @@ -58,6 +59,11 @@ material +
+抽卡记录 +gachalog +
+ ## 指令列表 ### 查询功能 @@ -75,17 +81,27 @@ | ssbq uid | 查询uid的实时便签,包括树脂、派遣情况等 | uid必须绑定了对应私人cookie才能使用 | | myzj uid (月份) | 查询uid的该月札记 | uid必须绑定了对应私人cookie才能使用,不写月份时默认为本月,只能看最近3个月 | +### 抽卡记录导出和分析 + +| 指令 | 介绍 | 备注 | +| --------------------- | -------------------------------- | -------------------------------------- | +| 查看抽卡记录 uid 池子 | 查看uid已有的抽卡记录的分析图片 | 池子有all\|角色\|武器\|常驻,默认为all | +| 获取抽卡记录 uid 链接 | 从api获取抽卡记录,时间较长 | | +| 导出抽卡记录 uid 格式 | 导出抽卡记录的文件,上传到群文件 | 格式有xlsx和json;只能在群里导出 | + +抽卡记录链接的获取方式和其他工具是一样的,这里不多介绍了 + ### 模拟抽卡功能 -| 指令 | 介绍 | 备注 | -| ---------------------- | ---------------------------------- | ------------------------------------------------------------ | -| 抽n十连xx | 模拟抽n个xx池子的十连 | n必须为阿拉伯数字,最多同时5次;xx池子有角色1\|角色2\|武器\|常驻\|彩蛋,可以DIY池子 | -| 选择定轨 武器名称 | 武器定轨 | 武器名必须是全称 | -| 查看定轨 | 查看当前定轨的武器和能量值 | | -| 删除定轨 | 删除定轨 | | -| 查看抽卡记录 | 查看模拟抽卡的出货率、保底数等信息 | | -| 查看抽卡记录 角色/武器 | 查看模拟抽卡抽到的角色/武器列表 | | -| 删除抽卡记录 | 清空自己的模拟抽卡记录 | | +| 指令 | 介绍 | 备注 | +| -------------------------- | ---------------------------------- | ------------------------------------------------------------ | +| 抽n十连xx | 模拟抽n个xx池子的十连 | n必须为阿拉伯数字,最多同时5次;xx池子有角色1\|角色2\|武器\|常驻\|彩蛋,可以DIY池子 | +| 选择定轨 武器名称 | 武器定轨 | 武器名必须是全称 | +| 查看定轨 | 查看当前定轨的武器和能量值 | | +| 删除定轨 | 删除定轨 | | +| 查看模拟抽卡记录 | 查看模拟抽卡的出货率、保底数等信息 | | +| 查看模拟抽卡记录 角色/武器 | 查看模拟抽卡抽到的角色/武器列表 | | +| 删除模拟抽卡记录 | 清空自己的模拟抽卡记录 | | ### 原神WIKI @@ -115,16 +131,17 @@ ## 更新日志 - 3.20 新增Windows一键部署脚本 - - 3.22 新增蓝佬授权提供的收益曲线和参考面板攻略图 +- 3.24 新增抽卡记录导出和分析功能,原模拟抽卡的指令更改 ## 未来计划 - [ ] 实时便签树脂提醒 -- [ ] 抽卡记录导出和分析 +- [x] 抽卡记录导出和分析 - [ ] ocr圣遗物评分和角色面板记录 - [ ] 角色、武器和圣遗物wiki - [ ] 派蒙AI闲聊 +- [ ] 米游社自动签到 ## 部署方法 @@ -169,3 +186,4 @@ javascript:(function(){prompt(document.domain,document.cookie)})(); - [西风驿站](https://bbs.mihoyo.com/ys/collection/307224) - 角色攻略一图流来源 - [hoshino-installer](https://github.com/pcrbot/hoshino-installer) - 一键安装脚本参考 - [bluemushoom](https://bbs.nga.cn/nuke.php?func=ucp&uid=62861898) - 全角色收益曲线和参考面板攻略图来源 +- [genshin-gacha-export](https://github.com/sunfkny/genshin-gacha-export) - 抽卡记录导出参考 diff --git a/hoshino/modules/Genshin_Paimon/gacha_log_export/get_img.py b/hoshino/modules/Genshin_Paimon/gacha_log_export/get_img.py index bde51d1..a0cb9fd 100644 --- a/hoshino/modules/Genshin_Paimon/gacha_log_export/get_img.py +++ b/hoshino/modules/Genshin_Paimon/gacha_log_export/get_img.py @@ -9,7 +9,7 @@ def get_font(size): return ImageFont.truetype(os.path.join(res_path, 'msyh.ttc'), size) async def get_circle_avatar(avatar, size): - avatar = Image.open(os.path.join(res_path, 'role_avatar', f'{avatar}.png')) + avatar = Image.open(os.path.join(res_path, 'thumb', f'{avatar}.png')) w, h = avatar.size bg = Image.new('RGBA', (w, h), (213, 153, 77, 255)) bg.alpha_composite(avatar, (0, 0)) @@ -63,13 +63,13 @@ async def draw_gacha_log(data): top_draw.text((146 - 6 * len(str(data["total_num"])), 88), f'{data["total_num"]}', font=get_font(24), fill='black') five_ave = round(sum([x[1] for x in five_star]) / len(five_star), 1) if five_star else ' ' top_draw.text((321 - 10 * len(str(five_ave)), 88), f'{five_ave}', font=get_font(24), fill='black' if five_ave != ' ' and five_ave > 60 else 'red') - five_per = round(len(five_star) / (data['total_num'] - data['5_gacha']), 4) if five_star else -1 - five_per_str = str(five_per * 100) + '%' if five_per > -1 else ' ' - top_draw.text((427, 88), f'{five_per_str}', font=get_font(24), fill='black' if five_per < 0.016 else 'red') - five_up = round(len([x[0] for x in five_star if not x[0] in ['刻晴', '迪卢克', '七七', '莫娜', '琴']]) / len(five_star), - 4) if five_star else -1 - five_up_str = str(five_up * 100) + '%' if five_per > -1 else ' ' - top_draw.text((578 if len(five_up_str) != 6 else 569, 88), f'{five_up_str}', font=get_font(24), fill='black' if five_up < 0.75 else 'red') + five_per = round(len(five_star) / (data['total_num'] - data['5_gacha']) * 100, 2) if five_star else -1 + five_per_str = str(five_per) + '%' if five_per > -1 else ' ' + top_draw.text((427, 88), f'{five_per_str}', font=get_font(24), fill='black' if five_per < 1.7 else 'red') + five_up = round(len([x[0] for x in five_star if not x[0] in ['刻晴', '迪卢克', '七七', '莫娜', '琴']]) / len(five_star) * 100, + 1) if five_star else -1 + five_up_str = str(five_up) + '%' if five_per > -1 else ' ' + top_draw.text((578 if len(five_up_str) != 6 else 569, 88), f'{five_up_str}', font=get_font(24), fill='black' if five_up < 75 else 'red') most_five = sorted(five_star, key=lambda x: x[1], reverse=False)[0][0] if five_star else ' ' top_draw.text((152 - 14 * len(most_five), 163), f'{most_five}', font=get_font(24), fill='red') four_ave = round(sum([x[1] for x in data['4_star']]) / len(data['4_star']), 1) if data['4_star'] else ' ' diff --git a/readme/gachalog.jpg b/readme/gachalog.jpg new file mode 100644 index 0000000..777cc0b Binary files /dev/null and b/readme/gachalog.jpg differ