modified: model/Bika.js

This commit is contained in:
yeyang
2023-01-31 00:13:08 +08:00
parent d09e03265a
commit db1f3b7bc5
7 changed files with 77 additions and 79 deletions

View File

@@ -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 () {

View File

@@ -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}」的加群申请通知`)
}
}

View File

@@ -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秒)哦ε(*´・ω・)з')

View File

@@ -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 ? '精确' : '模糊'}匹配`)
}
}

View File

@@ -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)

View File

@@ -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 () {

View File

@@ -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}`
},
{