const path = require('path');
nv_create_dirs('./nv-content/data/');
const db_options = new NV_Database(path.join(process.cwd(),"./nv-content/data/options.json"),{
columns: ['name','value'],
index: 'id',
references: ['value'],
});
nvdb.options = db_options;
global.get_option = (name,defaultValue)=>{
var filter_func = r=>r.name == name;
filter_func._nvdb_reference = true;
var opt = db_options.find(filter_func)[0];
var value = opt ? opt.value : null;
return apply_filters(`option:${name}`, nv_remove_reference(value) || defaultValue );
}
global.get_options = (names)=>{
var results = {};
var opts = {};
var filter_func = r=>names.includes(r.name);
filter_func._nvdb_reference = true;
db_options.find(filter_func).forEach( ({name, value}) => {
opts[name] = value;
})
names.forEach( name => {
results[name] = apply_filters(`option:${name}`, nv_remove_reference(opts[name]) );
})
return results;
}
global.set_option = (name,value)=>{
var filter_func = r=>r.name == name;
filter_func._nvdb_reference = true;
db_options.find(filter_func)[0]
? db_options.setColumn(filter_func,{value})
: db_options.insert({name,value});
do_action(`setted_option:${name}`, nv_remove_reference(value) );
}
global.delete_option = (name)=>{
var filter_func = r=>r.name == name;
filter_func._nvdb_reference = true;
db_options.drop(filter_func);
do_action(`deleted_option:${name}`);
}
//未设置过全局评论开关时,评论默认开启
var enable_comment = db_options.find(r=>r.name=='enable_comment')[0];
if (!enable_comment) {
set_option('enable_comment',true);
}
//未设置过相对地址时,默认开启相对地址
var nv_media_use_relative_url = db_options.find(r=>r.name=='nv_media_use_relative_url')[0];
if (!nv_media_use_relative_url) {
set_option('nv_media_use_relative_url',true);
}