连锁反应真可怕

This commit is contained in:
kaguramaisakuya 2024-02-04 10:04:27 +08:00
parent fc484728c6
commit 647fc49a52
4 changed files with 37 additions and 37 deletions

View File

@ -18,13 +18,13 @@ app.reg({
name: '面板角色列表', name: '面板角色列表',
desc: '查看当前已获取面板数据的角色列表', desc: '查看当前已获取面板数据的角色列表',
fn: ProfileList.render, fn: ProfileList.render,
rule: /^#(星铁|原神)?(面板角色|角色面板|面板)(列表)?\s*(\d{9})?$/ rule: /^#(星铁|原神)?(面板角色|角色面板|面板)(列表)?\s*(\d{9,10})?$/
}, },
profileDetail: { profileDetail: {
name: '角色面板', name: '角色面板',
fn: ProfileDetail.detail, fn: ProfileDetail.detail,
rule: /^#*([^#]+)\s*(详细|详情|面板|面版|圣遗物|武器[1-7]?|伤害([1-9]+\d*)?)\s*(\d{9})*(.*[换变改].*)?$/ rule: /^#*([^#]+)\s*(详细|详情|面板|面版|圣遗物|武器[1-7]?|伤害([1-9]+\d*)?)\s*(\d{9,10})*(.*[换变改].*)?$/
}, },
profileChange: { profileChange: {
@ -66,7 +66,7 @@ app.reg({
artisList: { artisList: {
name: '面板圣遗物列表', name: '面板圣遗物列表',
fn: profileArtisList, fn: profileArtisList,
rule: /^#圣遗物列表\s*(\d{9})?$/ rule: /^#圣遗物列表\s*(\d{9,10})?$/
}, },
profileStat: { profileStat: {
@ -87,7 +87,7 @@ app.reg({
name: '角色查询', name: '角色查询',
fn: ProfileStat.avatarList, fn: ProfileStat.avatarList,
rule: /^#喵喵(角色|查询)[ |0-9]*$/, rule: /^#喵喵(角色|查询)[ |0-9]*$/,
yzRule: /^(#(五|四|5|4|星)*(角色|查询|查询角色|角色查询|人物)[ |0-9]*$)|(^(#*uid|#*UID)\+*[1|2|5-9][0-9]{8}$)|(^#[\+|]*[1|2|5-9][0-9]{8})/, yzRule: /^(#(五|四|5|4|星)*(角色|查询|查询角色|角色查询|人物)[ |0-9]*$)|(^(#*uid|#*UID)\+*([1-9]|18)[0-9]{8}$)|(^#[\+|]*([1-9]|18)[0-9]{8})/,
yzCheck: () => Cfg.get('avatarList', false) yzCheck: () => Cfg.get('avatarList', false)
}, },
@ -114,7 +114,7 @@ app.reg({
name: '面板更新', name: '面板更新',
describe: '【#角色】 获取游戏橱窗详情数据', describe: '【#角色】 获取游戏橱窗详情数据',
fn: ProfileList.refresh, fn: ProfileList.refresh,
rule: /^#(星铁|原神)?(全部面板更新|更新全部面板|获取游戏角色详情|更新面板|面板更新)\s*(\d{9})?$/ rule: /^#(星铁|原神)?(全部面板更新|更新全部面板|获取游戏角色详情|更新面板|面板更新)\s*(\d{9,10})?$/
}, },
uploadImg: { uploadImg: {
@ -142,13 +142,13 @@ app.reg({
name: '删除面板', name: '删除面板',
describe: '【#角色】 删除游戏橱窗详情数据', describe: '【#角色】 删除游戏橱窗详情数据',
fn: ProfileList.del, fn: ProfileList.del,
rule: /^#(删除全部面板|删除面板|删除面板数据)\s*(\d{9})?$/ rule: /^#(删除全部面板|删除面板|删除面板数据)\s*(\d{9,10})?$/
}, },
profileReload: { profileReload: {
name: '重新加载面板', name: '重新加载面板',
fn: ProfileList.reload, fn: ProfileList.reload,
rule: /^#(星铁|原神)?(加载|重新加载|重载)面板\s*(\d{9})?$/ rule: /^#(星铁|原神)?(加载|重新加载|重载)面板\s*(\d{9,10})?$/
} }
}) })

View File

@ -20,12 +20,12 @@ const ProfileChange = {
* @param msg * @param msg
* @returns {{}} * @returns {{}}
*/ */
matchMsg (msg) { matchMsg(msg) {
if (!/(变|改|换)/.test(msg)) { if (!/(变|改|换)/.test(msg)) {
return false return false
} }
msg = msg.toLowerCase().replace(/uid ?:? ?/, '').replace('', '') msg = msg.toLowerCase().replace(/uid ?:? ?/, '').replace('', '')
let regRet = /^#*(\d{9})?(.+?)(详细|详情|面板|面版|圣遗物|伤害[1-7]?)?\s*(\d{9})?[变换改](.+)/.exec(msg) let regRet = /^#*(\d{9,10})?(.+?)(详细|详情|面板|面版|圣遗物|伤害[1-7]?)?\s*(\d{9,10})?[变换改](.+)/.exec(msg)
if (!regRet || !regRet[2]) { if (!regRet || !regRet[2]) {
return false return false
} }
@ -39,31 +39,31 @@ const ProfileChange = {
const isGs = game === 'gs' const isGs = game === 'gs'
const keyMap = isGs const keyMap = isGs
? { ? {
artis: '圣遗物', artis: '圣遗物',
arti1: '花,生之花', arti1: '花,生之花',
arti2: '毛,羽,羽毛,死之羽', arti2: '毛,羽,羽毛,死之羽',
arti3: '沙,沙漏,表,时之沙', arti3: '沙,沙漏,表,时之沙',
arti4: '杯,杯子,空之杯', arti4: '杯,杯子,空之杯',
arti5: '头,冠,理之冠,礼冠,帽子,帽', arti5: '头,冠,理之冠,礼冠,帽子,帽',
weapon: '武器' weapon: '武器'
} }
: { : {
artis: '圣遗物,遗器', artis: '圣遗物,遗器',
arti1: '头,帽子,头部', arti1: '头,帽子,头部',
arti2: '手,手套,手部', arti2: '手,手套,手部',
arti3: '衣,衣服,甲,躯干,', arti3: '衣,衣服,甲,躯干,',
arti4: '鞋,靴,鞋子,靴子,脚,脚部', arti4: '鞋,靴,鞋子,靴子,脚,脚部',
arti5: '球,位面球', arti5: '球,位面球',
arti6: '绳,线,链接绳,连接绳', arti6: '绳,线,链接绳,连接绳',
weapon: '武器,光锥' weapon: '武器,光锥'
} }
let keyTitleMap = {} let keyTitleMap = {}
lodash.forEach(keyMap, (val, key) => { lodash.forEach(keyMap, (val, key) => {
lodash.forEach(val.split(','), (v) => { lodash.forEach(val.split(','), (v) => {
keyTitleMap[v] = key keyTitleMap[v] = key
}) })
}) })
const keyReg = new RegExp(`^(\\d{9})?\\s*(.+?)\\s*(\\d{9})?\\s*((?:${lodash.keys(keyTitleMap).join('|')}|\\+)+)$`) const keyReg = new RegExp(`^(\\d{9,10})?\\s*(.+?)\\s*(\\d{9,10})?\\s*((?:${lodash.keys(keyTitleMap).join('|')}|\\+)+)$`)
ret.char = char.id ret.char = char.id
ret.mode = regRet[3] === '换' ? '面板' : regRet[3] ret.mode = regRet[3] === '换' ? '面板' : regRet[3]
@ -197,7 +197,7 @@ const ProfileChange = {
* @param game * @param game
* @returns {Avatar|boolean} * @returns {Avatar|boolean}
*/ */
getProfile (uid, charid, ds, game = 'gs') { getProfile(uid, charid, ds, game = 'gs') {
if (!charid) { if (!charid) {
return false return false
} }

View File

@ -8,7 +8,7 @@ import { Button, Character, MysApi, Player } from '#miao.models'
* 获取面板查询的 目标uid * 获取面板查询的 目标uid
* */ * */
const _getTargetUid = async function (e) { const _getTargetUid = async function (e) {
let uidReg = /[1-9][0-9]{8}/ let uidReg = /([1-9]|18)[0-9]{8}/
if (e.uid && uidReg.test(e.uid)) { if (e.uid && uidReg.test(e.uid)) {
return e.uid return e.uid
@ -38,7 +38,7 @@ const _getTargetUid = async function (e) {
return uid || false return uid || false
} }
export async function getTargetUid (e) { export async function getTargetUid(e) {
let uid = await _getTargetUid(e) let uid = await _getTargetUid(e)
if (uid) { if (uid) {
e.uid = uid e.uid = uid
@ -46,7 +46,7 @@ export async function getTargetUid (e) {
return uid return uid
} }
export async function getProfileRefresh (e, avatar) { export async function getProfileRefresh(e, avatar) {
let char = Character.get(avatar) let char = Character.get(avatar)
if (!char) { if (!char) {
return false return false
@ -71,7 +71,7 @@ export async function getProfileRefresh (e, avatar) {
/* /*
* 面板帮助 * 面板帮助
* */ * */
export async function profileHelp (e) { export async function profileHelp(e) {
e.reply(segment.image(`file://${process.cwd()}/plugins/miao-plugin/resources/character/imgs/help.jpg`)) e.reply(segment.image(`file://${process.cwd()}/plugins/miao-plugin/resources/character/imgs/help.jpg`))
return true return true
} }

View File

@ -9,7 +9,7 @@ const ProfileList = {
* @param e * @param e
* @returns {Promise<boolean|*>} * @returns {Promise<boolean|*>}
*/ */
async refresh (e) { async refresh(e) {
let uid = await getTargetUid(e) let uid = await getTargetUid(e)
if (!uid) { if (!uid) {
e._replyNeedUid || e.reply(['请先发送【#绑定+你的UID】来绑定查询目标\n星铁请使用【#星铁绑定+UID】', new Button(e).bindUid()]) e._replyNeedUid || e.reply(['请先发送【#绑定+你的UID】来绑定查询目标\n星铁请使用【#星铁绑定+UID】', new Button(e).bindUid()])
@ -48,7 +48,7 @@ const ProfileList = {
* @returns {Promise<boolean|*>} * @returns {Promise<boolean|*>}
*/ */
async render (e) { async render(e) {
let uid = await getTargetUid(e) let uid = await getTargetUid(e)
if (!uid) { if (!uid) {
e._replyNeedUid || e.reply(['请先发送【#绑定+你的UID】来绑定查询目标\n星铁请使用【#星铁绑定+UID】', new Button(e).bindUid()]) e._replyNeedUid || e.reply(['请先发送【#绑定+你的UID】来绑定查询目标\n星铁请使用【#星铁绑定+UID】', new Button(e).bindUid()])
@ -149,8 +149,8 @@ const ProfileList = {
* @param e * @param e
* @returns {Promise<boolean>} * @returns {Promise<boolean>}
*/ */
async del (e) { async del(e) {
let ret = /^#(删除全部面板|删除面板|删除面板数据)\s*(\d{9})?$/.exec(e.msg) let ret = /^#(删除全部面板|删除面板|删除面板数据)\s*(\d{9,10})?$/.exec(e.msg)
let uid = await getTargetUid(e) let uid = await getTargetUid(e)
if (!uid) { if (!uid) {
return true return true
@ -179,7 +179,7 @@ const ProfileList = {
return true return true
}, },
async reload (e) { async reload(e) {
let uid = await getTargetUid(e) let uid = await getTargetUid(e)
if (!uid) { if (!uid) {
return true return true