import plugin from '../../../lib/plugins/plugin.js' import fs from 'fs' import _ from 'lodash' import { Data } from '../components/index.js' import { puppeteer } from '../model/index.js' const helpType = { 群管: 'gpAdmin', 涩涩: 'sese' } const helpReg = new RegExp( `^#?椰奶(插件)?(${Object.keys(helpType).join('|')})?(帮助|菜单|功能)$` ) export class YenaiHelp extends plugin { constructor () { super({ name: '椰奶帮助', event: 'message', priority: 2000, rule: [ { reg: helpReg, fnc: 'message' } ] }) } async message () { return await help(this.e) } } /** * * @param e */ async function help (e) { let custom = {} // let help = {} const special = e.msg.match(helpReg)[2] let diyCfg, sysCfg if (special) { let gpAdminHelp = await Data.importCfg(helpType[special]) diyCfg = gpAdminHelp.diyCfg sysCfg = gpAdminHelp.sysCfg } else { let indexHelp = await Data.importCfg('help') diyCfg = indexHelp.diyCfg sysCfg = indexHelp.sysCfg } // custom = help let helpConfig = _.defaults(diyCfg.helpCfg || {}, custom.helpCfg, sysCfg.helpCfg) let helpList = diyCfg.helpList || custom.helpList || sysCfg.helpList let helpGroup = [] _.forEach(helpList, (group) => { if (group.auth && group.auth === 'master' && !e.isMaster) { return true } _.forEach(group.list, (help) => { let icon = help.icon * 1 if (!icon) { help.css = 'display:none' } else { let x = (icon - 1) % 10 let y = (icon - x - 1) / 10 help.css = `background-position:-${x * 50}px -${y * 50}px` } }) helpGroup.push(group) }) return await puppeteer.render('help/index', { helpCfg: helpConfig, helpGroup, bg: await rodom(), colCount: 3, element: 'default' }, { e, scale: 1.2 }) } const rodom = async function () { let image = fs.readdirSync('./plugins/yenai-plugin/resources/help/imgs/') let list_img = [] for (let val of image) { list_img.push(val) } let imgs = list_img.length == 1 ? list_img[0] : list_img[_.random(0, list_img.length - 1)] return imgs }