Commit 687bd61b authored by mercury233's avatar mercury233

add nconf

save config to config.user.json
parent 9eb9affd
...@@ -3,7 +3,7 @@ _.str = require 'underscore.string' ...@@ -3,7 +3,7 @@ _.str = require 'underscore.string'
_.mixin(_.str.exports()) _.mixin(_.str.exports())
spawn = require('child_process').spawn spawn = require('child_process').spawn
spawnSync = require('child_process').spawnSync spawnSync = require('child_process').spawnSync
settings = require './config.json' settings = global.settings
ygopro = require './ygopro.js' ygopro = require './ygopro.js'
roomlist = require './roomlist' if settings.modules.enable_websocket_roomlist roomlist = require './roomlist' if settings.modules.enable_websocket_roomlist
bunyan = require 'bunyan' bunyan = require 'bunyan'
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
spawnSync = require('child_process').spawnSync; spawnSync = require('child_process').spawnSync;
settings = require('./config.json'); settings = global.settings;
ygopro = require('./ygopro.js'); ygopro = require('./ygopro.js');
......
...@@ -16,13 +16,34 @@ _.mixin(_.str.exports()) ...@@ -16,13 +16,34 @@ _.mixin(_.str.exports())
request = require 'request' request = require 'request'
bunyan = require 'bunyan' bunyan = require 'bunyan'
log = bunyan.createLogger name: "mycard"
moment = require 'moment' moment = require 'moment'
#heapdump = require 'heapdump' #heapdump = require 'heapdump'
#配置文件 #配置
settings = require './config.json' nconf = require 'nconf'
nconf.file('./config.user.json')
defaultconfig = require('./config.json')
nconf.defaults(defaultconfig)
settings = global.settings = nconf.get()
nconf.myset = (settings, path, val) ->
nconf.set(path, val)
nconf.save()
log.info("setting changed", path, val)
path=path.split(':')
if path.length == 0
settings[path[0]]=val
else
target=settings
while path.length > 1
key=path.shift()
target=target[key]
key = path.shift()
target[key] = val
return
settings.BANNED_user = [] settings.BANNED_user = []
settings.BANNED_IP = [] settings.BANNED_IP = []
settings.version = parseInt(fs.readFileSync('ygopro/gframe/game.cpp', 'utf8').match(/PRO_VERSION = ([x\d]+)/)[1], '16') settings.version = parseInt(fs.readFileSync('ygopro/gframe/game.cpp', 'utf8').match(/PRO_VERSION = ([x\d]+)/)[1], '16')
...@@ -46,16 +67,6 @@ roomlist = require './roomlist.js' if settings.modules.enable_websocket_roomlist ...@@ -46,16 +67,6 @@ roomlist = require './roomlist.js' if settings.modules.enable_websocket_roomlist
users_cache = {} users_cache = {}
#debug模式 端口号+1
debug = false
log = null
if process.argv[2] == '--debug'
settings.port++
settings.modules.http.port++ if settings.modules.http
log = bunyan.createLogger name: "mycard-debug"
else
log = bunyan.createLogger name: "mycard"
#定时清理关闭的连接 #定时清理关闭的连接
Graveyard = [] Graveyard = []
...@@ -949,31 +960,35 @@ if settings.modules.http ...@@ -949,31 +960,35 @@ if settings.modules.http
else if u.pathname == '/api/message' else if u.pathname == '/api/message'
if !pass_validated if !pass_validated
response.writeHead(200) response.writeHead(200)
response.end(u.query.callback + "( '密码错误', 0 );") response.end(u.query.callback + "( ['密码错误', 0] );")
return return
if u.query.shout if u.query.shout
for room in Room.all for room in Room.all
ygopro.stoc_send_chat_to_room(room, u.query.shout, ygopro.constants.COLORS.YELLOW) ygopro.stoc_send_chat_to_room(room, u.query.shout, ygopro.constants.COLORS.YELLOW)
response.writeHead(200) response.writeHead(200)
response.end(u.query.callback + "( 'shout ok', '" + u.query.shout + "' );") response.end(u.query.callback + "( ['shout ok', '" + u.query.shout + "'] );")
else if u.query.stop else if u.query.stop
if u.query.stop == 'false' if u.query.stop == 'false'
u.query.stop = false u.query.stop = false
settings.modules.stop = u.query.stop settings.modules.stop = u.query.stop
response.writeHead(200) response.writeHead(200)
response.end(u.query.callback + "( 'stop ok', '" + u.query.stop + "' );") response.end(u.query.callback + "( ['stop ok', '" + u.query.stop + "'] );")
else if u.query.welcome else if u.query.welcome
settings.modules.welcome = u.query.welcome nconf.myset(settings, 'modules:welcome', u.query.welcome)
response.writeHead(200)
response.end(u.query.callback + "( ['welcome ok', '" + u.query.welcome + "'] );")
else if u.query.getwelcome
response.writeHead(200) response.writeHead(200)
response.end(u.query.callback + "( 'welcome ok', '" + u.query.welcome + "' );") response.end(u.query.callback + "( ['get ok', '" + settings.modules.welcome + "'] );")
else if u.query.ban else if u.query.ban
settings.BANNED_user.push(u.query.ban) settings.BANNED_user.push(u.query.ban)
response.writeHead(200) response.writeHead(200)
response.end(u.query.callback + "( 'ban ok', '" + u.query.ban + "' );") response.end(u.query.callback + "( ['ban ok', '" + u.query.ban + "'] );")
else else
response.writeHead(404) response.writeHead(404)
......
// Generated by CoffeeScript 1.10.0 // Generated by CoffeeScript 1.10.0
(function() { (function() {
var Graveyard, Room, _, bunyan, crypto, date, debug, dialogues, execFile, fs, http, http_server, https, https_server, list, log, moment, net, options, os, path, pg, redis, redisdb, request, requestListener, roomlist, settings, tips, tribute, url, users_cache, wait_room_start, ygopro, zlib; var Graveyard, Room, _, bunyan, crypto, date, defaultconfig, dialogues, execFile, fs, http, http_server, https, https_server, list, log, moment, nconf, net, options, os, path, pg, redis, redisdb, request, requestListener, roomlist, settings, tips, tribute, url, users_cache, wait_room_start, ygopro, zlib;
net = require('net'); net = require('net');
...@@ -28,9 +28,40 @@ ...@@ -28,9 +28,40 @@
bunyan = require('bunyan'); bunyan = require('bunyan');
log = bunyan.createLogger({
name: "mycard"
});
moment = require('moment'); moment = require('moment');
settings = require('./config.json'); nconf = require('nconf');
nconf.file('./config.user.json');
defaultconfig = require('./config.json');
nconf.defaults(defaultconfig);
settings = global.settings = nconf.get();
nconf.myset = function(settings, path, val) {
var key, target;
nconf.set(path, val);
nconf.save();
log.info("setting changed", path, val);
path = path.split(':');
if (path.length === 0) {
settings[path[0]] = val;
} else {
target = settings;
while (path.length > 1) {
key = path.shift();
target = target[key];
}
key = path.shift();
target[key] = val;
}
};
settings.BANNED_user = []; settings.BANNED_user = [];
...@@ -79,24 +110,6 @@ ...@@ -79,24 +110,6 @@
users_cache = {}; users_cache = {};
debug = false;
log = null;
if (process.argv[2] === '--debug') {
settings.port++;
if (settings.modules.http) {
settings.modules.http.port++;
}
log = bunyan.createLogger({
name: "mycard-debug"
});
} else {
log = bunyan.createLogger({
name: "mycard"
});
}
Graveyard = []; Graveyard = [];
tribute = function(socket) { tribute = function(socket) {
...@@ -1171,7 +1184,7 @@ ...@@ -1171,7 +1184,7 @@
} else if (u.pathname === '/api/message') { } else if (u.pathname === '/api/message') {
if (!pass_validated) { if (!pass_validated) {
response.writeHead(200); response.writeHead(200);
response.end(u.query.callback + "( '密码错误', 0 );"); response.end(u.query.callback + "( ['密码错误', 0] );");
return; return;
} }
if (u.query.shout) { if (u.query.shout) {
...@@ -1181,22 +1194,25 @@ ...@@ -1181,22 +1194,25 @@
ygopro.stoc_send_chat_to_room(room, u.query.shout, ygopro.constants.COLORS.YELLOW); ygopro.stoc_send_chat_to_room(room, u.query.shout, ygopro.constants.COLORS.YELLOW);
} }
response.writeHead(200); response.writeHead(200);
response.end(u.query.callback + "( 'shout ok', '" + u.query.shout + "' );"); response.end(u.query.callback + "( ['shout ok', '" + u.query.shout + "'] );");
} else if (u.query.stop) { } else if (u.query.stop) {
if (u.query.stop === 'false') { if (u.query.stop === 'false') {
u.query.stop = false; u.query.stop = false;
} }
settings.modules.stop = u.query.stop; settings.modules.stop = u.query.stop;
response.writeHead(200); response.writeHead(200);
response.end(u.query.callback + "( 'stop ok', '" + u.query.stop + "' );"); response.end(u.query.callback + "( ['stop ok', '" + u.query.stop + "'] );");
} else if (u.query.welcome) { } else if (u.query.welcome) {
settings.modules.welcome = u.query.welcome; nconf.myset(settings, 'modules:welcome', u.query.welcome);
response.writeHead(200);
response.end(u.query.callback + "( ['welcome ok', '" + u.query.welcome + "'] );");
} else if (u.query.getwelcome) {
response.writeHead(200); response.writeHead(200);
response.end(u.query.callback + "( 'welcome ok', '" + u.query.welcome + "' );"); response.end(u.query.callback + "( ['get ok', '" + settings.modules.welcome + "'] );");
} else if (u.query.ban) { } else if (u.query.ban) {
settings.BANNED_user.push(u.query.ban); settings.BANNED_user.push(u.query.ban);
response.writeHead(200); response.writeHead(200);
response.end(u.query.callback + "( 'ban ok', '" + u.query.ban + "' );"); response.end(u.query.callback + "( ['ban ok', '" + u.query.ban + "'] );");
} else { } else {
response.writeHead(404); response.writeHead(404);
response.end(); response.end();
......
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