代码拉取完成,页面将自动刷新
import { execSync } from 'node:child_process'
import config from './module/config.js'
import fs from 'node:fs'
if (!globalThis.segment) {
globalThis.segment = (await import('oicq')).segment
}
let versionData = config.getdefSet('version', 'set');
const version = (versionData && versionData.length && versionData[0].version) || '1.0.0';
logger.info(`-----------^ω^----------`)
logger.info(`插件管理器${version}初始化~`)
if (!fs.existsSync(config.baseDir + '/node_modules/acorn')) {
logger.warn('检测到未安装依赖包,尝试安装中...')
let npm = 'npm'
if (fs.existsSync('node_modules/.pnpm')) npm = 'pnpm'
if (fs.existsSync('node_modules/.yarn-integrity')) npm = 'yarn'
if (fs.existsSync('node_modules/.cache')) npm = 'bun'
try {
logger.info('安装完成,输出:\n' + execSync(`${npm} install`, { cwd: config.baseDir }))
} catch(err) {
logger.error('安装失败,错误信息:' + err)
}
}
/**加载插件**/
const files = fs.readdirSync('./plugins/xitian-plugin/apps').filter((file) => file.endsWith('.js'))
let ret = []
files.forEach((file) => {
ret.push(import(`./apps/${file}`))
});
ret = await Promise.allSettled(ret)
let apps = {}
for (let i in files) {
let name = files[i].replace('.js', '')
if (ret[i].status != 'fulfilled') {
logger.error(`载入插件错误:${logger.red(name)}`)
logger.error(ret[i].reason)
continue
}
apps[name] = ret[i].value[Object.keys(ret[i].value)[0]]
}
export { apps }
/*
* _oo0oo_
* o8888888o
* 88' . '88
* (| -_- |)
* 0\ = /0
* ___/`---'\___
* .' \\| |// '.
* / \\||| : |||// \
* / _||||| -:- |||||- \
* | | \\\ - /// | |
* | \_| ''\---/'' |_/ |
* \ .-\__ '-' ___/-. /
* ___'. .' /--.--\ `. .'___
* .'' '< `.___\_<|>_/___.' >' ''.
* | | : `- \`.;`\ _ /`;.`/ - ` : | |
* \ \ `_. \_ __\ /__ _/ .-` / /
* =====`-.____`.___ \_____/___.-`___.-'=====
* `=---='
*
*
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*
* 佛祖保佑 永无BUG
*/
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。