Commit fb5b6006 authored by Medicean's avatar Medicean

新增插件配置持久化接口

parent d4bb9e14
......@@ -2,6 +2,18 @@
> 有空会补补BUG、添添新功能。
> 同时也欢迎大家的参与!感谢各位朋友的支持! .TAT.
## `v(2.0.3-dev)`
### Core
#### 后端模块
* 数据存储新增插件配置存储管理功能 (`shell-addPluginDataConf`, `shell-editPluginDataConf`, `shell-delPluginDataConf`, `shell-getPluginDataConf`)
### Other
* 自动检查更新每24小时触发一次(GitHub 访问频率限制)
## 2018/12/05 `(v2.0.2)`
### 模块增强
......
......@@ -41,7 +41,11 @@ class Database {
.on('shell-delDataConf', this.delDataConf.bind(this))
.on('shell-getDataConf', this.getDataConf.bind(this))
.on('shell-renameCategory', this.renameShellCategory.bind(this))
.on('shell-updateHttpConf', this.updateHttpConf.bind(this));
.on('shell-updateHttpConf', this.updateHttpConf.bind(this))
.on('shell-addPluginDataConf', this.addPluginDataConf.bind(this))
.on('shell-editPluginDataConf', this.editPluginDataConf.bind(this))
.on('shell-delPluginDataConf', this.delPluginDataConf.bind(this))
.on('shell-getPluginDataConf', this.getPluginDataConf.bind(this));
}
/**
......@@ -389,6 +393,120 @@ class Database {
event.returnValue = err || confs[opts['id']];
});
}
/**
* 添加插件数据配置
* @param {Object} event ipcMain对象
* @param {string} plugin 插件注册的名称
* @param {Object} opts 配置(_id,data
*/
addPluginDataConf(event, plugin, opts) {
logger.info('addPluginDataConf', plugin, opts);
// 1. 获取原配置列表
this.cursor.findOne({
_id: opts['_id']
}, (err, ret) => {
ret['plugins'] = ret['plugins'] || {};
let confs = ret['plugins'][plugin] || {};
// 随机Id(顺序增长
const random_id = parseInt(+new Date + Math.random() * 1000).toString(16);
// 添加到配置
confs[random_id] = opts['data'];
let setdata = {
utime: +new Date,
}
setdata[`plugins.${plugin}`] = confs;
// 更新
this.cursor.update({
_id: opts['_id']
}, {
$set: setdata
}, (_err, _ret) => {
event.returnValue = random_id;
});
});
}
/**
* 修改插件数据配置
* @param {Object} event ipcMain对象
* @param {string} plugin 插件注册的名称
* @param {Object} opts 配置(_id,id,data
*/
editPluginDataConf(event, plugin, opts) {
logger.info('editPluginDataConf', plugin, opts);
// 1. 获取原配置列表
this.cursor.findOne({
_id: opts['_id']
}, (err, ret) => {
ret['plugins'] = ret['plugins'] || {};
let confs = ret['plugins'][plugin] || {};
// 添加到配置
confs[opts['id']] = opts['data'];
let setdata = {
utime: +new Date,
}
setdata[`plugins.${plugin}`] = confs;
// 更新数据库
this.cursor.update({
_id: opts['_id']
}, {
$set: setdata
}, (_err, _ret) => {
event.returnValue = opts['id'];
});
});
}
/**
* 删除插件数据配置
* @param {Object} event ipcMain对象
* @param {string} plugin 插件注册的名称
* @param {Object} opts 配置(_id,id
* @return {[type]} [description]
*/
delPluginDataConf(event, plugin, opts) {
logger.info('delPluginDataConf', plugin, opts);
// 1. 获取原配置
this.cursor.findOne({
_id: opts['_id']
}, (err, ret) => {
ret['plugins'] = ret['plugins'] || {};
let confs = ret['plugins'][plugin] || {};
// 2. 删除配置
delete confs[opts['id']];
let setdata = {
utime: +new Date,
}
setdata[`plugins.${plugin}`] = confs;
// 3. 更新数据库
this.cursor.update({
_id: opts['_id']
}, {
$set: setdata
}, (_err, _ret) => {
event.returnValue = _err || _ret;
});
})
}
/**
* 获取单个插件数据配置
* @param {Object} event ipcMain对象
* @param {string} plugin 插件注册的名称
* @param {Object} opts 配置(_id,id
* @return {[type]} [description]
*/
getPluginDataConf(event, plugin, opts) {
logger.info('getPluginDatConf', plugin, opts);
this.cursor.findOne({
_id: opts['_id']
}, (err, ret) => {
ret['plugins'] = ret['plugins'] || {};
const confs = ret['plugins'][plugin] || {};
event.returnValue = err || confs[opts['id']];
});
}
}
module.exports = Database;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment