mirror of
https://github.com/ikechan8370/chatgpt-plugin.git
synced 2025-12-16 21:37:11 +00:00
🥰更改chatgpt-plugin的更新代码顺便修复一个正则问题 (#450)
* 改进ChatGPT-Plugin的更新代码 * 删除旧更新 * 增加声明 * 更改文件编码 * 更改正则触发表达式 * 修复一个正则问题,防止抢了ap的#指令表
This commit is contained in:
parent
adc0817731
commit
fbe8953667
2 changed files with 317 additions and 62 deletions
|
|
@ -126,10 +126,6 @@ export class ChatgptManagement extends plugin {
|
|||
reg: '^#chatgpt模式(帮助)?$',
|
||||
fnc: 'modeHelp'
|
||||
},
|
||||
{
|
||||
reg: '^#chatgpt(强制)?更新$',
|
||||
fnc: 'updateChatGPTPlugin'
|
||||
},
|
||||
{
|
||||
reg: '^#chatgpt版本(信息)',
|
||||
fnc: 'versionChatGPTPlugin'
|
||||
|
|
@ -235,7 +231,7 @@ export class ChatgptManagement extends plugin {
|
|||
fnc: 'userPage'
|
||||
},
|
||||
{
|
||||
reg: '^#(chatgpt)?(对话|管理|娱乐|绘图|人物设定|聊天记录)?指令表(帮助|搜索(.+))?',
|
||||
reg: '^#?(chatgpt)(对话|管理|娱乐|绘图|人物设定|聊天记录)?指令表(帮助|搜索(.+))?',
|
||||
fnc: 'commandHelp'
|
||||
},
|
||||
{
|
||||
|
|
@ -1010,63 +1006,6 @@ azure语音:Azure 语音是微软 Azure 平台提供的一项语音服务,
|
|||
}
|
||||
return true
|
||||
}
|
||||
|
||||
// modified from miao-plugin
|
||||
async updateChatGPTPlugin (e) {
|
||||
let timer
|
||||
if (!await this.checkAuth(e)) {
|
||||
return true
|
||||
}
|
||||
let isForce = e.msg.includes('强制')
|
||||
let command = 'git pull'
|
||||
if (isForce) {
|
||||
command = 'git checkout . && git pull'
|
||||
e.reply('正在执行强制更新操作,请稍等')
|
||||
} else {
|
||||
e.reply('正在执行更新操作,请稍等')
|
||||
}
|
||||
const _path = process.cwd()
|
||||
exec(command, { cwd: `${_path}/plugins/chatgpt-plugin/` }, async function (error, stdout, stderr) {
|
||||
if (/(Already up[ -]to[ -]date|已经是最新的)/.test(stdout)) {
|
||||
e.reply('目前已经是最新版ChatGPT了~')
|
||||
return true
|
||||
}
|
||||
if (error) {
|
||||
e.reply('ChatGPT更新失败!\nError code: ' + error.code + '\n' + error.stack + '\n 请稍后重试。')
|
||||
return true
|
||||
}
|
||||
e.reply('ChatGPT更新成功,正在尝试重新启动Yunzai以应用更新...')
|
||||
e.reply('更新日志:\n' + stdout)
|
||||
timer && clearTimeout(timer)
|
||||
|
||||
let data = JSON.stringify({
|
||||
isGroup: !!e.isGroup,
|
||||
id: e.isGroup ? e.group_id : e.user_id,
|
||||
time: new Date().getTime()
|
||||
})
|
||||
await redis.set('Yz:restart', data, { EX: 120 })
|
||||
let npm = await checkPnpm()
|
||||
timer = setTimeout(function () {
|
||||
let command = `${npm} start`
|
||||
if (process.argv[1].includes('pm2')) {
|
||||
command = `${npm} run restart`
|
||||
}
|
||||
exec(command, function (error, stdout, stderr) {
|
||||
if (error) {
|
||||
e.reply('自动重启失败,请手动重启以应用新版ChatGPT。\nError code: ' + error.code + '\n' + error.stack + '\n')
|
||||
Bot.logger.error(`重启失败\n${error.stack}`)
|
||||
return true
|
||||
} else if (stdout) {
|
||||
Bot.logger.mark('重启成功,运行已转为后台,查看日志请用命令:npm run log')
|
||||
Bot.logger.mark('停止后台运行命令:npm stop')
|
||||
process.exit()
|
||||
}
|
||||
})
|
||||
}, 1000)
|
||||
})
|
||||
return true
|
||||
}
|
||||
|
||||
async versionChatGPTPlugin (e) {
|
||||
await renderUrl(e, `http://127.0.0.1:${Config.serverPort || 3321}/version`, { Viewport: { width: 800, height: 600 } })
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue