增加#深渊使用率命令,数据源自SG团队胡桃API

`#上传深渊数据`命令会展示角色排名及总记录排名
This commit is contained in:
yoimiya-kokomi 2022-07-09 05:49:29 +08:00
parent 5b8b40cc16
commit 312b8bd728
7 changed files with 73 additions and 52 deletions

View File

@ -1,18 +1,9 @@
# 1.8.6 # 1.8.7
* `#上传深渊数据`命令会返回最强一击及承受伤害的排名 * 增加`#深渊使用率`命令数据源自SG团队胡桃API
* 需要有当期深渊挑战记录才会展示排名信息 * `#上传深渊数据`命令会展示角色排名及总记录排名
* 当前为文字展示,后期会改为图像模式
# 1.8.5 # 1.8.1~1.8.6
* 支持戳一戳返回喵喵版角色卡片
* 需要使用喵喵分支Yunzai以支持此能力如需切换可在Yunzai跟目录输入下方命令后更新重启
* `git remote set-url origin https://gitee.com/yoimiya-kokomi/Yunzai-Bot`
* 可通过`#喵喵设置` 关闭戳一戳
* 增加鹿野院平藏的角色图片
# 1.8.1~1.8.4
* 新增`#上传深渊数据`命令 * 新增`#上传深渊数据`命令
* 可上传自己角色的深渊挑战数据及角色列表,不会上传其他信息 * 可上传自己角色的深渊挑战数据及角色列表,不会上传其他信息
@ -22,13 +13,17 @@
* `#老婆设置刻晴,心海`不再检查是否具有角色或展示在米游社展柜 * `#老婆设置刻晴,心海`不再检查是否具有角色或展示在米游社展柜
* `#刻晴` 角色卡片优先使用面板数据进行展示,无面板数据时使用米游社数据 * `#刻晴` 角色卡片优先使用面板数据进行展示,无面板数据时使用米游社数据
* 在未能获取到角色数据时也会展示角色卡片 * 在未能获取到角色数据时也会展示角色卡片
* 支持戳一戳返回喵喵版角色卡片
* 需要使用喵喵分支Yunzai以支持此能力如需切换可在Yunzai根目录输入下方命令后更新重启
* `git remote set-url origin https://gitee.com/yoimiya-kokomi/Yunzai-Bot`
* 可通过`#喵喵设置` 关闭戳一戳
* 支持定义新角色及别名 * 支持定义新角色及别名
* 新增角色 派蒙、瑶瑶、白术、伐难、应达、散兵、女士、萍儿 的角色配置及图片 * 新增角色 派蒙、瑶瑶、白术、伐难、应达、散兵、女士、萍儿 的角色配置及图片
* 自定义角色可使用`#派蒙` `#派蒙图片`触发图片查看,`#女儿设置派蒙`进行设置。后续会支持更多场景 * 自定义角色可使用`#派蒙` `#派蒙图片`触发图片查看,`#女儿设置派蒙`进行设置。后续会支持更多场景
* 如需扩展可在喵喵config/character.js中定义 * 如需扩展可在喵喵config/character.js中定义
* `#喵喵帮助`增加对自定义配置文件的支持 * `#喵喵帮助`增加对自定义配置文件的支持
* 已有配置文件可更名为help-cfg.js防止后续更新冲突后续会支持更多配置项 * 已有配置文件可更名为help-cfg.js防止后续更新冲突后续会支持更多配置项
* 在默认配置中增加部分新帮助命令 * 在默认配置中增加部分新帮助命令
* 增加`#添加刻晴图像`命令,感谢 **@叶** * 增加`#添加刻晴图像`命令,感谢 **@叶**
* 可通过命令上传添加指定角色图片,上传至 **resources/character-img/刻晴/upload** * 可通过命令上传添加指定角色图片,上传至 **resources/character-img/刻晴/upload**
* 请将图像与命令一同发送后续会支持at图像及命令后发送图像 * 请将图像与命令一同发送后续会支持at图像及命令后发送图像
@ -123,7 +118,7 @@
* 增加 `#深渊配队` 功能 * 增加 `#深渊配队` 功能
* 根据当前账号的角色练度及本期深渊出场数据,推荐较匹配的配队方案 * 根据当前账号的角色练度及本期深渊出场数据,推荐较匹配的配队方案
* 深渊出场数据来自胡桃API为SnapGenshin用户自主上传的深渊挑战记录感谢SG团队 * 深渊出场数据来自胡桃API为Snap Genshin用户自主上传的深渊挑战记录感谢SG团队
* 配队方案仅供参考 * 配队方案仅供参考
* `#角色面板` 伤害计算新增部分角色 * `#角色面板` 伤害计算新增部分角色
* 目前支持:雷神、胡桃、魈、神子、甘雨、宵宫、公子、绫人、绫华、心海、钟离 * 目前支持:雷神、胡桃、魈、神子、甘雨、宵宫、公子、绫人、绫华、心海、钟离

View File

@ -125,7 +125,8 @@ export async function updateRes(e) {
e.reply("开始尝试更新,请耐心等待~"); e.reply("开始尝试更新,请耐心等待~");
command = `git pull`; command = `git pull`;
exec(command, { cwd: `${resPath}/miao-res-plus/` }, function (error, stdout, stderr) { exec(command, { cwd: `${resPath}/miao-res-plus/` }, function (error, stdout, stderr) {
if (/Already up[ -]to[ -]date/.test(stdout)) { console.log(stdout);
if (/(Already up[ -]to[ -]date|已经是最新的)/.test(stdout)) {
e.reply("目前所有图片都已经是最新了~"); e.reply("目前所有图片都已经是最新了~");
return true; return true;
} }
@ -169,7 +170,7 @@ export async function updateMiaoPlugin(e) {
e.reply("正在执行更新操作,请稍等"); e.reply("正在执行更新操作,请稍等");
} }
exec(command, { cwd: `${_path}/plugins/miao-plugin/` }, function (error, stdout, stderr) { exec(command, { cwd: `${_path}/plugins/miao-plugin/` }, function (error, stdout, stderr) {
if (/Already up[ -]to[ -]date/.test(stdout)) { if (/(Already up[ -]to[ -]date|已经是最新的)/.test(stdout)) {
e.reply("目前已经是最新版喵喵了~"); e.reply("目前已经是最新版喵喵了~");
return true; return true;
} }

View File

@ -95,9 +95,21 @@ export async function abyssPct(e, { render }) {
return; return;
} }
let abyssData = await HutaoApi.getAbyssPct(); let mode = /使用/.test(e.msg) ? "use" : "pct",
modeName, abyssData, modeMulti = 1;
if (mode === "use") {
modeName = "使用率";
abyssData = await HutaoApi.getAbyssUse();
} else {
modeName = "出场率";
abyssData = await HutaoApi.getAbyssPct();
modeMulti = 8;
}
if (!abyssData) { if (!abyssData) {
e.reply("深渊出场数据获取失败,请稍后重试~"); e.reply(`深渊${modeName}数据获取失败,请稍后重试~`);
return true; return true;
} }
@ -133,7 +145,7 @@ export async function abyssPct(e, { render }) {
avatars.push({ avatars.push({
name: char.name, name: char.name,
star: char.star, star: char.star,
value: ds.value * 8 value: ds.value * modeMulti
}) })
} }
}) })
@ -153,12 +165,10 @@ export async function abyssPct(e, { render }) {
abyss: ret, abyss: ret,
floorName, floorName,
chooseFloor, chooseFloor,
lastUpdate: abyssData.lastUpdate, mode,
pct: function (num) { modeName,
return (num * 100).toFixed(2); lastUpdate: abyssData.lastUpdate
},
}, { e, render, scale: 1.5 }); }, { e, render, scale: 1.5 });
} }
async function getTalentData(e, isUpdate = false) { async function getTalentData(e, isUpdate = false) {
@ -413,23 +423,30 @@ export async function uploadData(e) {
// console.log(err); // console.log(err);
} }
if (ret && ret.retcode === 0) { if (ret && ret.retcode === 0) {
let msg = [`uid:${uid}本次深渊记录上传成功,多谢支持,喵~`]; let msg = [`uid:${uid}本次深渊记录上传成功~ \n多谢支持,φ(>ω<*) 喵~`];
if (ret.data) { if (ret.data) {
let addMsg = function (title, ds) { let addMsg = function (title, ds) {
if (!ds && !ds.avatarId && !ds.percent) { if (!ds && !ds.avatarId && !ds.percent) {
return; return;
} }
let char = Character.get(ds.avatarId); let char = Character.get(ds.avatarId);
title = `${title}${char.name} ${(ds.value / 10000).toFixed(1)}W`; title = `${title}${char.name}(${(ds.value / 10000).toFixed(1)}W)`;
if (ds.percent < 0.2) {
msg.push(`${title}少于${(Math.max(0.1, 100 - ds.percent * 100)).toFixed(1)}%的${char.name}用户`) let pct = (percent, name) => {
if (percent < 0.2) {
title += `,少于${(Math.max(0.1, 100 - percent * 100)).toFixed(1)}%的${name}`;
} else { } else {
msg.push(`${title}超过${(Math.min(99.9, ds.percent * 100)).toFixed(1)}%的${char.name}用户`) title += `超过${(Math.min(99.9, percent * 100)).toFixed(1)}%的${name}`;
} }
} }
msg.push("本次深渊排行:"); pct(ds.percent, char.name);
addMsg("最强一击", ret.data.damage || {}); pct(ds.percentTotal, "总记录");
addMsg("承受伤害", ret.data.takeDamage || {}); msg.push(title);
}
msg.push("当前数据记录:");
addMsg("【最强一击】", ret.data.damage || {});
addMsg("【承受伤害】", ret.data.takeDamage || {});
msg.push("排行会随时间而更新,数据仅供参考~");
} }
e.reply(msg.join("\n")) e.reply(msg.join("\n"))
} else { } else {

View File

@ -44,6 +44,10 @@ let HutaoApi = {
return await HutaoApi.req("/Statistics/AvatarParticipation"); return await HutaoApi.req("/Statistics/AvatarParticipation");
}, },
async getAbyssUse() {
return await HutaoApi.req("/Statistics2/AvatarParticipation");
},
async getAbyssTeam() { async getAbyssTeam() {
return await HutaoApi.req("/Statistics/TeamCombination"); return await HutaoApi.req("/Statistics/TeamCombination");
}, },

View File

@ -77,7 +77,7 @@ let rule = {
describe: "【#统计】 #角色持有率 #角色5命统计", describe: "【#统计】 #角色持有率 #角色5命统计",
}, },
abyssPct: { abyssPct: {
reg: "^#(喵喵)?深渊(第?.{1,2}层)?(角色)?出场(率|统计)*$", reg: "^#(喵喵)?深渊(第?.{1,2}层)?(角色)?(出场|使用)(率|统计)*$",
describe: "【#统计】 #深渊出场率 #深渊12层出场率", describe: "【#统计】 #深渊出场率 #深渊12层出场率",
}, },
abyssTeam: { abyssTeam: {
@ -109,7 +109,7 @@ let rule = {
describe: "【#日历】 活动日历", describe: "【#日历】 活动日历",
}, },
uploadData: { uploadData: {
reg: "^#上传深渊数据$" reg: "^#上传(深渊|数据)+$"
}, },
...adminRule ...adminRule
}; };

View File

@ -1,6 +1,10 @@
/* /*
* 请勿直接修改此文件可能会导致后续更新冲突 * 请注意
* 如需自定义可将文件复制一份重命名为 help-cfg.js 后编辑 * 请勿直接修改此文件可能会导致后续更新冲突
* 请勿直接修改此文件可能会导致后续更新冲突
*
* 如需自定义可将文件复制一份并重命名为 help-cfg.js help-list.js 后编辑
*
* */ * */
// 帮助配置 // 帮助配置
@ -40,6 +44,10 @@ export const helpList = [{
icon: 62, icon: 62,
title: "#五星列表 #练度统计", title: "#五星列表 #练度统计",
desc: "角色列表数据", desc: "角色列表数据",
}, {
icon: 77,
title: "#上传深渊数据",
desc: "上传您的深渊数据用于数据统计"
}] }]
}, { }, {
group: "资料及图片", group: "资料及图片",
@ -73,8 +81,8 @@ export const helpList = [{
desc: "查看角色的持有率、0命统计" desc: "查看角色的持有率、0命统计"
}, { }, {
icon: 77, icon: 77,
title: "#深渊出场率 #深渊12层出场", title: "#深渊使用率 #深渊出场率",
desc: "查看深渊出场率信息" desc: "查看本期深渊使用或出场统计"
}, { }, {
icon: 20, icon: 20,
title: "#刻晴攻略", title: "#刻晴攻略",
@ -107,10 +115,6 @@ export const helpList = [{
icon: 86, icon: 86,
title: "#签到", title: "#签到",
desc: "米游社原神签到" desc: "米游社原神签到"
}, {
icon: 77,
title: "#上传深渊数据",
desc: "上传您的深渊数据用于数据统计"
}] }]
}, { }, {
group: "其他查询指令", group: "其他查询指令",

View File

@ -9,12 +9,12 @@
<div class="info_box"> <div class="info_box">
<div class="head-box type{{bgType}}"> <div class="head-box type{{bgType}}">
{{if chooseFloor == -1}} {{if chooseFloor == -1}}
<div class="title">深渊出场率统计</div> <div class="title">深渊{{modeName}}统计</div>
<div class="label">全角色出场率统计(出场记录/总记录)</div>
{{else}} {{else}}
<div class="title">深渊第{{floorName[chooseFloor]}}出场率</div> <div class="title">深渊第{{floorName[chooseFloor]}}{{modeName}}</div>
<div class="label">全角色出场率统计(出场记录/总记录)</div>
{{/if}} {{/if}}
<div class="label">【#角色出场率】出场总数/总记录数</div>
<div class="label">【#角色使用率】出场总数/持有该角色的记录数</div>
<img class="genshin_logo" src="{{_sys_res_path}}/genshin/roleAll/原神.png"/> <img class="genshin_logo" src="{{_sys_res_path}}/genshin/roleAll/原神.png"/>
</div> </div>
<div class="cont msg-cont"> <div class="cont msg-cont">
@ -22,10 +22,10 @@
<div class="cont-body"> <div class="cont-body">
<ul class="cont-msg"> <ul class="cont-msg">
<li>数据来自SG团队<strong>胡桃API</strong>为Snap Genshin / Miao-Plugin 用户自主上传的角色池信息</li> <li>数据来自SG团队<strong>胡桃API</strong>为Snap Genshin / Miao-Plugin 用户自主上传的角色池信息</li>
<li>您可以通过<strong>#上传深渊数据</strong>命令来上传挑战记录,来帮助我们统计的更加及时准确</li> <li>您可以通过<strong>#上传深渊数据</strong>命令来上传挑战记录,来帮助我们统计的更加及时准确。(上传命令仅会上传您的角色列表及当期深渊挑战数据,不会上传其他额外信息)</li>
<li>上传命令<strong>仅会上传您的角色列表及当期深渊挑战数据</strong>,不会上传其他额外信息</li> <li>可通过 <strong>#深渊{{modeName}}</strong>/<strong>#深渊12层{{modeName}}</strong>来查看整体或指定层的{{modeName}}数据</li>
<li>由于是用户自主上传,数据可能有一定滞后。出场率会在深渊开启后一段时间逐步稳定</li> <li>由于是用户自主上传,数据可能有一定滞后,数据会在深渊开启后一段时间逐步稳定</li>
<li>数据最后更新时间:{{lastUpdate}}</li> <li>统计数据为本期深渊数据,数据更新时间:{{lastUpdate}}</li>
</ul> </ul>
</div> </div>
</div> </div>