diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 7edaef0..dd4162d 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -24,6 +24,7 @@ module.exports = { 'quote-props': ['error', 'consistent'], 'no-eval': ['error', { allowIndirect: true }], 'jsdoc/require-returns': 0, + 'jsdoc/require-jsdoc': 0, 'jsdoc/require-param-description': 0, 'jsdoc/require-returns-description': 0, 'jsdoc/require-param-type': 0 diff --git a/apps/bika.js b/apps/bika.js index 8e84497..e32fb69 100644 --- a/apps/bika.js +++ b/apps/bika.js @@ -1,6 +1,7 @@ import { Bika, common, Pixiv } from '../model/index.js' import { Config } from '../components/index.js' import { Admin } from './admin.js' +import translateChinaNum from '../tools/translateChinaNum.js' // 汉字数字匹配正则 const numReg = '[零一壹二两三四五六七八九十百千万亿\\d]+' @@ -64,7 +65,7 @@ export class NewBika extends plugin { if (!await this._Authentication(e)) return e.reply(Pixiv.startMsg) let regRet = e.msg.match(searchReg) - let page = common.translateChinaNum(regRet[5]) + let page = translateChinaNum(regRet[5]) await Bika.search(regRet[3], page, regRet[2]) .then(res => common.recallSendForwardMsg(e, res)) .catch(err => common.handleException(e, err)) @@ -78,8 +79,8 @@ export class NewBika extends plugin { if (!await this._Authentication(e)) return e.reply(Pixiv.startMsg) let regRet = e.msg.match(comicPageReg) - let page = common.translateChinaNum(regRet[4]) - let order = common.translateChinaNum(regRet[6]) + let page = translateChinaNum(regRet[4]) + let order = translateChinaNum(regRet[6]) await Bika.comicPage(regRet[2], page, order) .then(res => common.recallSendForwardMsg(e, res)) .catch(err => common.handleException(e, err)) diff --git a/apps/events/notice_group.js b/apps/events/notice_group.js index 88d4a0f..fff1711 100644 --- a/apps/events/notice_group.js +++ b/apps/events/notice_group.js @@ -1,6 +1,7 @@ import { common } from '../../model/index.js' import { Config } from '../../components/index.js' import moment from 'moment' +import formatDuration from '../../tools/formatDuration.js' Bot.on?.('notice.group', async (e) => { let msg @@ -142,7 +143,7 @@ Bot.on?.('notice.group', async (e) => { } // 禁言 (这里仅处理机器人被禁言) case 'ban': { - const forbiddenTime = common.formatTime(e.duration, 'default') + const forbiddenTime = formatDuration(e.duration, 'default') if (!Config.getGroup(e.group_id).botBeenBanned) return false diff --git a/apps/groupAdmin/groupAdmin.js b/apps/groupAdmin/groupAdmin.js index 0362c00..93a984a 100644 --- a/apps/groupAdmin/groupAdmin.js +++ b/apps/groupAdmin/groupAdmin.js @@ -1,9 +1,11 @@ import _ from 'lodash' import moment from 'moment' import { Config } from '../../components/index.js' -import { common, GroupAdmin as Ga, puppeteer, QQApi, GroupBannedWords } from '../../model/index.js' -import cronValidate from '../../tools/cronValidate.js' import { Time_unit } from '../../constants/other.js' +import { GroupAdmin as Ga, GroupBannedWords, QQApi, common, puppeteer } from '../../model/index.js' +import cronValidate from '../../tools/cronValidate.js' +import translateChinaNum from '../../tools/translateChinaNum.js' + // API请求错误文案 const API_ERROR = '❎ 出错辣,请稍后重试' // 正则 @@ -169,7 +171,7 @@ export class GroupAdmin extends plugin { let qq = e.message.find(item => item.type == 'at')?.qq let reg = `#禁言\\s?((\\d+)\\s)?(${Numreg})?(${TimeUnitReg})?` let regRet = e.msg.match(new RegExp(reg)) - const time = common.translateChinaNum(regRet[3]) + const time = translateChinaNum(regRet[3]) new Ga(e).muteMember( e.group_id, qq ?? regRet[2], e.user_id, time, regRet[4] ).then(res => e.reply(res)) @@ -221,7 +223,7 @@ export class GroupAdmin extends plugin { // 解析正则 let regRet = Autisticreg.exec(e.msg) // 获取数字 - let TabooTime = common.translateChinaNum(regRet[2] || 5) + let TabooTime = translateChinaNum(regRet[2] || 5) let Company = Time_unit[_.toUpper(regRet[3]) || '分'] @@ -407,7 +409,7 @@ export class GroupAdmin extends plugin { if (!common.checkPermission(e, 'admin', 'admin')) { return true } let regRet = noactivereg.exec(e.msg) - regRet[2] = common.translateChinaNum(regRet[2] || 1) + regRet[2] = translateChinaNum(regRet[2] || 1) // 确认清理直接执行 if (regRet[1] == '确认清理') { try { @@ -423,7 +425,7 @@ export class GroupAdmin extends plugin { } } // 查看和清理都会发送列表 - let page = common.translateChinaNum(regRet[5] || 1) + let page = translateChinaNum(regRet[5] || 1) let msg = null try { msg = await new Ga(e).getNoactiveInfo( @@ -472,7 +474,7 @@ export class GroupAdmin extends plugin { } // 发送列表 let page = e.msg.match(new RegExp(Numreg)) - page = page ? common.translateChinaNum(page[0]) : 1 + page = page ? translateChinaNum(page[0]) : 1 new Ga(e).getNeverSpeakInfo(e.group_id, page) .then(res => common.getforwardMsg(e, res, { isxml: true, @@ -484,7 +486,7 @@ export class GroupAdmin extends plugin { // 查看不活跃排行榜和入群记录 async RankingList (e) { let num = e.msg.match(new RegExp(Numreg)) - num = num ? common.translateChinaNum(num[0]) : 10 + num = num ? translateChinaNum(num[0]) : 10 let msg = '' if (/(不活跃|潜水)/.test(e.msg)) { msg = await new Ga(e).InactiveRanking(e.group_id, num) diff --git a/apps/groupAdmin/privateGroupAdmin.js b/apps/groupAdmin/privateGroupAdmin.js index 1cdffa7..eacfdf2 100644 --- a/apps/groupAdmin/privateGroupAdmin.js +++ b/apps/groupAdmin/privateGroupAdmin.js @@ -1,5 +1,6 @@ import { GroupAdmin as Ga, common } from '../../model/index.js' import { Time_unit } from '../../constants/other.js' +import translateChinaNum from '../../tools/translateChinaNum.js' // 正则 const Numreg = '[一壹二两三四五六七八九十百千万亿\\d]+' const TimeUnitReg = Object.keys(Time_unit).join('|') @@ -34,7 +35,7 @@ export class PrivateGroupAdmin extends plugin { async muteMember (e) { if (!common.checkPermission(e, 'master')) return let regRet = e.msg.match(muteMemberReg) - const time = common.translateChinaNum(regRet[3]) + const time = translateChinaNum(regRet[3]) let res = await new Ga(e).muteMember(regRet[1], regRet[2], e.user_id, time, regRet[4]) e.reply(res) } diff --git a/apps/pixiv.js b/apps/pixiv.js index 934920d..7ea4cca 100644 --- a/apps/pixiv.js +++ b/apps/pixiv.js @@ -3,6 +3,7 @@ import { Config } from '../components/index.js' import { Pixiv, common, setu } from '../model/index.js' import { Admin } from './admin.js' import { ImageRPSS } from '../constants/pixiv.js' +import translateChinaNum from '../tools/translateChinaNum.js' // 文案 const SWITCH_ERROR = '主人没有开放这个功能哦(*/ω\*)' // 汉字数字匹配正则 @@ -106,7 +107,7 @@ export class NewPixiv extends plugin { e.reply(Pixiv.startMsg) - let page = common.translateChinaNum(regRet[6]) + let page = translateChinaNum(regRet[6]) await Pixiv.Rank(page, regRet[2], regRet[3], regRet[4]) .then(res => common.recallSendForwardMsg(e, res)) .catch(err => common.handleException(e, err)) @@ -123,7 +124,7 @@ export class NewPixiv extends plugin { e.reply(Pixiv.startMsg) - let page = common.translateChinaNum(regRet[4]) + let page = translateChinaNum(regRet[4]) await Pixiv[`${regRet[1] ? 's' : 'vilipixS'}earchTags`](regRet[2], page, !setu.getR18(e.group_id)) .then(res => common.recallSendForwardMsg(e, res)) .catch(err => common.handleException(e, err)) @@ -151,7 +152,7 @@ export class NewPixiv extends plugin { e.reply(Pixiv.startMsg) let regRet = uidReg.exec(e.msg) - let page = common.translateChinaNum(regRet[3]) + let page = translateChinaNum(regRet[3]) await Pixiv.userIllust(regRet[1], page, !setu.getR18(e.group_id)) .then(res => common.recallSendForwardMsg(e, res)) @@ -169,7 +170,7 @@ export class NewPixiv extends plugin { e.reply('你要的太多辣,奴家只给你一张辣(•́へ•́ ╬)') num = 1 } - num = common.translateChinaNum(num) + num = translateChinaNum(num) await Pixiv.vilipixRandomImg(num) .then(res => common.recallSendForwardMsg(e, res)) .catch(err => common.handleException(e, err)) @@ -207,7 +208,7 @@ export class NewPixiv extends plugin { e.reply(Pixiv.startMsg) let regRet = e.msg.match(searchUser) - let page = common.translateChinaNum(regRet[3]) + let page = translateChinaNum(regRet[3]) await Pixiv.searchUser(regRet[1], page, !setu.getR18(e.group_id)) .then(res => common.recallSendForwardMsg(e, res)) .catch(err => common.handleException(e, err)) diff --git a/apps/setu.js b/apps/setu.js index d2f8a37..8aa655b 100644 --- a/apps/setu.js +++ b/apps/setu.js @@ -2,6 +2,7 @@ import plugin from '../../../lib/plugins/plugin.js' import { Config } from '../components/index.js' import { setu, common } from '../model/index.js' import { Admin } from './admin.js' +import translateChinaNum from '../tools/translateChinaNum.js' const NumReg = '[零一壹二两三四五六七八九十百千万亿\\d]+' @@ -48,7 +49,7 @@ export class SeSe extends plugin { if (cdTime) return e.reply(` ${setu.CDMsg}你的CD还有${cdTime}`, false, { at: true }) let num = e.msg.match(new RegExp(NumReg)) - num = num ? common.translateChinaNum(num[0]) : 1 + num = num ? translateChinaNum(num[0]) : 1 if (num > 20) { return e.reply('❎ 最大张数不能大于20张') } else if (num > 6) { @@ -76,7 +77,7 @@ export class SeSe extends plugin { num = 1 } else { tag = tag.replace(num[0], '').trim() - num = common.translateChinaNum(num[1]) + num = translateChinaNum(num[1]) } if (num > 20) { @@ -114,7 +115,7 @@ export class SeSe extends plugin { // 设置群撤回间隔和cd async setGroupRecallAndCD (e) { let num = e.msg.match(new RegExp(NumReg)) - num = common.translateChinaNum(num[0]) + num = translateChinaNum(num[0]) let type = /撤回间隔/.test(e.msg) setu.setGroupRecallTimeAndCd(e.group_id, num, type) new Admin().SeSe_Settings(e) @@ -132,7 +133,7 @@ export class SeSe extends plugin { let reg = `^#?设置cd\\s?((\\d+)\\s)?(${NumReg})(s|秒)?$` let regRet = e.msg.match(new RegExp(reg)) let qq = e.message.find(item => item.type == 'at')?.qq ?? regRet[2] - let cd = common.translateChinaNum(regRet[3]) + let cd = translateChinaNum(regRet[3]) if (!qq) return e.reply('❎ 请输入要设置QQ', true) if (!cd) return e.reply('❎ CD为空,请检查', true) setu.setUserCd(e, qq ?? regRet[2], cd) diff --git a/apps/state.js b/apps/state.js index bc6c024..aa15a1e 100644 --- a/apps/state.js +++ b/apps/state.js @@ -6,6 +6,7 @@ import plugin from '../../../lib/plugins/plugin.js' import { Config, Version, Plugin_Name } from '../components/index.js' import { status } from '../constants/other.js' import { State, common, puppeteer } from '../model/index.js' +import formatDuration from '../tools/formatDuration.js' const require = createRequire(import.meta.url) let interval = false @@ -122,7 +123,7 @@ export class NewState extends plugin { const getBotState = async (botList) => { const defaultAvatar = `../../../../../plugins/${Plugin_Name}/resources/state/img/default_avatar.jpg` const BotName = Version.name - const systime = common.formatTime(os.uptime(), 'dd天hh小时mm分', false) + const systime = formatDuration(os.uptime(), 'dd天hh小时mm分', false) const calendar = moment().format('YYYY-MM-DD HH:mm:ss') const dataPromises = botList.map(async (i) => { @@ -141,7 +142,7 @@ const getBotState = async (botList) => { const friendQuantity = bot.fl?.size || 0 const groupQuantity = bot.gl?.size || 0 const groupMemberQuantity = Array.from(bot.gml?.values() || []).reduce((acc, curr) => acc + curr.size, 0) - const runTime = common.formatTime(Date.now() / 1000 - bot.stat?.start_time, 'dd天hh小时mm分', false) + const runTime = formatDuration(Date.now() / 1000 - bot.stat?.start_time, 'dd天hh小时mm分', false) const botVersion = bot.version ? `${bot.version.name}(${bot.version.id})${bot.apk ? ` ${bot.version.version}` : ''}` : `ICQQ(QQ) v${require('icqq/package.json').version}` return `