diff --git a/CHANGELOG.md b/CHANGELOG.md index e4e72ee1..fcde5342 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,18 +1,9 @@ -# 1.8.6 +# 1.8.7 -* `#上传深渊数据`命令会返回最强一击及承受伤害的排名 - * 需要有当期深渊挑战记录才会展示排名信息 - * 当前为文字展示,后期会改为图像模式 +* 增加`#深渊使用率`命令,数据源自SG团队胡桃API +* `#上传深渊数据`命令会展示角色排名及总记录排名 -# 1.8.5 - -* 支持戳一戳返回喵喵版角色卡片 - * 需要使用喵喵分支Yunzai以支持此能力,如需切换可在Yunzai跟目录输入下方命令后更新重启 - * `git remote set-url origin https://gitee.com/yoimiya-kokomi/Yunzai-Bot` - * 可通过`#喵喵设置` 关闭戳一戳 -* 增加鹿野院平藏的角色图片 - -# 1.8.1~1.8.4 +# 1.8.1~1.8.6 * 新增`#上传深渊数据`命令 * 可上传自己角色的深渊挑战数据及角色列表,不会上传其他信息 @@ -22,13 +13,17 @@ * `#老婆设置刻晴,心海`不再检查是否具有角色或展示在米游社展柜 * `#刻晴` 角色卡片优先使用面板数据进行展示,无面板数据时使用米游社数据 * 在未能获取到角色数据时也会展示角色卡片 +* 支持戳一戳返回喵喵版角色卡片 + * 需要使用喵喵分支Yunzai以支持此能力,如需切换可在Yunzai根目录输入下方命令后更新重启 + * `git remote set-url origin https://gitee.com/yoimiya-kokomi/Yunzai-Bot` + * 可通过`#喵喵设置` 关闭戳一戳 * 支持定义新角色及别名 * 新增角色 派蒙、瑶瑶、白术、伐难、应达、散兵、女士、萍儿 的角色配置及图片 * 自定义角色可使用`#派蒙` `#派蒙图片`触发图片查看,`#女儿设置派蒙`进行设置。后续会支持更多场景 * 如需扩展可在喵喵config/character.js中定义 * `#喵喵帮助`增加对自定义配置文件的支持 * 已有配置文件可更名为help-cfg.js,防止后续更新冲突,后续会支持更多配置项 - * 在默认配置中增加部分新帮助命令 + * 在默认配置中增加部分新的帮助命令 * 增加`#添加刻晴图像`命令,感谢 **@叶** * 可通过命令上传添加指定角色图片,上传至 **resources/character-img/刻晴/upload** * 请将图像与命令一同发送,后续会支持at图像及命令后发送图像 @@ -123,7 +118,7 @@ * 增加 `#深渊配队` 功能 * 根据当前账号的角色练度及本期深渊出场数据,推荐较匹配的配队方案 - * 深渊出场数据来自胡桃API,为SnapGenshin用户自主上传的深渊挑战记录,感谢SG团队 + * 深渊出场数据来自胡桃API,为Snap Genshin用户自主上传的深渊挑战记录,感谢SG团队 * 配队方案仅供参考 * `#角色面板` 伤害计算新增部分角色 * 目前支持:雷神、胡桃、魈、神子、甘雨、宵宫、公子、绫人、绫华、心海、钟离 diff --git a/apps/admin.js b/apps/admin.js index c768626a..675de63b 100644 --- a/apps/admin.js +++ b/apps/admin.js @@ -125,7 +125,8 @@ export async function updateRes(e) { e.reply("开始尝试更新,请耐心等待~"); command = `git pull`; 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("目前所有图片都已经是最新了~"); return true; } @@ -169,7 +170,7 @@ export async function updateMiaoPlugin(e) { e.reply("正在执行更新操作,请稍等"); } 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("目前已经是最新版喵喵了~"); return true; } diff --git a/apps/stat.js b/apps/stat.js index 34d2dce1..1627b1eb 100644 --- a/apps/stat.js +++ b/apps/stat.js @@ -95,9 +95,21 @@ export async function abyssPct(e, { render }) { 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) { - e.reply("深渊出场数据获取失败,请稍后重试~"); + e.reply(`深渊${modeName}数据获取失败,请稍后重试~`); return true; } @@ -133,7 +145,7 @@ export async function abyssPct(e, { render }) { avatars.push({ name: char.name, star: char.star, - value: ds.value * 8 + value: ds.value * modeMulti }) } }) @@ -153,12 +165,10 @@ export async function abyssPct(e, { render }) { abyss: ret, floorName, chooseFloor, - lastUpdate: abyssData.lastUpdate, - pct: function (num) { - return (num * 100).toFixed(2); - }, + mode, + modeName, + lastUpdate: abyssData.lastUpdate }, { e, render, scale: 1.5 }); - } async function getTalentData(e, isUpdate = false) { @@ -413,23 +423,30 @@ export async function uploadData(e) { // console.log(err); } if (ret && ret.retcode === 0) { - let msg = [`uid:${uid}本次深渊记录上传成功,多谢支持,喵~`]; + let msg = [`uid:${uid}本次深渊记录上传成功~ \n多谢支持,φ(>ω<*) 喵~`]; if (ret.data) { let addMsg = function (title, ds) { if (!ds && !ds.avatarId && !ds.percent) { return; } let char = Character.get(ds.avatarId); - 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}用户`) - } else { - msg.push(`${title}超过${(Math.min(99.9, ds.percent * 100)).toFixed(1)}%的${char.name}用户`) + title = `${title}:${char.name}(${(ds.value / 10000).toFixed(1)}W)`; + + let pct = (percent, name) => { + if (percent < 0.2) { + title += `,少于${(Math.max(0.1, 100 - percent * 100)).toFixed(1)}%的${name}`; + } else { + title += `,超过${(Math.min(99.9, percent * 100)).toFixed(1)}%的${name}`; + } } + pct(ds.percent, char.name); + pct(ds.percentTotal, "总记录"); + msg.push(title); } - msg.push("本次深渊排行:"); - addMsg("最强一击", ret.data.damage || {}); - addMsg("承受伤害", ret.data.takeDamage || {}); + msg.push("当前数据记录:"); + addMsg("【最强一击】", ret.data.damage || {}); + addMsg("【承受伤害】", ret.data.takeDamage || {}); + msg.push("排行会随时间而更新,数据仅供参考~"); } e.reply(msg.join("\n")) } else { diff --git a/components/models/HutaoApi.js b/components/models/HutaoApi.js index f0c819b8..f89e1ed9 100644 --- a/components/models/HutaoApi.js +++ b/components/models/HutaoApi.js @@ -44,6 +44,10 @@ let HutaoApi = { return await HutaoApi.req("/Statistics/AvatarParticipation"); }, + async getAbyssUse() { + return await HutaoApi.req("/Statistics2/AvatarParticipation"); + }, + async getAbyssTeam() { return await HutaoApi.req("/Statistics/TeamCombination"); }, diff --git a/index.js b/index.js index 8f0a635f..81529da7 100644 --- a/index.js +++ b/index.js @@ -77,7 +77,7 @@ let rule = { describe: "【#统计】 #角色持有率 #角色5命统计", }, abyssPct: { - reg: "^#(喵喵)?深渊(第?.{1,2}层)?(角色)?出场(率|统计)*$", + reg: "^#(喵喵)?深渊(第?.{1,2}层)?(角色)?(出场|使用)(率|统计)*$", describe: "【#统计】 #深渊出场率 #深渊12层出场率", }, abyssTeam: { @@ -109,7 +109,7 @@ let rule = { describe: "【#日历】 活动日历", }, uploadData: { - reg: "^#上传深渊数据$" + reg: "^#上传(深渊|数据)+$" }, ...adminRule }; diff --git a/resources/help/help-cfg_default.js b/resources/help/help-cfg_default.js index a29f7d1e..c2ee570b 100644 --- a/resources/help/help-cfg_default.js +++ b/resources/help/help-cfg_default.js @@ -1,6 +1,10 @@ /* -* 请勿直接修改此文件,可能会导致后续更新冲突 -* 如需自定义可将文件复制一份,重命名为 help-cfg.js 后编辑 +* 请注意!!!! +* 【请勿直接修改此文件,可能会导致后续更新冲突】 +* 【请勿直接修改此文件,可能会导致后续更新冲突】 +* +* 如需自定义可将文件【复制】一份,并重命名为 help-cfg.js 或 help-list.js 后编辑 +* * */ // 帮助配置 @@ -40,6 +44,10 @@ export const helpList = [{ icon: 62, title: "#五星列表 #练度统计", desc: "角色列表数据", + }, { + icon: 77, + title: "#上传深渊数据", + desc: "上传您的深渊数据用于数据统计" }] }, { group: "资料及图片", @@ -73,8 +81,8 @@ export const helpList = [{ desc: "查看角色的持有率、0命统计" }, { icon: 77, - title: "#深渊出场率 #深渊12层出场", - desc: "查看深渊出场率信息" + title: "#深渊使用率 #深渊出场率", + desc: "查看本期深渊使用或出场统计" }, { icon: 20, title: "#刻晴攻略", @@ -107,10 +115,6 @@ export const helpList = [{ icon: 86, title: "#签到", desc: "米游社原神签到" - }, { - icon: 77, - title: "#上传深渊数据", - desc: "上传您的深渊数据用于数据统计" }] }, { group: "其他查询指令", diff --git a/resources/stat/abyss-pct.html b/resources/stat/abyss-pct.html index 7f98644c..6c6882d1 100644 --- a/resources/stat/abyss-pct.html +++ b/resources/stat/abyss-pct.html @@ -9,12 +9,12 @@
{{if chooseFloor == -1}} -
深渊出场率统计
-
全角色出场率统计(出场记录/总记录)
+
深渊{{modeName}}统计
{{else}} -
深渊第{{floorName[chooseFloor]}}出场率
-
全角色出场率统计(出场记录/总记录)
+
深渊第{{floorName[chooseFloor]}}{{modeName}}
{{/if}} +
【#角色出场率】出场总数/总记录数
+
【#角色使用率】出场总数/持有该角色的记录数
@@ -22,10 +22,10 @@
  • 数据来自SG团队胡桃API,为Snap Genshin / Miao-Plugin 用户自主上传的角色池信息
  • -
  • 您可以通过#上传深渊数据命令来上传挑战记录,来帮助我们统计的更加及时准确
  • -
  • 上传命令仅会上传您的角色列表及当期深渊挑战数据,不会上传其他额外信息
  • -
  • 由于是用户自主上传,数据可能有一定滞后。出场率会在深渊开启后一段时间逐步稳定
  • -
  • 数据最后更新时间:{{lastUpdate}}
  • +
  • 您可以通过#上传深渊数据命令来上传挑战记录,来帮助我们统计的更加及时准确。(上传命令仅会上传您的角色列表及当期深渊挑战数据,不会上传其他额外信息)
  • +
  • 可通过 #深渊{{modeName}}/#深渊12层{{modeName}}来查看整体或指定层的{{modeName}}数据
  • +
  • 由于是用户自主上传,数据可能有一定滞后,数据会在深渊开启后一段时间逐步稳定
  • +
  • 统计数据为本期深渊数据,数据更新时间:{{lastUpdate}}