1. 调整#角色详情 部分文案,以更好引导使用功能

2. #更新角色面板 命令增加CD,服务端CD同步添加
3. 修复一处可能误触老婆查询指令的问题
This commit is contained in:
yoimiya-kokomi 2022-04-21 04:28:54 +08:00
parent d8c039d6ca
commit db525fdf65
2 changed files with 28 additions and 15 deletions

View File

@ -42,7 +42,7 @@ const relationMap = {
} }
const relation = lodash.flatMap(relationMap, (d) => d.keyword); const relation = lodash.flatMap(relationMap, (d) => d.keyword);
export const wifeReg = `^#*\\s*(${relation.join("|")})\\s*(设置|选择|指定|列表|查询|列表|是|是谁|照片|相片|写真|图像)?\\s*([^\\d]*)\\s*(\\d*)$`; export const wifeReg = `^#\\s*(${relation.join("|")})\\s*(设置|选择|指定|列表|查询|列表|是|是谁|照片|相片|写真|图像)?\\s*([^\\d]*)\\s*(\\d*)$`;
export async function init(isUpdate = false) { export async function init(isUpdate = false) {
let _path = "file://" + process.cwd(); let _path = "file://" + process.cwd();
@ -421,7 +421,7 @@ export async function getProfile(e) {
return true; return true;
} }
if (!data.chars) { if (!data.chars) {
e.reply("请求游戏信息失败请确认角色已在游戏内橱窗展示并开放了查看详情。设置完毕后请5分钟后再进行请求~"); e.reply("获取角色面板数据失败请确认角色已在游戏内橱窗展示并开放了查看详情。设置完毕后请5分钟后再进行请求~");
} else { } else {
let ret = []; let ret = [];
lodash.forEach(data.chars, (ds) => { lodash.forEach(data.chars, (ds) => {
@ -431,9 +431,9 @@ export async function getProfile(e) {
} }
}) })
if (ret.length === 0) { if (ret.length === 0) {
e.reply("更新失败未能请求到角色数据。请确认角色已在游戏内橱窗展示并开放了查看详情。设置完毕后请5分钟后再进行请求~") e.reply("获取角色面板数据失败未能请求到角色数据。请确认角色已在游戏内橱窗展示并开放了查看详情。设置完毕后请5分钟后再进行请求~")
} else { } else {
e.reply(`更新成功!本次更新角色: ${ret.join(",")}。你可以使用 #角色名+详情 来查看详细角色属性了`) e.reply(`获取角色面板数据成功!本次获取成功角色: ${ret.join(", ")}\n你可以使用 #角色名+面板 来查看详细角色面板属性了`)
} }
} }
@ -540,6 +540,12 @@ async function getAvatar(e, char, MysApi) {
export async function renderProfile(e, char, render) { export async function renderProfile(e, char, render) {
if (['荧', '空', '主角', '旅行者'].includes(char.name)) {
e.reply("暂不支持主角的面板信息查看");
return true;
}
let MysApi = await e.getMysApi({ let MysApi = await e.getMysApi({
auth: "cookie", auth: "cookie",
targetType: "self", targetType: "self",
@ -552,7 +558,7 @@ export async function renderProfile(e, char, render) {
let profile = Profile.get(uid, char.id); let profile = Profile.get(uid, char.id);
if (!profile) { if (!profile) {
e.reply(`尚无${char.name}的面板详情。请在将角色展示在【游戏内】的“角色展柜”中并打开“显示角色详情”。设置完成5分钟后使用 #获取游戏角色详情 命令进行数据获取。`) e.reply(`请先发送 #获取游戏角色详情 命令获取 ${char.name} 的面板详情。\n请确认已将需要获取的8位角色展示在【游戏内】的“角色展柜”中并已打开“显示角色详情”。如刚进行设置请等待5分钟后再进行使用以免浪费请求次数。 `)
return true; return true;
} }

View File

@ -214,25 +214,32 @@ let Profile = {
async request(uid, e) { async request(uid, e) {
let cfg = config.miaoApi || {}; let cfg = config.miaoApi || {};
if (!cfg.api) { if (!cfg.api) {
e.reply("尚未配置更新Api无法更新数据~"); e.reply("该功能为小范围非公开功能需具备Token才可使用~");
return false; return false;
} }
if (!cfg.qq || !cfg.token || cfg.token.length !== 32) { if (!cfg.qq || !cfg.token || cfg.token.length !== 32) {
e.reply("Token错误无法请求数据~"); e.reply("Token错误无法请求数据~");
return false; return false;
} }
e.reply("开始获取角色展柜中展示的角色详情,请确认已经打开显示角色详情开关,数据获取可能会需要一定时间~"); let inCd = await redis.get(`miao:role-all:${uid}`);
const api = `${cfg.api}?uid=${uid}&qq=${cfg.qq}&token=${cfg.token}`; if (inCd === 'loading') {
console.log(api); e.reply("请求过快,请稍后重试..");
let req = await fetch(api); return false;
let data = await req.json(); } else if (inCd === 'pending') {
//fs.writeFileSync(userPath + "/test.json", data); e.reply("距上次请求刷新成功间隔小于10分钟请稍后重试..");
if (data.status !== 0 || !data.data) {
e.reply(`请求错误:${data.msg || "未知错误"}`);
return false; return false;
} }
await redis.set(`miao:role-all:${uid}`, 'loading', { EX: 20 });
e.reply("开始获取角色展柜中展示的角色详情,数据获取可能会需要一定时间~");
const api = `${cfg.api}?uid=${uid}&qq=${cfg.qq}&token=${cfg.token}`;
let req = await fetch(api);
let data = await req.json();
if (data.status !== 0 || !data.data) {
e.reply(`请求失败:${data.msg || "未知错误"}`);
return false;
}
await redis.set(`miao:role-all:${uid}`, 'pending', { EX: 600 });
data = data.data; data = data.data;
let userData = {}; let userData = {};
if (data && data["角色名称"]) { if (data && data["角色名称"]) {
userData = Profile.save(uid, data) userData = Profile.save(uid, data)