mirror of
https://github.com/ikechan8370/chatgpt-plugin.git
synced 2025-12-17 05:47:11 +00:00
feat: 修改配置文件格式避免频繁panic;降低api模式重试次数;优化帮助显示;支持必应新增的三种模式切换
This commit is contained in:
parent
a45ae14a5c
commit
873deda49d
10 changed files with 156 additions and 172 deletions
|
|
@ -1,5 +1,7 @@
|
|||
import fs from 'fs'
|
||||
import lodash from 'lodash'
|
||||
import { execSync } from 'child_process'
|
||||
|
||||
const defaultConfig = {
|
||||
blockWords: ['屏蔽词1', '屏蔽词b'],
|
||||
promptBlockWords: ['屏蔽词1', '屏蔽词b'],
|
||||
|
|
@ -34,19 +36,55 @@ const defaultConfig = {
|
|||
debug: true,
|
||||
defaultTimeoutMs: 120000,
|
||||
chromeTimeoutMS: 120000,
|
||||
version: '2.0.10'
|
||||
// version: 'v2.0.11',
|
||||
toneStyle: 'balanced' // or creative, precise
|
||||
}
|
||||
const _path = process.cwd()
|
||||
let config = {}
|
||||
if (fs.existsSync(`${_path}/plugins/chatgpt-plugin/config/config.js`)) {
|
||||
if (fs.existsSync(`${_path}/plugins/chatgpt-plugin/config/config.json`)) {
|
||||
const fullPath = fs.realpathSync(`${_path}/plugins/chatgpt-plugin/config/config.json`)
|
||||
const data = fs.readFileSync(fullPath)
|
||||
if (data) {
|
||||
try {
|
||||
config = JSON.parse(data)
|
||||
} catch (e) {
|
||||
logger.error('chatgpt插件读取配置文件出错,请检查config/config.json格式,将忽略用户配置转为使用默认配置', e)
|
||||
logger.warn('chatgpt插件即将使用默认配置')
|
||||
}
|
||||
}
|
||||
} else if (fs.existsSync(`${_path}/plugins/chatgpt-plugin/config/config.js`)) {
|
||||
// 旧版本的config.js,读取其内容,生成config.json,然后删掉config.js
|
||||
const fullPath = fs.realpathSync(`${_path}/plugins/chatgpt-plugin/config/config.js`)
|
||||
config = (await import(`file://${fullPath}`)).default
|
||||
try {
|
||||
logger.warn('[ChatGPT-Plugin]发现旧版本config.js文件,正在读取其内容并转换为新版本config.json文件')
|
||||
// 读取其内容,生成config.json
|
||||
fs.writeFileSync(`${_path}/plugins/chatgpt-plugin/config/config.json`, JSON.stringify(config, null, 2))
|
||||
// 删掉config.js
|
||||
fs.unlinkSync(`${_path}/plugins/chatgpt-plugin/config/config.js`)
|
||||
logger.info('[ChatGPT-Plugin]配置文件转换处理完成')
|
||||
} catch (err) {
|
||||
logger.error('[ChatGPT-Plugin]转换旧版配置文件失败,建议手动清理旧版config.js文件,并转为使用新版config.json格式', err)
|
||||
}
|
||||
} else if (fs.existsSync(`${_path}/plugins/chatgpt-plugin/config/index.js`)) {
|
||||
// 兼容旧版本
|
||||
const fullPath = fs.realpathSync(`${_path}/plugins/chatgpt-plugin/config/index.js`)
|
||||
config = (await import(`file://${fullPath}`)).Config
|
||||
try {
|
||||
logger.warn('[ChatGPT-Plugin]发现旧版本config.js文件,正在读取其内容并转换为新版本config.json文件')
|
||||
// 读取其内容,生成config.json
|
||||
fs.writeFileSync(`${_path}/plugins/chatgpt-plugin/config/config.json`, JSON.stringify(config, null, 2))
|
||||
// index.js
|
||||
fs.unlinkSync(`${_path}/plugins/chatgpt-plugin/config/index.js`)
|
||||
logger.info('[ChatGPT-Plugin]配置文件转换处理完成')
|
||||
} catch (err) {
|
||||
logger.error('[ChatGPT-Plugin]转换旧版配置文件失败,建议手动清理旧版index.js文件,并转为使用新版config.json格式', err)
|
||||
}
|
||||
}
|
||||
config = Object.assign({}, defaultConfig, config)
|
||||
const latestTag = execSync('git describe --tags --abbrev=0').toString().trim()
|
||||
config.version = latestTag
|
||||
|
||||
export const Config = new Proxy(config, {
|
||||
set (target, property, value) {
|
||||
target[property] = value
|
||||
|
|
@ -56,9 +94,9 @@ export const Config = new Proxy(config, {
|
|||
}
|
||||
})
|
||||
try {
|
||||
fs.writeFileSync(`${_path}/plugins/chatgpt-plugin/config/config.js`, `export default ${JSON.stringify(change, '', '\t')}`, { flag: 'w' })
|
||||
fs.writeFileSync(`${_path}/plugins/chatgpt-plugin/config/config.json`, JSON.stringify(change, null, 2), { flag: 'w' })
|
||||
} catch (err) {
|
||||
console.error(err)
|
||||
logger.error(err)
|
||||
return false
|
||||
}
|
||||
return true
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue