统一文案
This commit is contained in:
@@ -4,12 +4,18 @@ import { Cfg, QQInterface, common } from '../model/index.js';
|
||||
import lodash from 'lodash'
|
||||
import moment from 'moment'
|
||||
|
||||
let Qzonedetermine = false;
|
||||
let groupPhotoid = '';
|
||||
/**API请求错误文案 */
|
||||
const API_ERROR = "❎ 出错辣,请稍后重试"
|
||||
|
||||
//命令正则
|
||||
let FriendsReg = new RegExp("#发好友\\s?(\\d+)\\s?(.*)")
|
||||
let GroupmsgReg = new RegExp("#发群聊\\s?(\\d+)\\s?(.*)")
|
||||
let GrouplistmsgReg = new RegExp("#发群列表\\s?(\\d+(,\\d+){0,})\\s?(.*)")
|
||||
let friend_typeReg = new RegExp('^#更改好友申请方式([0123])((.*)\\s(.*))?$')
|
||||
|
||||
//全局变量
|
||||
let Qzonedetermine = false;
|
||||
let groupPhotoid = '';
|
||||
export class example extends plugin {
|
||||
constructor() {
|
||||
super({
|
||||
@@ -581,9 +587,8 @@ export class example extends plugin {
|
||||
if (res.length >= 2) {
|
||||
Cfg.getforwardMsg(e, res)
|
||||
} else {
|
||||
await e.reply(res[0])
|
||||
e.reply(res[0])
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**QQ空间 说说列表*/
|
||||
@@ -600,7 +605,7 @@ export class example extends plugin {
|
||||
//获取说说列表
|
||||
let list = await QQInterface.getQzone(page * 5, 5)
|
||||
|
||||
if (!list) return e.reply("❎ 取说说列表失败")
|
||||
if (!list) return e.reply(API_ERROR)
|
||||
if (list.total == 0) return e.reply(`✅ 说说列表为空`)
|
||||
|
||||
let msg = [
|
||||
@@ -620,14 +625,14 @@ export class example extends plugin {
|
||||
//获取说说列表
|
||||
let list = await QQInterface.getQzone(pos - 1, 1)
|
||||
|
||||
if (!list) return e.reply("❎ 取说说列表失败")
|
||||
if (!list) return e.reply(API_ERROR)
|
||||
if (!list.msglist) return e.reply(`❎ 未获取到该说说`)
|
||||
|
||||
//要删除的说说
|
||||
let domain = list.msglist[0]
|
||||
//请求接口
|
||||
let result = await QQInterface.delQzone(domain.tid, domain.t1_source)
|
||||
if (!result) return e.reply(`❎ 接口请求失败`)
|
||||
if (!result) return e.reply(API_ERROR)
|
||||
//debug
|
||||
logger.debug(`[椰奶删除说说]`, result)
|
||||
|
||||
@@ -642,7 +647,7 @@ export class example extends plugin {
|
||||
if (!e.isMaster) return;
|
||||
let con = e.msg.replace(/#|发说说/g, "").trim()
|
||||
let result = await QQInterface.setQzone(con, e.img)
|
||||
if (!result) return e.reply("❎ 出错辣,请稍后重试")
|
||||
if (!result) return e.reply(API_ERROR)
|
||||
|
||||
if (result.code != 0) return e.reply(`❎ 说说发表失败\n${JSON.stringify(result)}`)
|
||||
|
||||
@@ -769,7 +774,7 @@ export class example extends plugin {
|
||||
async friend_switch(e) {
|
||||
if (!e.isMaster) return
|
||||
let res = await QQInterface.addFriendSwitch(/开启/.test(e.msg) ? 1 : 2)
|
||||
if (!res) return e.reply("接口失效辣(๑ŐдŐ)b")
|
||||
if (!res) return e.reply(API_ERROR)
|
||||
e.reply(res.ActionStatus)
|
||||
}
|
||||
|
||||
@@ -782,7 +787,7 @@ export class example extends plugin {
|
||||
if ((!regRet[3] || !regRet[4]) && regRet[1] == 3) return e.reply("❎ 请正确输入问题和答案!")
|
||||
|
||||
let res = await QQInterface.setFriendType(regRet[1], regRet[3], regRet[4])
|
||||
if (!res) return e.reply("接口失效辣(๑ŐдŐ)b")
|
||||
if (!res) return e.reply(API_ERROR)
|
||||
if (res.ec != 0) return e.reply("❎ 修改失败\n" + JSON.stringify(res))
|
||||
e.reply(res.msg)
|
||||
}
|
||||
@@ -792,7 +797,7 @@ export class example extends plugin {
|
||||
if (!e.isMaster) return;
|
||||
|
||||
let result = await QQInterface.setcyc(/开启/.test(e.msg) ? 0 : 1)
|
||||
if (!result) return e.reply("❎ 接口失效")
|
||||
if (!result) return e.reply(API_ERROR)
|
||||
|
||||
if (result.ret != 0) return e.reply("❎ 未知错误\n" + JSON.stringify(result))
|
||||
e.reply(`✅ 已${/开启/.test(e.msg) ? '开启' : '关闭'}戳一戳功能`)
|
||||
|
||||
48
apps/fun.js
48
apps/fun.js
@@ -4,7 +4,8 @@ import { segment } from "oicq"
|
||||
import lodash from 'lodash'
|
||||
import { Config } from '../components/index.js'
|
||||
import { Cfg, uploadRecord, common, Interface } from '../model/index.js'
|
||||
let heisitype = {
|
||||
|
||||
const heisitype = {
|
||||
"白丝": "baisi",
|
||||
"黑丝": "heisi",
|
||||
"巨乳": "juru",
|
||||
@@ -12,8 +13,13 @@ let heisitype = {
|
||||
"网红": "mcn",
|
||||
"美足": "meizu"
|
||||
}
|
||||
/**API请求错误文案 */
|
||||
const API_ERROR = "❎ 出错辣,请稍后重试"
|
||||
/**未启用文案 */
|
||||
const SWITCH_ERROR = "主人没有开放这个功能哦(*/ω\*)"
|
||||
/**开始执行文案 */
|
||||
const START_Execution = "椰奶产出中......"
|
||||
|
||||
let heisiwreg = new RegExp(`#?来点(${Object.keys(heisitype).join("|")})$`)
|
||||
|
||||
export class example extends plugin {
|
||||
constructor() {
|
||||
@@ -47,7 +53,7 @@ export class example extends plugin {
|
||||
fnc: 'coser'
|
||||
},
|
||||
{
|
||||
reg: heisiwreg,
|
||||
reg: `#?来点(${Object.keys(heisitype).join("|")})$`,
|
||||
fnc: 'heisiwu'
|
||||
},
|
||||
{
|
||||
@@ -198,15 +204,15 @@ export class example extends plugin {
|
||||
//coser
|
||||
async coser(e) {
|
||||
if (!e.isMaster) {
|
||||
if (!Config.getGroup(e.group_id).sese) return e.reply("主人没有开放这个功能哦(*/ω\*)")
|
||||
if (!Config.getGroup(e.group_id).sese) return e.reply(SWITCH_ERROR)
|
||||
}
|
||||
e.reply("椰奶产出中......")
|
||||
e.reply(START_Execution)
|
||||
|
||||
const api = "http://ovooa.com/API/cosplay/api.php"
|
||||
|
||||
let res = await fetch(api).then((res) => res.json()).catch((err) => console.error(err))
|
||||
|
||||
if (!res) return e.reply("接口失效辣(๑ŐдŐ)b")
|
||||
if (!res) return e.reply(API_ERROR)
|
||||
|
||||
res = res.data
|
||||
let item = 1;
|
||||
@@ -225,9 +231,9 @@ export class example extends plugin {
|
||||
//cos/acg搜索
|
||||
async acg(e) {
|
||||
if (!e.isMaster) {
|
||||
if (!Config.getGroup(e.group_id).sese) return e.reply("主人没有开放这个功能哦(*/ω\*)")
|
||||
if (!Config.getGroup(e.group_id).sese) return e.reply(SWITCH_ERROR)
|
||||
}
|
||||
e.reply("椰奶产出中......")
|
||||
e.reply(START_Execution)
|
||||
|
||||
|
||||
let keywords = e.msg.replace(/#|acg/g, "").trim()
|
||||
@@ -251,27 +257,29 @@ export class example extends plugin {
|
||||
//处理图片
|
||||
let imglist = imghtml.match(/<img src=".*?" (style|title)=.*?\/>/g)
|
||||
?.map(item => (!/www.pandadiu.com/.test(item) ? domain : "") + (item.match(/<img src="(.*?)".*/)[1]))
|
||||
?.map(item => segment.image(item)) || ["出错辣"]
|
||||
?.map(item => segment.image(item)) || false
|
||||
if (!imglist) return e.reply(API_ERROR)
|
||||
Cfg.getRecallsendMsg(e, imglist, false)
|
||||
}
|
||||
|
||||
//黑丝
|
||||
async heisiwu(e) {
|
||||
if (!e.isMaster) {
|
||||
if (!Config.getGroup(e.group_id).sesepro) return e.reply("主人没有开放这个功能哦(*/ω\*)")
|
||||
if (!Config.getGroup(e.group_id).sesepro) return e.reply(SWITCH_ERROR)
|
||||
}
|
||||
e.reply("椰奶产出中......")
|
||||
e.reply(START_Execution)
|
||||
//获取类型
|
||||
let types = heisiwreg.exec(e.msg)
|
||||
let types = e.msg.match(/#?来点(.*)/)
|
||||
//请求主页面
|
||||
let url = `http://hs.heisiwu.com/${heisitype[types[1]]}#/page/${lodash.random(1, 20)}`
|
||||
let homePage = await fetch(url).then(res => res.text()).catch(err => console.error(err))
|
||||
if (!homePage) return e.reply("接口失效辣(๑ŐдŐ)b")
|
||||
if (!homePage) return e.reply(API_ERROR)
|
||||
//解析html
|
||||
let childPageUrlList = homePage.match(/<a target(.*?)html/g);
|
||||
let childPageUrl = lodash.sample(childPageUrlList).match(/href="(.*)/)
|
||||
//请求图片页面
|
||||
let childPage = await fetch(childPageUrl[1]).then(res => res.text()).catch(err => console.error(err))
|
||||
if (!childPage) return e.reply("接口失效辣(๑ŐдŐ)b")
|
||||
if (!childPage) return e.reply(API_ERROR)
|
||||
//获取html列表
|
||||
let imghtml = childPage.match(/<img loading(.*?)jpg/g);
|
||||
//提取图片并转换
|
||||
@@ -289,9 +297,9 @@ export class example extends plugin {
|
||||
//萌堆
|
||||
async mengdui(e) {
|
||||
if (!e.isMaster) {
|
||||
if (!Config.getGroup(e.group_id).sesepro) return e.reply("主人没有开放这个功能哦(*/ω\*)")
|
||||
if (!Config.getGroup(e.group_id).sesepro) return e.reply(SWITCH_ERROR)
|
||||
}
|
||||
e.reply("椰奶产出中......")
|
||||
e.reply(START_Execution)
|
||||
let appoint = e.msg.match(/\d+/g)
|
||||
let random;
|
||||
if (!appoint) {
|
||||
@@ -323,7 +331,7 @@ export class example extends plugin {
|
||||
let msg = e.msg.replace(/#|铃声搜索/g, "")
|
||||
let api = `https://xiaobai.klizi.cn/API/music/lingsheng.php?msg=${msg}&n=1`
|
||||
let res = await fetch(api).then(res => res.json()).catch(err => console.log(err))
|
||||
if (!res) return e.reply("接口失效辣(๑ŐдŐ)b")
|
||||
if (!res) return e.reply(API_ERROR)
|
||||
if (res.title == null && res.author == null) return e.reply("没有找到相关的歌曲哦~", true)
|
||||
|
||||
await e.reply([
|
||||
@@ -336,8 +344,8 @@ export class example extends plugin {
|
||||
async bcy_topic(e) {
|
||||
let api = 'https://xiaobai.klizi.cn/API/other/bcy_topic.php'
|
||||
let res = await fetch(api).then(res => res.json()).catch(err => console.log(err))
|
||||
if (!res) return e.reply("接口失效辣(๑ŐдŐ)b")
|
||||
if (res.code != 200) return e.reply(`请求错误!,错误码:${res.code}`)
|
||||
if (!res) return e.reply(API_ERROR)
|
||||
if (res.code != 200) return e.reply("❎ 出错辣" + JSON.stringify(res))
|
||||
if (lodash.isEmpty(res.data)) return e.reply(`请求错误!无数据,请稍后再试`)
|
||||
let msg = [];
|
||||
for (let i of res.data) {
|
||||
@@ -352,7 +360,7 @@ export class example extends plugin {
|
||||
//api大集合
|
||||
async picture(e) {
|
||||
if (!e.isMaster) {
|
||||
if (!Config.getGroup(e.group_id).sese) return e.reply("主人没有开放这个功能哦(*/ω\*)")
|
||||
if (!Config.getGroup(e.group_id).sese) return e.reply(SWITCH_ERROR)
|
||||
}
|
||||
let key = `yenai:apiAggregate:CD`
|
||||
if (await redis.get(key)) return
|
||||
|
||||
207
apps/gp_admin.js
207
apps/gp_admin.js
@@ -1,19 +1,21 @@
|
||||
import plugin from '../../../lib/plugins/plugin.js'
|
||||
import fetch from 'node-fetch'
|
||||
import { segment } from 'oicq'
|
||||
import lodash from 'lodash'
|
||||
import { Config } from '../components/index.js'
|
||||
import { Cfg, Gpadmin, common, QQInterface, Browser } from '../model/index.js'
|
||||
import moment from 'moment'
|
||||
const ROLE_MAP = {
|
||||
admin: '群管理',
|
||||
owner: '群主',
|
||||
member: '群员'
|
||||
}
|
||||
const Time_unit = common.Time_unit
|
||||
|
||||
|
||||
/**API请求错误文案 */
|
||||
const API_ERROR = "❎ 出错辣,请稍后重试"
|
||||
//无管理文案
|
||||
const ROLE_ERROR = "做不到,怎么想我都做不到吧ヽ(≧Д≦)ノ"
|
||||
|
||||
//正则
|
||||
let Numreg = "[一壹二两三四五六七八九十百千万亿\\d]+"
|
||||
let noactivereg = new RegExp(`^#(查看|清理|确认清理|获取)(${Numreg})个?(年|月|周|天)没发言的人(第(${Numreg})页)?$`)
|
||||
let Autisticreg = new RegExp(`^#?我要(自闭|禅定)(${Numreg})?个?(${Object.keys(Time_unit).join("|")})?$`, "i")
|
||||
let Autisticreg = new RegExp(`^#?我要(自闭|禅定)(${Numreg})?个?(${Object.keys(common.Time_unit).join("|")})?$`, "i")
|
||||
|
||||
export class Basics extends plugin {
|
||||
constructor() {
|
||||
super({
|
||||
@@ -23,43 +25,53 @@ export class Basics extends plugin {
|
||||
rule: [
|
||||
{
|
||||
reg: '^#禁言.*$',
|
||||
fnc: 'Taboo'
|
||||
fnc: 'Taboo',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: '^#解禁.*$',
|
||||
fnc: 'Relieve'
|
||||
fnc: 'Relieve',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: '^#全体(禁言|解禁)$',
|
||||
fnc: 'TabooAll'
|
||||
fnc: 'TabooAll',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: '^#踢(.*)$',
|
||||
fnc: 'Kick'
|
||||
fnc: 'Kick',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: '^#(设置|取消)管理.*$',
|
||||
fnc: 'SetAdmin'
|
||||
fnc: 'SetAdmin',
|
||||
permission: 'master'
|
||||
},
|
||||
{
|
||||
reg: '^#(允许|禁止|开启|关闭)匿名$',
|
||||
fnc: 'AllowAnony'
|
||||
fnc: 'AllowAnony',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: '^#发群公告.*$',
|
||||
fnc: 'AddAnnounce'
|
||||
fnc: 'AddAnnounce',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: '^#删群公告(\\d+)$',
|
||||
fnc: 'DelAnnounce'
|
||||
fnc: 'DelAnnounce',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: '^#查群公告$',
|
||||
fnc: 'GetAnnounce'
|
||||
fnc: 'GetAnnounce',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: '^#修改头衔.*$',
|
||||
fnc: 'adminsetTitle'
|
||||
fnc: 'adminsetTitle',
|
||||
permission: 'master'
|
||||
},
|
||||
{
|
||||
reg: '^#申请头衔.*$',
|
||||
@@ -75,27 +87,27 @@ export class Basics extends plugin {
|
||||
},
|
||||
{
|
||||
reg: '^#替换(幸运)?字符(\\d+)$',
|
||||
fnc: 'qun_luckyuse'
|
||||
fnc: 'qun_luckyuse',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: '^#(开启|关闭)(幸运)?字符$',
|
||||
fnc: 'qun_luckyset'
|
||||
},
|
||||
{
|
||||
reg: '^#今日打卡$',
|
||||
fnc: 'DaySigned'
|
||||
fnc: 'qun_luckyset',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: '^#(获取|查看)?禁言列表$',
|
||||
fnc: 'Mutelist'
|
||||
fnc: 'Mutelist',
|
||||
},
|
||||
{
|
||||
reg: '^#解除全部禁言$',
|
||||
fnc: 'relieveAllMute'
|
||||
fnc: 'relieveAllMute',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: `^#(查看|(确认)?清理)从未发言过?的人(第(${Numreg})页)?$`,
|
||||
fnc: 'neverspeak'
|
||||
fnc: 'neverspeak',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: `^#(查看|获取)?(不活跃|潜水)排行榜(${Numreg})?$`,
|
||||
@@ -105,18 +117,25 @@ export class Basics extends plugin {
|
||||
reg: `^#(查看|获取)?最近的?入群(情况|记录)(${Numreg})?$`,
|
||||
fnc: 'RankingList'
|
||||
},
|
||||
{
|
||||
reg: noactivereg,//清理多久没发言的人
|
||||
fnc: 'noactive',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: `^#发通知.*$`,
|
||||
fnc: 'Send_notice'
|
||||
fnc: 'Send_notice',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: `(^#定时禁言(.*)解禁(.*)$)|(^#定时禁言任务$)|(^#取消定时禁言$)`,
|
||||
fnc: 'timeMute',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: `^#(查看|获取)?群?发言榜单((7|七)天)?`,
|
||||
fnc: 'SpeakRank'
|
||||
},
|
||||
{
|
||||
reg: `(^#定时禁言(.*)解禁(.*)$)|(^#定时禁言任务$)|(^#取消定时禁言$)`,
|
||||
fnc: 'timeMute'
|
||||
},
|
||||
{
|
||||
reg: "^#?(谁|哪个吊毛|哪个屌毛|哪个叼毛)是龙王$",
|
||||
fnc: 'dragonKing'
|
||||
@@ -126,12 +145,12 @@ export class Basics extends plugin {
|
||||
fnc: 'Group_xj'
|
||||
},
|
||||
{
|
||||
reg: Autisticreg,//我要自闭
|
||||
fnc: 'Autistic'
|
||||
reg: '^#今日打卡$',
|
||||
fnc: 'DaySigned'
|
||||
},
|
||||
{
|
||||
reg: noactivereg,//清理多久没发言的人
|
||||
fnc: 'noactive'
|
||||
reg: Autisticreg,//我要自闭
|
||||
fnc: 'Autistic'
|
||||
},
|
||||
]
|
||||
})
|
||||
@@ -161,11 +180,7 @@ export class Basics extends plugin {
|
||||
|
||||
//判断是否有管理
|
||||
if (!e.group.is_admin && !e.group.is_owner) {
|
||||
return e.reply("做不到,怎么想我都做不到吧ヽ(≧Д≦)ノ", true);
|
||||
}
|
||||
|
||||
if (!e.isMaster && !e.member.is_owner && !e.member.is_admin) {
|
||||
return e.reply("❎ 该命令仅限管理员可用", true);
|
||||
return e.reply(ROLE_ERROR, true);
|
||||
}
|
||||
|
||||
let qq;
|
||||
@@ -243,11 +258,7 @@ export class Basics extends plugin {
|
||||
async Relieve(e) {
|
||||
//判断是否有管理
|
||||
if (!e.group.is_admin && !e.group.is_owner) {
|
||||
return e.reply("做不到,怎么想我都做不到吧ヽ(≧Д≦)ノ", true);
|
||||
}
|
||||
|
||||
if (!e.isMaster && !e.member.is_owner && !e.member.is_admin) {
|
||||
return e.reply("❎ 该命令仅限管理员可用", true);
|
||||
return e.reply(ROLE_ERROR, true);
|
||||
}
|
||||
|
||||
let qq = e.msg.replace(/#|解禁/g, "").trim();
|
||||
@@ -273,10 +284,7 @@ export class Basics extends plugin {
|
||||
async TabooAll(e) {
|
||||
//判断是否有管理
|
||||
if (!e.group.is_admin && !e.group.is_owner) {
|
||||
return e.reply("做不到,怎么想我都做不到吧ヽ(≧Д≦)ノ", true);
|
||||
}
|
||||
if (!e.isMaster && !e.member.is_owner && !e.member.is_admin) {
|
||||
return e.reply("❎ 该命令仅限管理员可用", true);
|
||||
return e.reply(ROLE_ERROR, true);
|
||||
}
|
||||
|
||||
let type = false;
|
||||
@@ -299,11 +307,9 @@ export class Basics extends plugin {
|
||||
async Kick(e) {
|
||||
// 判断是否有管理
|
||||
if (!e.group.is_admin && !e.group.is_owner) {
|
||||
return e.reply("做不到,怎么想我都做不到吧ヽ(≧Д≦)ノ", true);
|
||||
}
|
||||
if (!e.isMaster && !e.member.is_owner && !e.member.is_admin) {
|
||||
return e.reply("❎ 该命令仅限管理员可用", true);
|
||||
return e.reply(ROLE_ERROR, true);
|
||||
}
|
||||
|
||||
let qq = e.msg.replace(/#|踢/g, "").trim()
|
||||
|
||||
if (e.message.length != 1) {
|
||||
@@ -339,14 +345,14 @@ export class Basics extends plugin {
|
||||
//判断是否有管理
|
||||
if (!e.group.is_admin && !e.group.is_owner) return
|
||||
|
||||
if (e.member.is_admin || e.member.is_owner || e.isMaster)
|
||||
return e.reply("别自闭啦~~", true)
|
||||
if (e.isMaster) return e.reply("别自闭啦~~", true)
|
||||
if (e.member.is_admin && !e.group.is_owner) return e.reply("别自闭啦~~", true)
|
||||
//解析正则
|
||||
let regRet = Autisticreg.exec(e.msg)
|
||||
// 获取数字
|
||||
let TabooTime = common.translateChinaNum(regRet[2] || 5)
|
||||
|
||||
let Company = Time_unit[lodash.toUpper(regRet[3]) || "分"]
|
||||
let Company = common.Time_unit[lodash.toUpper(regRet[3]) || "分"]
|
||||
|
||||
await e.group.muteMember(e.user_id, TabooTime * Company);
|
||||
e.reply(`那我就不手下留情了~`, true);
|
||||
@@ -356,10 +362,7 @@ export class Basics extends plugin {
|
||||
|
||||
//设置管理
|
||||
async SetAdmin(e) {
|
||||
|
||||
if (!e.group.is_owner) return e.reply("呜呜呜,人家做不到>_<", true)
|
||||
|
||||
if (!e.isMaster) return e.reply("❎ 该命令仅限主人可用", true);
|
||||
if (!e.group.is_owner) return e.reply(ROLE_ERROR, true)
|
||||
|
||||
let qq
|
||||
let yes = false
|
||||
@@ -392,13 +395,9 @@ export class Basics extends plugin {
|
||||
|
||||
//匿名
|
||||
async AllowAnony(e) {
|
||||
|
||||
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);
|
||||
return e.reply(ROLE_ERROR, true);
|
||||
}
|
||||
let yes = false
|
||||
if (/(允许|开启)匿名/.test(e.msg)) {
|
||||
@@ -422,11 +421,7 @@ export class Basics extends plugin {
|
||||
async AddAnnounce(e) {
|
||||
//判断是否有管理
|
||||
if (!e.group.is_admin && !e.group.is_owner) {
|
||||
return e.reply("做不到,怎么想我都做不到吧ヽ(≧Д≦)ノ", true);
|
||||
}
|
||||
//判断权限
|
||||
if (!e.isMaster && !e.member.is_owner && !e.member.is_admin) {
|
||||
return e.reply("❎ 该命令仅限管理员可用", true);
|
||||
return e.reply(ROLE_ERROR, true);
|
||||
}
|
||||
//获取发送的内容
|
||||
let msg = e.msg.replace(/#|发群公告/g, "").trim()
|
||||
@@ -434,31 +429,28 @@ export class Basics extends plugin {
|
||||
|
||||
let result = await QQInterface.setAnnounce(e.group_id, msg)
|
||||
|
||||
if (!result) return e.reply("❎ 出错辣,请稍后重试");
|
||||
if (!result) return e.reply(API_ERROR);
|
||||
if (result.ec != 0) {
|
||||
e.reply("❎ 发送失败\n" + JSON.stringify(result, null, '\t'))
|
||||
}
|
||||
}
|
||||
//查群公告
|
||||
async GetAnnounce(e) {
|
||||
if (!e.isMaster && !e.member.is_owner && !e.member.is_admin) {
|
||||
return e.reply("❎ 该命令仅限管理员可用", true);
|
||||
}
|
||||
let res = await QQInterface.getAnnouncelist(e.group_id)
|
||||
if (!res) return e.reply("❎ 出错辣,请稍后重试");
|
||||
if (!res) return e.reply(API_ERROR);
|
||||
return e.reply(res)
|
||||
}
|
||||
//删群公告
|
||||
async DelAnnounce(e) {
|
||||
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(ROLE_ERROR, true);
|
||||
}
|
||||
|
||||
let msg = e.msg.replace(/#|删群公告/, "").trim()
|
||||
if (!msg) return e.reply(`❎ 序号不可为空`)
|
||||
|
||||
let result = await QQInterface.delAnnounce(e.group_id, msg)
|
||||
if (!result) return e.reply("❎ 出错辣,请稍后重试");
|
||||
if (!result) return e.reply(API_ERROR);
|
||||
|
||||
if (result.ec == 0) {
|
||||
e.reply(`✅ 已删除「${result.text}」`)
|
||||
@@ -474,11 +466,7 @@ export class Basics extends plugin {
|
||||
|
||||
if (e.message[1].type != 'at') return
|
||||
|
||||
if (!e.group.is_owner) return e.reply("做不到,怎么想我都做不到吧ヽ(≧Д≦)ノ", true)
|
||||
|
||||
if (!e.isMaster) {
|
||||
return e.reply("❎ 该命令仅限主人可用", true);
|
||||
}
|
||||
if (!e.group.is_owner) return e.reply(ROLE_ERROR, true)
|
||||
|
||||
let res = await e.group.setTitle(e.message[1].qq, e.message[2].text)
|
||||
if (res) {
|
||||
@@ -498,7 +486,7 @@ export class Basics extends plugin {
|
||||
"啾咪٩(๑•̀ω•́๑)۶",
|
||||
"弃旧恋新了么笨蛋( 。ớ ₃ờ)ھ"
|
||||
]
|
||||
if (!e.group.is_owner) return e.reply("做不到,怎么想我都做不到吧ヽ(≧Д≦)ノ", true)
|
||||
if (!e.group.is_owner) return false;
|
||||
|
||||
let Title = e.msg.replace(/#|申请头衔/g, "")
|
||||
//屏蔽词处理
|
||||
@@ -526,7 +514,7 @@ export class Basics extends plugin {
|
||||
//字符列表
|
||||
async qun_luckylist(e) {
|
||||
let data = await QQInterface.luckylist(e.group_id)
|
||||
if (!data) return e.reply('❎ 接口出现错误')
|
||||
if (!data) return e.reply(API_ERROR)
|
||||
if (data.retcode != 0) return e.reply('❎ 获取数据失败\n' + JSON.stringify(data))
|
||||
|
||||
let msg = data.data.word_list.map((item, index) => {
|
||||
@@ -539,7 +527,7 @@ export class Basics extends plugin {
|
||||
async qun_lucky(e) {
|
||||
let res = await QQInterface.drawLucky(e.group_id);
|
||||
|
||||
if (!res) return e.reply('❎ 接口出现错误')
|
||||
if (!res) return e.reply(API_ERROR)
|
||||
if (res.retcode == 11004) return e.reply("今天已经抽过辣,明天再来抽取吧");
|
||||
if (res.retcode != 0) return e.reply('❎ 错误\n' + JSON.stringify(data))
|
||||
|
||||
@@ -554,23 +542,20 @@ export class Basics extends plugin {
|
||||
async qun_luckyuse(e) {
|
||||
//判断是否有管理
|
||||
if (!e.group.is_admin && !e.group.is_owner) {
|
||||
return e.reply("做不到,怎么想我都做不到吧ヽ(≧Д≦)ノ", true);
|
||||
return e.reply(ROLE_ERROR, true);
|
||||
}
|
||||
let id = e.msg.replace(/#|替换(幸运)?字符/g, "");
|
||||
let res = await QQInterface.equipLucky(e.group_id, id)
|
||||
|
||||
if (!res) return e.reply('❎ 接口出现错误')
|
||||
if (!res) return e.reply(API_ERROR)
|
||||
if (res.retcode != 0) return e.reply('❎替换失败\n' + JSON.stringify(res));
|
||||
e.reply('✅ OK')
|
||||
}
|
||||
|
||||
//开启或关闭群字符
|
||||
async qun_luckyset(e) {
|
||||
if (!e.isMaster && !e.member.is_owner && !e.member.is_admin) {
|
||||
return e.reply("❎ 该命令仅限管理员可用", true);
|
||||
}
|
||||
let res = await QQInterface.swichLucky(e.group_id, /开启/.test(e.msg))
|
||||
if (!res) return e.reply('❎ 接口出现错误')
|
||||
if (!res) return e.reply(API_ERROR)
|
||||
|
||||
if (res.retcode == 11111) return e.reply("❎ 重复开启或关闭")
|
||||
if (res.retcode != 0) return e.reply('❎ 错误\n' + JSON.stringify(res));
|
||||
@@ -579,9 +564,6 @@ export class Basics extends plugin {
|
||||
|
||||
//获取禁言列表
|
||||
async Mutelist(e) {
|
||||
if (!e.isMaster && !e.member.is_owner && !e.member.is_admin) {
|
||||
return e.reply("❎ 该命令仅限管理员可用", true);
|
||||
}
|
||||
let mutelist = await Gpadmin.getMuteList(e)
|
||||
if (!mutelist) return e.reply("还没有人被禁言欸(O∆O)")
|
||||
let msg = [];
|
||||
@@ -592,7 +574,7 @@ export class Basics extends plugin {
|
||||
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`,
|
||||
`群身份:${ROLE_MAP[info.role]}\n`,
|
||||
`群身份:${common.ROLE_MAP[info.role]}\n`,
|
||||
`禁言剩余时间:${Cfg.getsecondformat(Member.mute_left)}`
|
||||
])
|
||||
}
|
||||
@@ -603,10 +585,7 @@ export class Basics extends plugin {
|
||||
async relieveAllMute(e) {
|
||||
//判断是否有管理
|
||||
if (!e.group.is_admin && !e.group.is_owner) {
|
||||
return e.reply("做不到,怎么想我都做不到吧ヽ(≧Д≦)ノ", true);
|
||||
}
|
||||
if (!e.isMaster && !e.member.is_owner && !e.member.is_admin) {
|
||||
return e.reply("❎ 该命令仅限管理员可用", true);
|
||||
return e.reply(ROLE_ERROR, true);
|
||||
}
|
||||
let mutelist = await Gpadmin.getMuteList(e)
|
||||
if (!mutelist) return e.reply("都没有人被禁言我怎么解的辣\(`Δ’)/")
|
||||
@@ -619,15 +598,12 @@ export class Basics extends plugin {
|
||||
|
||||
//查看和清理多久没发言的人
|
||||
async noactive(e) {
|
||||
if (!e.isMaster && !e.member.is_owner) {
|
||||
return e.reply("❎ 该命令仅限群主和主人可用", true);
|
||||
}
|
||||
let Reg = noactivereg.exec(e.msg)
|
||||
Reg[2] = common.translateChinaNum(Reg[2] || 1)
|
||||
//确认清理直接执行
|
||||
if (Reg[1] == "确认清理") {
|
||||
if (!e.group.is_admin && !e.group.is_owner) {
|
||||
return e.reply("做不到,怎么想我都做不到吧ヽ(≧Д≦)ノ", true);
|
||||
return e.reply(ROLE_ERROR, true);
|
||||
}
|
||||
return Gpadmin.getclearnoactive(e, Reg[2], Reg[3])
|
||||
}
|
||||
@@ -638,7 +614,7 @@ export class Basics extends plugin {
|
||||
//清理
|
||||
if (Reg[1] == "清理") {
|
||||
if (!e.group.is_admin && !e.group.is_owner) {
|
||||
return e.reply("做不到,怎么想我都做不到吧ヽ(≧Д≦)ノ", true);
|
||||
return e.reply(ROLE_ERROR, true);
|
||||
}
|
||||
let list = await Gpadmin.noactivelist(e, Reg[2], Reg[3])
|
||||
|
||||
@@ -649,15 +625,12 @@ export class Basics extends plugin {
|
||||
|
||||
//查看和清理从未发言的人
|
||||
async neverspeak(e) {
|
||||
if (!e.isMaster && !e.member.is_owner) {
|
||||
return e.reply("❎ 该命令仅限群主和主人可用", true);
|
||||
}
|
||||
let list = await Gpadmin.getneverspeak(e)
|
||||
if (!list) return
|
||||
//确认清理直接执行
|
||||
if (/^#?确认清理/.test(e.msg)) {
|
||||
if (!e.group.is_admin && !e.group.is_owner) {
|
||||
return e.reply("做不到,怎么想我都做不到吧ヽ(≧Д≦)ノ", true);
|
||||
return e.reply(ROLE_ERROR, true);
|
||||
}
|
||||
let removelist = list.map(item => item.user_id)
|
||||
let msg = await Gpadmin.getkickMember(e, removelist)
|
||||
@@ -666,7 +639,7 @@ export class Basics extends plugin {
|
||||
//清理
|
||||
if (/^#?清理/.test(e.msg)) {
|
||||
if (!e.group.is_admin && !e.group.is_owner) {
|
||||
return e.reply("做不到,怎么想我都做不到吧ヽ(≧Д≦)ノ", true);
|
||||
return e.reply(ROLE_ERROR, true);
|
||||
}
|
||||
e.reply(`本此共需清理「${list.length}」人,防止误触发\n请发送:#确认清理从未发言的人`)
|
||||
}
|
||||
@@ -692,10 +665,7 @@ export class Basics extends plugin {
|
||||
//发送通知
|
||||
async Send_notice(e) {
|
||||
if (!e.group.is_admin && !e.group.is_owner) {
|
||||
return e.reply("做不到,怎么想我都做不到吧ヽ(≧Д≦)ノ", true);
|
||||
}
|
||||
if (!e.isMaster && !e.member.is_owner && !e.member.is_admin) {
|
||||
return e.reply("❎ 该命令仅限管理员可用", true);
|
||||
return e.reply(ROLE_ERROR, true);
|
||||
}
|
||||
e.message[0].text = e.message[0].text.replace("#发通知", "").trim()
|
||||
if (!e.message[0].text) e.message.shift()
|
||||
@@ -707,7 +677,6 @@ export class Basics extends plugin {
|
||||
|
||||
//设置定时群禁言
|
||||
async timeMute(e) {
|
||||
if (!e.isMaster) return false
|
||||
if (/任务/.test(e.msg)) {
|
||||
let task = await redis.keys('Yunzai:yenai:Taboo:*')
|
||||
if (!task.length) return e.reply('目前还没有定时禁言任务')
|
||||
@@ -727,7 +696,7 @@ export class Basics extends plugin {
|
||||
return true
|
||||
}
|
||||
if (!e.group.is_admin && !e.group.is_owner) {
|
||||
return e.reply("做不到,怎么想我都做不到吧ヽ(≧Д≦)ノ", true);
|
||||
return e.reply(ROLE_ERROR, true);
|
||||
}
|
||||
try {
|
||||
var muteTime = e.msg.match(/禁言(\d+):(\d+)/)[0].replace(/禁言/g, '')
|
||||
@@ -785,7 +754,7 @@ export class Basics extends plugin {
|
||||
//群发言榜单
|
||||
async SpeakRank(e) {
|
||||
if (!e.group.is_admin && !e.group.is_owner) {
|
||||
return e.reply("做不到,怎么想我都做不到吧ヽ(≧Д≦)ノ", true);
|
||||
return e.reply(ROLE_ERROR, true);
|
||||
}
|
||||
//图片截图
|
||||
let url = `https://qun.qq.com/m/qun/activedata/speaking.html?gc=${e.group_id}&time=${/(7|七)天/.test(e.msg) ? 1 : 0}&_wv=3&&_wwv=128`
|
||||
|
||||
@@ -15,27 +15,33 @@ export class NEWCMD extends plugin {
|
||||
rule: [
|
||||
{
|
||||
reg: '^#重新验证.*$',
|
||||
fnc: 'cmdReverify'
|
||||
fnc: 'cmdReverify',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: '^#绕过验证.*$',
|
||||
fnc: 'cmdPass'
|
||||
fnc: 'cmdPass',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: '^#开启验证$',
|
||||
fnc: 'openverify'
|
||||
fnc: 'openverify',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: '^#关闭验证$',
|
||||
fnc: 'closeverify'
|
||||
fnc: 'closeverify',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: '^#切换验证模式$',
|
||||
fnc: 'setmode'
|
||||
fnc: 'setmode',
|
||||
permission: 'master'
|
||||
},
|
||||
{
|
||||
reg: '^#设置验证超时时间(\\d+)(s|秒)?$',
|
||||
fnc: 'setovertime'
|
||||
fnc: 'setovertime',
|
||||
permission: 'master'
|
||||
}
|
||||
]
|
||||
})
|
||||
@@ -52,8 +58,6 @@ export class NEWCMD extends plugin {
|
||||
|
||||
if (!verifycfg.openGroup.includes(e.group_id)) return e.reply("当前群未开启验证哦~", true);
|
||||
|
||||
if (!e.isMaster && !e.member.is_owner && !e.member.is_admin) return e.reply("❎ 该命令仅限管理员可用", true);
|
||||
|
||||
let qq = e.msg.replace(/#|重新验证/g, "").trim();
|
||||
|
||||
if (e.message.length != 1) {
|
||||
@@ -79,8 +83,6 @@ export class NEWCMD extends plugin {
|
||||
|
||||
if (!verifycfg.openGroup.includes(e.group_id)) return e.reply("当前群未开启验证哦~", true);
|
||||
|
||||
if (!e.isMaster && !e.member.is_owner && !e.member.is_admin) return e.reply("❎ 该命令仅限管理员可用", true);
|
||||
|
||||
let qq = e.msg.replace(/#|绕过验证/g, "").trim();
|
||||
|
||||
if (e.message.length != 1) {
|
||||
@@ -105,7 +107,6 @@ export class NEWCMD extends plugin {
|
||||
|
||||
//开启验证
|
||||
async openverify(e) {
|
||||
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
|
||||
if (verifycfg.openGroup.indexOf(e.group_id) != -1) return e.reply("❎ 本群验证已处于开启状态")
|
||||
@@ -115,7 +116,6 @@ export class NEWCMD extends plugin {
|
||||
|
||||
//关闭验证
|
||||
async closeverify(e) {
|
||||
if (!e.isMaster && !e.member.is_owner && !e.member.is_admin) return e.reply("❎ 该命令仅限管理员可用", true);
|
||||
let verifycfg = Config.verifycfg
|
||||
let key = verifycfg.openGroup.indexOf(e.group_id)
|
||||
if (key == -1) return e.reply("❎ 本群暂未开启验证")
|
||||
@@ -124,7 +124,6 @@ export class NEWCMD extends plugin {
|
||||
}
|
||||
//切换验证模式
|
||||
async setmode(e) {
|
||||
if (!e.isMaster) return e.reply("❎ 该命令仅限主人可用", true);
|
||||
let verifycfg = Config.verifycfg
|
||||
let value = verifycfg.mode == "模糊" ? "精确" : "模糊"
|
||||
new YamlReader(this.verifypath).set(`mode`, value)
|
||||
@@ -132,7 +131,6 @@ 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))
|
||||
e.reply(`✅ 已将验证超时时间设置为${overtime}秒`)
|
||||
|
||||
@@ -17,31 +17,42 @@ export class anotice extends plugin {
|
||||
rule: [
|
||||
{
|
||||
reg: '^#?(同意|拒绝)$',
|
||||
fnc: 'agrees'
|
||||
fnc: 'agrees',
|
||||
permission: 'master',
|
||||
event: 'message.private',
|
||||
},
|
||||
{
|
||||
reg: '^#?回复.*$',
|
||||
fnc: 'Replys'
|
||||
fnc: 'Replys',
|
||||
permission: 'master',
|
||||
event: 'message.private',
|
||||
},
|
||||
{
|
||||
reg: '^#?(同意|拒绝|查看)(全部)?好友申请(\\d+)?$',
|
||||
fnc: 'agreesAll'
|
||||
fnc: 'agreesAll',
|
||||
permission: 'master',
|
||||
},
|
||||
{
|
||||
reg: '^#?(加为|添加)好友$',
|
||||
fnc: 'addFriend'
|
||||
fnc: 'addFriend',
|
||||
permission: 'master',
|
||||
event: 'message.private',
|
||||
},
|
||||
{
|
||||
reg: '^#?(同意|拒绝|查看)(全部)?(加|入)?群申请(\\d+)?$',
|
||||
fnc: 'GroupAdd'
|
||||
fnc: 'GroupAdd',
|
||||
permission: 'admin',
|
||||
event: 'message.group',
|
||||
},
|
||||
{
|
||||
reg: '^#?(同意|拒绝|查看)(全部)?群邀请(\\d+)?$',
|
||||
fnc: 'GroupInvite'
|
||||
fnc: 'GroupInvite',
|
||||
permission: 'master',
|
||||
},
|
||||
{
|
||||
reg: '^#?查看全部请求$',
|
||||
fnc: 'SystemMsgAll'
|
||||
fnc: 'SystemMsgAll',
|
||||
permission: 'master',
|
||||
}
|
||||
]
|
||||
})
|
||||
@@ -49,7 +60,6 @@ export class anotice extends plugin {
|
||||
|
||||
/** 同意好友申请 */
|
||||
async agree(e) {
|
||||
if (!e.isMaster) return
|
||||
let yes = /同意/.test(e.msg) ? true : false
|
||||
let qq = e.message[0].text.replace(/#|(同意|拒绝)好友申请/g, '').trim()
|
||||
if (e.message[1]) {
|
||||
@@ -71,7 +81,6 @@ export class anotice extends plugin {
|
||||
|
||||
/**同意拒绝全部好友申请 */
|
||||
async agreesAll(e) {
|
||||
if (!e.isMaster) return
|
||||
|
||||
let yes = /同意/.test(e.msg) ? true : false
|
||||
|
||||
@@ -137,9 +146,7 @@ export class anotice extends plugin {
|
||||
}
|
||||
/** 引用同意好友申请和群邀请 */
|
||||
async agrees(e) {
|
||||
if (!e.isMaster) return
|
||||
if (!e.source) return
|
||||
if (!e.isPrivate) return
|
||||
let yes = /同意/.test(e.msg) ? true : false
|
||||
let source = (await e.friend.getChatHistory(e.source.time, 1)).pop()
|
||||
|
||||
@@ -193,8 +200,6 @@ export class anotice extends plugin {
|
||||
|
||||
// 回复好友消息
|
||||
async Replys(e) {
|
||||
if (!e.isMaster) return
|
||||
if (!e.isPrivate) return
|
||||
let qq = '';
|
||||
let group = '';
|
||||
let msgs = e.message[0].text.split(' ')
|
||||
@@ -251,9 +256,7 @@ export class anotice extends plugin {
|
||||
|
||||
//加群员为好友
|
||||
async addFriend(e) {
|
||||
if (!e.isMaster) return
|
||||
if (!e.source) return
|
||||
if (!e.isPrivate) return
|
||||
let source = (await e.friend.getChatHistory(e.source.time, 1)).pop()
|
||||
let msg = source.raw_message.split('\n')
|
||||
if (!/临时消息/.test(msg[0]) || !/来源群号/.test(msg[1]) || !/发送人QQ/.test(msg[2])) return
|
||||
@@ -269,8 +272,6 @@ export class anotice extends plugin {
|
||||
|
||||
//入群请求
|
||||
async GroupAdd(e) {
|
||||
if (!e.isGroup) return e.reply("请在群聊使用此命令哦~")
|
||||
|
||||
let SystemMsg = (await Bot.getSystemMsg())
|
||||
.filter(item => item.request_type == "group" && item.sub_type == "add" && item.group_id == e.group_id)
|
||||
if (lodash.isEmpty(SystemMsg)) return e.reply("暂无加群申请(。-ω-)zzz", true)
|
||||
@@ -338,7 +339,6 @@ export class anotice extends plugin {
|
||||
}
|
||||
//群邀请列表
|
||||
async GroupInvite(e) {
|
||||
if (!e.isMaster) return e.reply("❎ 该命令仅限主人可用", true);
|
||||
let SystemMsg = (await Bot.getSystemMsg()).filter(item => item.request_type == "group" && item.sub_type == "invite")
|
||||
if (lodash.isEmpty(SystemMsg)) return e.reply("暂无群邀请哦(。-ω-)zzz", true)
|
||||
//查看
|
||||
@@ -395,7 +395,6 @@ export class anotice extends plugin {
|
||||
}
|
||||
//全部请求
|
||||
async SystemMsgAll(e) {
|
||||
if (!e.isMaster) return e.reply("❎ 该命令仅限主人可用", true);
|
||||
let SystemMsg = await Bot.getSystemMsg()
|
||||
let FriendAdd = [], onewayFriend = [], GroupAdd = [], GroupInvite = []
|
||||
for (let i of SystemMsg) {
|
||||
|
||||
30
apps/set.js
30
apps/set.js
@@ -44,35 +44,43 @@ export class NewConfig extends plugin {
|
||||
rule: [
|
||||
{
|
||||
reg: managereg,
|
||||
fnc: 'Config_manage'
|
||||
fnc: 'Config_manage',
|
||||
permission: 'master'
|
||||
},
|
||||
{
|
||||
reg: deltimereg,
|
||||
fnc: 'Config_deltime'
|
||||
fnc: 'Config_deltime',
|
||||
permission: 'master'
|
||||
},
|
||||
{
|
||||
reg: '^#椰奶设置$',
|
||||
fnc: 'yenaiset'
|
||||
fnc: 'yenaiset',
|
||||
permission: 'master'
|
||||
},
|
||||
{
|
||||
reg: '^#椰奶(启用|禁用)全部通知$',
|
||||
fnc: 'SetAll'
|
||||
fnc: 'SetAll',
|
||||
permission: 'master'
|
||||
},
|
||||
{
|
||||
reg: '^#椰奶更换代理[1234]$',
|
||||
fnc: 'proxy'
|
||||
fnc: 'proxy',
|
||||
permission: 'master'
|
||||
},
|
||||
{
|
||||
reg: '^#(增加|减少|查看)头衔屏蔽词.*$',
|
||||
fnc: 'NoTitle'
|
||||
fnc: 'NoTitle',
|
||||
permission: 'master'
|
||||
},
|
||||
{
|
||||
reg: '^#切换头衔屏蔽词匹配(模式)?$',
|
||||
fnc: 'NoTitlepattern'
|
||||
fnc: 'NoTitlepattern',
|
||||
permission: 'master'
|
||||
},
|
||||
{
|
||||
reg: '^#查看(sese|涩涩)设置$',
|
||||
fnc: 'View_Settings'
|
||||
fnc: 'View_Settings',
|
||||
permission: 'master'
|
||||
}
|
||||
]
|
||||
})
|
||||
@@ -89,7 +97,6 @@ export class NewConfig extends plugin {
|
||||
|
||||
// 更改配置
|
||||
async Config_manage(e) {
|
||||
if (!e.isMaster) return
|
||||
// 解析消息
|
||||
let regRet = managereg.exec(e.msg)
|
||||
let index = regRet[1]
|
||||
@@ -108,8 +115,6 @@ export class NewConfig extends plugin {
|
||||
|
||||
// 设置删除缓存时间
|
||||
async Config_deltime(e) {
|
||||
if (!e.isMaster) return
|
||||
|
||||
let time = deltimereg.exec(e.msg)[1]
|
||||
|
||||
if (time < 120) return e.reply('❎ 时间不能小于两分钟')
|
||||
@@ -122,7 +127,6 @@ export class NewConfig extends plugin {
|
||||
}
|
||||
//修改全部设置
|
||||
async SetAll(e) {
|
||||
if (!e.isMaster) return
|
||||
let yes = /启用/.test(e.msg);
|
||||
//设置的任务
|
||||
let type = [
|
||||
@@ -152,7 +156,6 @@ export class NewConfig extends plugin {
|
||||
}
|
||||
//渲染发送图片
|
||||
async yenaiset(e) {
|
||||
if (!e.isMaster) return
|
||||
|
||||
let config = await Config.Notice
|
||||
let data = {
|
||||
@@ -222,7 +225,6 @@ export class NewConfig extends plugin {
|
||||
}
|
||||
//查看涩涩设置
|
||||
async View_Settings(e) {
|
||||
if (!e.isMaster) return false;
|
||||
let set = await setu.getSet_up(e)
|
||||
let data = Config.Notice
|
||||
e.reply([
|
||||
|
||||
88
apps/setu.js
88
apps/setu.js
@@ -3,27 +3,11 @@ import lodash from "lodash";
|
||||
import { Config } from '../components/index.js'
|
||||
import { setu, common } from '../model/index.js'
|
||||
|
||||
const startMsg = [
|
||||
"正在给你找setu了,你先等等再冲~",
|
||||
"你先别急,正在找了~",
|
||||
"马上去给你找涩图,你先憋一会~",
|
||||
"奴家马上去给你找瑟瑟的图片~"
|
||||
]
|
||||
const SWITCH_ERROR = "主人没有开放这个功能哦(*/ω\*)"
|
||||
|
||||
const CDMsg = [
|
||||
"你这么喜欢色图,还不快点冲!",
|
||||
"你的色图不出来了!",
|
||||
"注意身体,色图看多了对身体不太好",
|
||||
"憋住,不准冲!",
|
||||
"憋再冲了!",
|
||||
"呃...好像冲了好多次...感觉不太好呢...",
|
||||
"憋冲了!你已经冲不出来了!",
|
||||
"你急啥呢?",
|
||||
"你是被下半身控制了大脑吗?"
|
||||
]
|
||||
let Numreg = "[一壹二两三四五六七八九十百千万亿\\d]+"
|
||||
let seturdrag = new RegExp(`^#(setu|无内鬼)\\s?((${Numreg})张)?$`)
|
||||
let setcdreg = new RegExp(`^#?设置cd\\s?(\\d+)\\s(${Numreg})(s|秒)?$`, "i");
|
||||
let NumReg = "[一壹二两三四五六七八九十百千万亿\\d]+"
|
||||
let seturdReg = new RegExp(`^#(setu|无内鬼)\\s?((${NumReg})张)?$`)
|
||||
let setcdReg = new RegExp(`^#?设置cd\\s?(\\d+)\\s(${NumReg})(s|秒)?$`, "i");
|
||||
export class sese extends plugin {
|
||||
constructor() {
|
||||
super({
|
||||
@@ -36,43 +20,53 @@ export class sese extends plugin {
|
||||
fnc: 'setutag'
|
||||
},
|
||||
{
|
||||
reg: seturdrag,
|
||||
reg: seturdReg,//无内鬼
|
||||
fnc: 'seturd'
|
||||
},
|
||||
{
|
||||
reg: `^#撤回间隔(${Numreg})$`,
|
||||
fnc: 'setrecall'
|
||||
reg: `^#撤回间隔(${NumReg})$`,
|
||||
fnc: 'setrecall',
|
||||
event: 'message.group',
|
||||
permission: 'master'
|
||||
},
|
||||
{
|
||||
reg: `^#群(c|C)(d|D)(${Numreg})$`,
|
||||
fnc: 'groupcd'
|
||||
reg: `^#群(c|C)(d|D)(${NumReg})$`,
|
||||
fnc: 'groupcd',
|
||||
event: 'message.group',
|
||||
permission: 'master'
|
||||
},
|
||||
{
|
||||
reg: '^#(开启|关闭)(私聊)?涩涩$',
|
||||
fnc: 'setsese'
|
||||
fnc: 'setsese',
|
||||
permission: 'master'
|
||||
},
|
||||
{
|
||||
reg: `(c|C)(d|D)(${Numreg})(s|秒)?$`,
|
||||
fnc: 'atcd'
|
||||
reg: `(c|C)(d|D)(${NumReg})(s|秒)?$`,
|
||||
fnc: 'atcd',
|
||||
event: 'message.group',
|
||||
permission: 'master'
|
||||
},
|
||||
{
|
||||
reg: setcdreg,
|
||||
fnc: 'instsetcd'
|
||||
reg: setcdReg,
|
||||
fnc: 'instsetcd',
|
||||
permission: 'master'
|
||||
}
|
||||
]
|
||||
})
|
||||
this.startMsg = setu.startMsg
|
||||
this.CDMsg = setu.CDMsg
|
||||
}
|
||||
|
||||
async seturd(e) {
|
||||
if (!e.isMaster) {
|
||||
if (!Config.getGroup(e.group_id).sesepro) return e.reply("主人没有开放这个功能哦(*/ω\*)")
|
||||
if (!Config.getGroup(e.group_id).sesepro) return e.reply(SWITCH_ERROR)
|
||||
}
|
||||
|
||||
let cds = await setu.getcd(e)
|
||||
|
||||
if (cds) return e.reply(` ${lodash.sample(CDMsg)}你的CD还有${cds}`, false, { at: true })
|
||||
if (cds) return e.reply(` ${lodash.sample(this.CDMsg)}你的CD还有${cds}`, false, { at: true })
|
||||
|
||||
let num = seturdrag.exec(e.msg)
|
||||
let num = seturdReg.exec(e.msg)
|
||||
|
||||
num = num[3] ? common.translateChinaNum(num[3]) : 1
|
||||
|
||||
@@ -81,7 +75,7 @@ export class sese extends plugin {
|
||||
} else if (num > 6) {
|
||||
e.reply("你先等等,你冲的有点多~")
|
||||
} else {
|
||||
e.reply(lodash.sample(startMsg))
|
||||
e.reply(lodash.sample(this.startMsg))
|
||||
}
|
||||
|
||||
let r18 = await setu.getr18(e)
|
||||
@@ -96,16 +90,16 @@ export class sese extends plugin {
|
||||
//tag搜图
|
||||
async setutag(e) {
|
||||
if (!e.isMaster) {
|
||||
if (!Config.getGroup(e.group_id).sesepro) return e.reply("主人没有开放这个功能哦(*/ω\*)")
|
||||
if (!Config.getGroup(e.group_id).sesepro) return e.reply(SWITCH_ERROR)
|
||||
}
|
||||
|
||||
let cds = await setu.getcd(e)
|
||||
|
||||
if (cds) return e.reply(` ${lodash.sample(CDMsg)}你的CD还有${cds}`, false, { at: true })
|
||||
if (cds) return e.reply(` ${lodash.sample(this.CDMsg)}你的CD还有${cds}`, false, { at: true })
|
||||
|
||||
let tag = e.msg.replace(/#|椰奶tag/g, "").trim()
|
||||
|
||||
let num = e.msg.match(new RegExp(`(${Numreg})张`))
|
||||
let num = e.msg.match(new RegExp(`(${NumReg})张`))
|
||||
|
||||
if (!num) {
|
||||
num = 1
|
||||
@@ -119,7 +113,7 @@ export class sese extends plugin {
|
||||
} else if (num > 6) {
|
||||
e.reply("你先等等,你冲的有点多~")
|
||||
} else {
|
||||
e.reply(lodash.sample(startMsg))
|
||||
e.reply(lodash.sample(this.startMsg))
|
||||
}
|
||||
|
||||
if (!tag) return e.reply("tag为空!!!", false, { at: true })
|
||||
@@ -142,10 +136,6 @@ export class sese extends plugin {
|
||||
|
||||
//设置群撤回间隔
|
||||
async setrecall(e) {
|
||||
if (!e.isGroup) return e.reply("❎ 请在群聊使用此指令");
|
||||
|
||||
if (!e.isMaster) return e.reply("❎ 该命令仅限管理员可用", true);
|
||||
|
||||
let recall = e.msg.replace(/#|撤回间隔/g, "").trim()
|
||||
|
||||
recall = common.translateChinaNum(recall)
|
||||
@@ -162,9 +152,6 @@ export class sese extends plugin {
|
||||
|
||||
//群CD
|
||||
async groupcd(e) {
|
||||
if (!e.isGroup) return e.reply("❎ 请在群聊使用此指令");
|
||||
if (!e.isMaster) return e.reply("❎ 该命令仅限管理员可用", true);
|
||||
|
||||
let cd = e.msg.replace(/#|群cd/gi, "").trim()
|
||||
|
||||
cd = common.translateChinaNum(cd)
|
||||
@@ -180,8 +167,6 @@ export class sese extends plugin {
|
||||
|
||||
//开启r18
|
||||
async setsese(e) {
|
||||
if (!e.isMaster) return e.reply("❎ 该命令仅限管理员可用", true);
|
||||
|
||||
let yes = /开启/.test(e.msg) ? true : false
|
||||
|
||||
if (/私聊/.test(e.msg) || !e.isGroup) {
|
||||
@@ -193,11 +178,9 @@ export class sese extends plugin {
|
||||
|
||||
//艾特设置cd
|
||||
async atcd(e) {
|
||||
if (e.message[0].type != "at" || !e.isGroup) return false;
|
||||
if (e.message[0].type != "at") return false;
|
||||
|
||||
if (!e.isMaster) return e.reply("❎ 该命令仅限管理员可用", true);
|
||||
|
||||
let cd = e.msg.match(new RegExp(Numreg))
|
||||
let cd = e.msg.match(new RegExp(NumReg))
|
||||
|
||||
if (!cd) return e.reply("❎ CD为空,请检查", true);
|
||||
|
||||
@@ -210,8 +193,7 @@ export class sese extends plugin {
|
||||
|
||||
//指令设置
|
||||
async instsetcd(e) {
|
||||
if (!e.isMaster) return e.reply("❎ 该命令仅限管理员可用", true);
|
||||
let cdreg = setcdreg.exec(e.msg);
|
||||
let cdreg = setcdReg.exec(e.msg);
|
||||
let qq = cdreg[1]
|
||||
let cd = common.translateChinaNum(cdreg[2])
|
||||
setu.setcd(e, qq, cd)
|
||||
|
||||
@@ -160,5 +160,12 @@ export default new class common {
|
||||
"60": "Q我吧",
|
||||
};
|
||||
}
|
||||
|
||||
//权限
|
||||
get ROLE_MAP() {
|
||||
return {
|
||||
admin: '群管理',
|
||||
owner: '群主',
|
||||
member: '群员'
|
||||
}
|
||||
}
|
||||
}
|
||||
143
model/setu.js
143
model/setu.js
@@ -4,37 +4,6 @@ import fs from 'fs'
|
||||
import Cfg from './Config.js';
|
||||
import lodash from "lodash";
|
||||
|
||||
const sendMsgs = [
|
||||
"给大佬递图",
|
||||
"这是你的🐍图",
|
||||
"你是大色批",
|
||||
"看!要色图的色批出现了!",
|
||||
"?",
|
||||
"喏,图",
|
||||
"给给给个🐍图",
|
||||
"色图有我好冲吗?",
|
||||
"呐呐呐,欧尼酱别看色图了呐",
|
||||
"有什么好色图有给发出来让大伙看看!",
|
||||
"没有,有也不给(骗你的~)",
|
||||
"天天色图色图的,今天就把你变成色图!",
|
||||
"咱没有色图(骗你的~)",
|
||||
"哈?你的脑子一天都在想些什么呢,咱才没有这种东西啦。",
|
||||
"呀!不要啊!等一...下~",
|
||||
"呜...不要啦!太色了咱~",
|
||||
"不要这样子啦(*/ω\*)",
|
||||
"Hen....Hentai!。",
|
||||
"讨....讨厌了(脸红)",
|
||||
"你想...想做什么///",
|
||||
"啊.....你...你要干什么?!走开.....走开啦大hentai!一巴掌拍飞!(╯‵□′)╯︵┻━┻",
|
||||
"变态baka死宅?",
|
||||
"已经可以了,现在很多死宅也都没你这么恶心了",
|
||||
"噫…你这个死变态想干嘛!居然想叫咱做这种事,死宅真恶心!快离我远点,我怕你污染到周围空气了(嫌弃脸)",
|
||||
"这么喜欢色图呢?不如来点岛风色图?",
|
||||
"hso!",
|
||||
"这么喜欢看色图哦?变态?",
|
||||
"eee,死肥宅不要啦!恶心心!",
|
||||
]
|
||||
|
||||
export default new class setu {
|
||||
constructor() {
|
||||
//配置文件夹
|
||||
@@ -98,7 +67,7 @@ export default new class setu {
|
||||
let msg = result.data.map(item => {
|
||||
let { pid, title, tags, author, r18, urls, url } = item
|
||||
return [
|
||||
`${lodash.sample(sendMsgs)}\n`,
|
||||
`${lodash.sample(this.sendMsgs)}\n`,
|
||||
`标题:${title}\n`,
|
||||
`画师:${author}\n`,
|
||||
`pid:${pid}\n`,
|
||||
@@ -169,7 +138,7 @@ export default new class setu {
|
||||
let over = (this.temp[e.user_id + e.group_id] - present)
|
||||
|
||||
if (over > 0) {
|
||||
return Secondformat(over)
|
||||
return this.Secondformat(over)
|
||||
} else return false
|
||||
|
||||
} else return false
|
||||
@@ -180,7 +149,7 @@ export default new class setu {
|
||||
let over = (this.temp[e.user_id] - present)
|
||||
|
||||
if (over > 0) {
|
||||
return Secondformat(over)
|
||||
return this.Secondformat(over)
|
||||
} else return false
|
||||
|
||||
} else return false
|
||||
@@ -327,30 +296,86 @@ export default new class setu {
|
||||
set.r18 = await this.getr18(e)
|
||||
return set
|
||||
}
|
||||
/**
|
||||
* @description: 格式化秒
|
||||
* @param {Number} value 秒
|
||||
* @return {String}
|
||||
*/
|
||||
Secondformat(value) {
|
||||
let time = Cfg.getsecond(value)
|
||||
|
||||
let { second, minute, hour, day } = time
|
||||
// 处理返回消息
|
||||
let result = ''
|
||||
if (second != 0) {
|
||||
result = parseInt(second) + '秒'
|
||||
}
|
||||
if (minute > 0) {
|
||||
result = parseInt(minute) + '分' + result
|
||||
}
|
||||
if (hour > 0) {
|
||||
result = parseInt(hour) + '小时' + result
|
||||
}
|
||||
if (day > 0) {
|
||||
result = parseInt(day) + '天' + result
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
get startMsg() {
|
||||
return [
|
||||
"正在给你找setu了,你先等等再冲~",
|
||||
"你先别急,正在找了~",
|
||||
"马上去给你找涩图,你先憋一会~",
|
||||
"奴家马上去给你找瑟瑟的图片~"
|
||||
]
|
||||
}
|
||||
|
||||
get CDMsg() {
|
||||
return [
|
||||
"你这么喜欢色图,还不快点冲!",
|
||||
"你的色图不出来了!",
|
||||
"注意身体,色图看多了对身体不太好",
|
||||
"憋住,不准冲!",
|
||||
"憋再冲了!",
|
||||
"呃...好像冲了好多次...感觉不太好呢...",
|
||||
"憋冲了!你已经冲不出来了!",
|
||||
"你急啥呢?",
|
||||
"你是被下半身控制了大脑吗?"
|
||||
]
|
||||
}
|
||||
|
||||
get sendMsgs() {
|
||||
return [
|
||||
"给大佬递图",
|
||||
"这是你的🐍图",
|
||||
"你是大色批",
|
||||
"看!要色图的色批出现了!",
|
||||
"?",
|
||||
"喏,图",
|
||||
"给给给个🐍图",
|
||||
"色图有我好冲吗?",
|
||||
"呐呐呐,欧尼酱别看色图了呐",
|
||||
"有什么好色图有给发出来让大伙看看!",
|
||||
"没有,有也不给(骗你的~)",
|
||||
"天天色图色图的,今天就把你变成色图!",
|
||||
"咱没有色图(骗你的~)",
|
||||
"哈?你的脑子一天都在想些什么呢,咱才没有这种东西啦。",
|
||||
"呀!不要啊!等一...下~",
|
||||
"呜...不要啦!太色了咱~",
|
||||
"不要这样子啦(*/ω\*)",
|
||||
"Hen....Hentai!。",
|
||||
"讨....讨厌了(脸红)",
|
||||
"你想...想做什么///",
|
||||
"啊.....你...你要干什么?!走开.....走开啦大hentai!一巴掌拍飞!(╯‵□′)╯︵┻━┻",
|
||||
"变态baka死宅?",
|
||||
"已经可以了,现在很多死宅也都没你这么恶心了",
|
||||
"噫…你这个死变态想干嘛!居然想叫咱做这种事,死宅真恶心!快离我远点,我怕你污染到周围空气了(嫌弃脸)",
|
||||
"这么喜欢色图呢?不如来点岛风色图?",
|
||||
"hso!",
|
||||
"这么喜欢看色图哦?变态?",
|
||||
"eee,死肥宅不要啦!恶心心!",
|
||||
]
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* @description: 格式化秒
|
||||
* @param {Number} value 秒
|
||||
* @return {String}
|
||||
*/
|
||||
function Secondformat(value) {
|
||||
let time = Cfg.getsecond(value)
|
||||
|
||||
let { second, minute, hour, day } = time
|
||||
// 处理返回消息
|
||||
let result = ''
|
||||
if (second != 0) {
|
||||
result = parseInt(second) + '秒'
|
||||
}
|
||||
if (minute > 0) {
|
||||
result = parseInt(minute) + '分' + result
|
||||
}
|
||||
if (hour > 0) {
|
||||
result = parseInt(hour) + '小时' + result
|
||||
}
|
||||
if (day > 0) {
|
||||
result = parseInt(day) + '天' + result
|
||||
}
|
||||
return result
|
||||
}
|
||||
Reference in New Issue
Block a user