From db1f3b7bc565eb13ed6c369d73b6e02480542271 Mon Sep 17 00:00:00 2001 From: yeyang <746659424@qq.com> Date: Tue, 31 Jan 2023 00:13:08 +0800 Subject: [PATCH] modified: model/Bika.js --- apps/bika.js | 2 +- apps/gp_admin.js | 65 ++++++++++++++++++++------------------------ apps/groupverify.js | 23 ++++++---------- apps/set.js | 25 ++++++----------- apps/setu.js | 6 ++-- components/Config.js | 29 ++++++++++++++++---- model/Bika.js | 6 ++-- 7 files changed, 77 insertions(+), 79 deletions(-) diff --git a/apps/bika.js b/apps/bika.js index 71d41b3..d501e65 100644 --- a/apps/bika.js +++ b/apps/bika.js @@ -8,7 +8,7 @@ const SWITCH_ERROR = '主人没有开放这个功能哦(*/ω\*)' const numReg = '[一壹二两三四五六七八九十百千万亿\\d]+' const Prefix = '(bika|哔咔)' // 命令正则 -const searchReg = new RegExp(`^#?${Prefix}(类别|作者)?搜索(.*?)(第(${numReg})页)?$`) +const searchReg = new RegExp(`^#?${Prefix}(类别|作者|高级)?搜索(.*?)(第(${numReg})页)?$`) const comicPageReg = new RegExp(`^#?${Prefix}id(.*?)(第(${numReg})页)?$`) export class newBika extends plugin { constructor () { diff --git a/apps/gp_admin.js b/apps/gp_admin.js index 67f8b28..644b377 100644 --- a/apps/gp_admin.js +++ b/apps/gp_admin.js @@ -1,7 +1,7 @@ import plugin from '../../../lib/plugins/plugin.js' import { segment } from 'oicq' import lodash from 'lodash' -import { Config, YamlReader } from '../components/index.js' +import { Config } from '../components/index.js' import { GroupAdmin as ga, common, QQInterface, puppeteer, CronValidate } from '../model/index.js' import moment from 'moment' @@ -478,10 +478,10 @@ export class Basics extends plugin { let { info } = Member msg.push([ segment.image(`https://q1.qlogo.cn/g?b=qq&s=100&nk=${info.user_id}`), - `\n昵称:${info.card || info.nickname}\n`, - `QQ:${info.user_id}\n`, - `群身份:${common.ROLE_MAP[info.role]}\n`, - `禁言剩余时间:${common.getsecondformat(Member.mute_left)}` + `\n昵称:${info.card || info.nickname}\n`, + `QQ:${info.user_id}\n`, + `群身份:${common.ROLE_MAP[info.role]}\n`, + `禁言剩余时间:${common.getsecondformat(Member.mute_left)}` ]) } common.getforwardMsg(e, msg) @@ -619,9 +619,9 @@ export class Basics extends plugin { let res = await QQInterface.dragon(e.group_id) if (!res) return e.reply(API_ERROR) e.reply([ - `本群龙王:${res.nick}`, - segment.image(`https://q1.qlogo.cn/g?b=qq&s=100&nk=${res.uin}`), - `蝉联天数:${res.avatar_size}` + `本群龙王:${res.nick}`, + segment.image(`https://q1.qlogo.cn/g?b=qq&s=100&nk=${res.uin}`), + `蝉联天数:${res.avatar_size}` ]) } @@ -642,9 +642,9 @@ export class Basics extends plugin { let str = '⭐' str = str.repeat(uiGroupLevel) e.reply([ - `群名:${group_name}\n`, - `群号:${group_uin}\n`, - `群星级:${str}` + `群名:${group_name}\n`, + `群号:${group_uin}\n`, + `群星级:${str}` ]) } @@ -664,7 +664,7 @@ export class Basics extends plugin { if (!res) return e.reply(API_ERROR) if (res.retcode != 0) return e.reply('❎ 未知错误\n' + JSON.stringify(res)) let msg = lodash.take(res.data.speakRank.map((item, index) => - `${index + 1}:${item.nickname}-${item.uin}\n连续活跃${item.active}天:发言${item.msgCount}次` + `${index + 1}:${item.nickname}-${item.uin}\n连续活跃${item.active}天:发言${item.msgCount}次` ), 10).join('\n') e.reply(msg) } @@ -745,17 +745,17 @@ export class Basics extends plugin { let { groupInfo, activeData, msgInfo, joinData, exitData, applyData } = res.data e.reply( [ - `${groupInfo.groupName}(${groupInfo.groupCode})${/(7|七)天/.test(e.msg) ? '七天' : '昨天'}的群数据\n`, - '------------消息条数---------\n', - `消息条数:${msgInfo.total}\n`, - '------------活跃人数---------\n', - `活跃人数:${activeData.activeData}\n`, - `总人数:${activeData.groupMember}\n`, - `活跃比例:${activeData.ratio}%\n`, - '-----------加退群人数--------\n', - `申请人数:${joinData.total}\n`, - `入群人数:${applyData.total}\n`, - `退群人数:${exitData.total}\n` + `${groupInfo.groupName}(${groupInfo.groupCode})${/(7|七)天/.test(e.msg) ? '七天' : '昨天'}的群数据\n`, + '------------消息条数---------\n', + `消息条数:${msgInfo.total}\n`, + '------------活跃人数---------\n', + `活跃人数:${activeData.activeData}\n`, + `总人数:${activeData.groupMember}\n`, + `活跃比例:${activeData.ratio}%\n`, + '-----------加退群人数--------\n', + `申请人数:${joinData.total}\n`, + `入群人数:${applyData.total}\n`, + `退群人数:${exitData.total}\n` ] ) } @@ -763,18 +763,11 @@ export class Basics extends plugin { async handleGroupAdd (e) { if (!e.member.is_admin && !e.member.is_owner && !e.isMaster) return e.reply(PERMISSION_ERROR) if (!e.group.is_admin && !e.group.is_owner) return e.reply(ROLE_ERROR, true) - let path = './plugins/yenai-plugin/config/config/groupAdd.yaml' - let yaml = new YamlReader(path) - let type = /开启/.test(e.msg) - let key = Config.groupAdd.openGroup.indexOf(e.group_id) - console.log(key != -1 && type) - if (key != -1 && type) return e.reply('❎ 本群加群申请通知已处于开启状态') - if (key == -1 && !type) return e.reply('❎ 本群暂未开启加群申请通知') - if (type) { - yaml.addIn('openGroup', e.group_id) - } else { - yaml.delete(`openGroup.${key}`) - } - e.reply(`✅ 已${type ? '开启' : '关闭'}「${e.group_id}」的加群申请通知`) + let type = /开启/.test(e.msg) ? 'add' : 'del' + let isopen = Config.groupAdd.openGroup.includes(e.group_id) + if (isopen && type == 'add') return e.reply('❎ 本群加群申请通知已处于开启状态') + if (!isopen && type == 'del') return e.reply('❎ 本群暂未开启加群申请通知') + Config.modifyarr('groupAdd', 'openGroup', e.group_id, type) + e.reply(`✅ 已${type == 'add' ? '开启' : '关闭'}「${e.group_id}」的加群申请通知`) } } diff --git a/apps/groupverify.js b/apps/groupverify.js index d88a094..545ece8 100644 --- a/apps/groupverify.js +++ b/apps/groupverify.js @@ -1,6 +1,6 @@ import plugin from '../../../lib/plugins/plugin.js' import { segment } from 'oicq' -import { Config, YamlReader } from '../components/index.js' +import { Config } from '../components/index.js' import { common, GroupAdmin as ga } from '../model/index.js' // 全局 let temp = {} @@ -108,17 +108,12 @@ export class NEWCMD extends plugin { if (!e.isMaster && !e.member.is_owner && !e.member.is_admin) return e.reply('❎ 该命令仅限管理员可用', true) if (!e.group.is_admin && !e.group.is_owner) return e.reply('做不到,怎么想我都做不到吧ヽ(≧Д≦)ノ', true) let verifycfg = Config.verifycfg - let type = /开启/.test(e.msg) - let key = verifycfg.openGroup.indexOf(e.group_id) - if (key != -1 && type) return e.reply('❎ 本群验证已处于开启状态') - if (key == -1 && !type) return e.reply('❎ 本群暂未开启验证') - let yaml = new YamlReader(this.verifypath) - if (type) { - yaml.addIn('openGroup', e.group_id) - } else { - yaml.delete(`openGroup.${key}`) - } - e.reply(`✅ 已${type ? '开启' : '关闭'}本群验证`) + let type = /开启/.test(e.msg) ? 'add' : 'del' + let isopen = verifycfg.openGroup.includes(e.group_id) + if (isopen && type == 'add') return e.reply('❎ 本群验证已处于开启状态') + if (!isopen && type == 'del') return e.reply('❎ 本群暂未开启验证') + Config.modifyarr('groupverify', 'openGroup', e.group_id, type) + e.reply(`✅ 已${type == 'add' ? '开启' : '关闭'}本群验证`) } // 切换验证模式 @@ -126,7 +121,7 @@ export class NEWCMD extends plugin { if (!e.isMaster) return e.reply('❎ 该命令仅限主人可用', true) let verifycfg = Config.verifycfg let value = verifycfg.mode == '模糊' ? '精确' : '模糊' - new YamlReader(this.verifypath).set('mode', value) + Config.modify('groupverify', 'mode', value) e.reply(`✅ 已切换验证模式为${value}验证`) } @@ -134,7 +129,7 @@ export class NEWCMD extends plugin { async setovertime (e) { if (!e.isMaster) return e.reply('❎ 该命令仅限主人可用', true) let overtime = e.msg.match(/\d+/g) - new YamlReader(this.verifypath).set('time', Number(overtime)) + Config.modify('groupverify', 'time', Number(overtime)) e.reply(`✅ 已将验证超时时间设置为${overtime}秒`) if (overtime < 60) { e.reply('建议至少一分钟(60秒)哦ε(*´・ω・)з') diff --git a/apps/set.js b/apps/set.js index 9562f57..e5a42a0 100644 --- a/apps/set.js +++ b/apps/set.js @@ -1,7 +1,7 @@ import plugin from '../../../lib/plugins/plugin.js' import fs from 'fs' import lodash from 'lodash' -import { Config, YamlReader } from '../components/index.js' +import { Config } from '../components/index.js' import { setu, puppeteer } from '../model/index.js' const configs = { 好友消息: 'privateMessage', @@ -83,7 +83,6 @@ export class NewConfig extends plugin { } ] }) - this.NoTitlepath = './plugins/yenai-plugin/config/config/Shielding_words.yaml' this.proxykey = 'yenai:proxy' this.proxydef = [ 'i.pixiv.re', @@ -243,13 +242,12 @@ export class NewConfig extends plugin { // 增删查头衔屏蔽词 async NoTitle (e) { - let getdata = new YamlReader(this.NoTitlepath) - let data = getdata.jsonData.Shielding_words + let data = Config.NoTitle.Shielding_words if (/查看/.test(e.msg)) { return e.reply(`现有的头衔屏蔽词如下:${data.join('\n')}`) } let msg = e.msg.replace(/#|(增加|减少)头衔屏蔽词/g, '').trim().split(',') - let type = !!/增加/.test(e.msg) + let type = /增加/.test(e.msg) let no = []; let yes = [] for (let i of msg) { if (data.includes(i)) { @@ -263,7 +261,7 @@ export class NewConfig extends plugin { if (type) { if (!lodash.isEmpty(yes)) { for (let i of yes) { - getdata.addIn('Shielding_words', i) + Config.modifyarr('Shielding_words', 'Shielding_words', i, 'add') } e.reply(`✅ 成功添加:${yes.join(',')}`) } @@ -273,8 +271,7 @@ export class NewConfig extends plugin { } else { if (!lodash.isEmpty(no)) { for (let i of no) { - let index = data.indexOf(i) - getdata.delete('Shielding_words.' + index) + Config.modifyarr('Shielding_words', 'Shielding_words', i, 'del') } e.reply(`✅ 成功删除:${no.join(',')}`) } @@ -286,15 +283,9 @@ export class NewConfig extends plugin { // 修改头衔匹配模式 async NoTitlepattern (e) { - let getdata = new YamlReader(this.NoTitlepath) - let data = getdata.jsonData.Match_pattern - if (data) { - getdata.set('Match_pattern', 0) - e.reply('✅ 已修改匹配模式为精确匹配') - } else { - getdata.set('Match_pattern', 1) - e.reply('✅ 已修改匹配模式为模糊匹配') - } + let data = Config.NoTitle.Match_pattern ? 0 : 1 + Config.modify('Shielding_words', 'Match_pattern', data) + e.reply(`✅ 已修改匹配模式为${data ? '精确' : '模糊'}匹配`) } } diff --git a/apps/setu.js b/apps/setu.js index 93a8ead..c14b26f 100644 --- a/apps/setu.js +++ b/apps/setu.js @@ -23,7 +23,7 @@ export class sese extends plugin { fnc: 'seturd' }, { - reg: `^#(撤回间隔|群(c|C)(d|D))(${NumReg})$`, + reg: `^#(撤回间隔|群(c|C)(d|D))(${NumReg})(s|秒)?$`, fnc: 'setGroupRecallAndCD', event: 'message.group', permission: 'master' @@ -120,8 +120,8 @@ export class sese extends plugin { // 设置群撤回间隔和cd async setGroupRecallAndCD (e) { - let num = e.msg.replace(/#|撤回间隔|群cd/gi, '').trim() - num = common.translateChinaNum(num) + let num = e.msg.match(new RegExp(NumReg)) + num = common.translateChinaNum(num[0]) let type = /撤回间隔/.test(e.msg) setu.setGroupRecallTimeAndCd(e.group_id, num, type) new NewConfig().View_Settings(e) diff --git a/components/Config.js b/components/Config.js index dda370b..ae36437 100644 --- a/components/Config.js +++ b/components/Config.js @@ -131,13 +131,32 @@ class Config { * @description: 修改设置 * @param {String} name 文件名 * @param {String} key 修改的key值 - * @param {*} value 修改的value值 - * @return {Boolean} 返回是否成功写入 + * @param {String|Number} value 修改的value值 + * @param {'config'|'default_config'} type 配置文件或默认 */ - modify (name, key, value) { - let path = `${Plugin_Path}/config/config/${name}.yaml` + modify (name, key, value, type = 'config') { + let path = `${Plugin_Path}/config/${type}/${name}.yaml` new YamlReader(path).set(key, value) - delete this.config[`config.${name}`] + delete this.config[`${type}.${name}`] + } + + /** + * @description: 修改配置数组 + * @param {String} name 文件名 + * @param {String|Number} key key值 + * @param {String|Number} value value + * @param {'add'|'del'} category 类别 add or del + * @param {'config'|'default_config'} type 配置文件或默认 + */ + modifyarr (name, key, value, category = 'add', type = 'config') { + let path = `${Plugin_Path}/config/${type}/${name}.yaml` + let yaml = new YamlReader(path) + if (category == 'add') { + yaml.addIn(key, value) + } else { + let index = yaml.jsonData[key].indexOf(value) + yaml.delete(`${key}.${index}`) + } } async change_picApi () { diff --git a/model/Bika.js b/model/Bika.js index 566dcba..abb5747 100644 --- a/model/Bika.js +++ b/model/Bika.js @@ -26,13 +26,13 @@ export default new (class { * @param {String} keyword 关键词 * @param {Number} page 页数 * @param {'dd'|'da'|'ld'|'vd'} sort dd : 最新发布 da : 最早发布 ld : 最多喜欢 vd : 最多浏览 - * @param {'search'|'category'|'类别'} type search为高级搜索acategory为类别搜索 + * @param {String} type 搜索类型 * @return {Array} */ - async search (keyword, page = 1, type = 'search', sort = 'ld') { + async search (keyword, page = 1, type = 'advanced', sort = 'ld') { let types = [ { - alias: ['关键词', 'search', '高级搜索'], + alias: ['关键词', 'advanced', '高级'], url: `${this.domain}/advanced_search?keyword=${keyword}&page=${page}&sort=${sort}` }, {