mirror of
https://github.com/yoimiya-kokomi/miao-plugin.git
synced 2024-11-25 17:35:34 +00:00
增加#深渊使用率
命令,数据源自SG团队胡桃API
`#上传深渊数据`命令会展示角色排名及总记录排名
This commit is contained in:
parent
5b8b40cc16
commit
312b8bd728
25
CHANGELOG.md
25
CHANGELOG.md
@ -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团队
|
||||||
* 配队方案仅供参考
|
* 配队方案仅供参考
|
||||||
* `#角色面板` 伤害计算新增部分角色
|
* `#角色面板` 伤害计算新增部分角色
|
||||||
* 目前支持:雷神、胡桃、魈、神子、甘雨、宵宫、公子、绫人、绫华、心海、钟离
|
* 目前支持:雷神、胡桃、魈、神子、甘雨、宵宫、公子、绫人、绫华、心海、钟离
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
49
apps/stat.js
49
apps/stat.js
@ -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 {
|
||||||
|
@ -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");
|
||||||
},
|
},
|
||||||
|
4
index.js
4
index.js
@ -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
|
||||||
};
|
};
|
||||||
|
@ -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: "其他查询指令",
|
||||||
|
@ -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>
|
||||||
|
Loading…
Reference in New Issue
Block a user