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'
_.mixin(_.str.exports())
spawn = require('child_process').spawn
spawnSync = require('child_process').spawnSync
settings = require './config.json'
settings = global.settings
ygopro = require './ygopro.js'
roomlist = require './roomlist' if settings.modules.enable_websocket_roomlist
bunyan = require 'bunyan'
......
......@@ -12,7 +12,7 @@
spawnSync = require('child_process').spawnSync;
settings = require('./config.json');
settings = global.settings;
ygopro = require('./ygopro.js');
......
......@@ -16,13 +16,34 @@ _.mixin(_.str.exports())
request = require 'request'
bunyan = require 'bunyan'
log = bunyan.createLogger name: "mycard"
moment = require 'moment'
#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_IP = []
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
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 = []
......@@ -949,31 +960,35 @@ if settings.modules.http
else if u.pathname == '/api/message'
if !pass_validated
response.writeHead(200)
response.end(u.query.callback + "( '密码错误', 0 );")
response.end(u.query.callback + "( ['密码错误', 0] );")
return
if u.query.shout
for room in Room.all
ygopro.stoc_send_chat_to_room(room, u.query.shout, ygopro.constants.COLORS.YELLOW)
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
if u.query.stop == 'false'
u.query.stop = false
settings.modules.stop = u.query.stop
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
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.end(u.query.callback + "( 'welcome ok', '" + u.query.welcome + "' );")
response.end(u.query.callback + "( ['get ok', '" + settings.modules.welcome + "'] );")
else if u.query.ban
settings.BANNED_user.push(u.query.ban)
response.writeHead(200)
response.end(u.query.callback + "( 'ban ok', '" + u.query.ban + "' );")
response.end(u.query.callback + "( ['ban ok', '" + u.query.ban + "'] );")
else
response.writeHead(404)
......
// Generated by CoffeeScript 1.10.0
(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');
......@@ -28,9 +28,40 @@
bunyan = require('bunyan');
log = bunyan.createLogger({
name: "mycard"
});
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 = [];
......@@ -79,24 +110,6 @@
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 = [];
tribute = function(socket) {
......@@ -1171,7 +1184,7 @@
} else if (u.pathname === '/api/message') {
if (!pass_validated) {
response.writeHead(200);
response.end(u.query.callback + "( '密码错误', 0 );");
response.end(u.query.callback + "( ['密码错误', 0] );");
return;
}
if (u.query.shout) {
......@@ -1181,22 +1194,25 @@
ygopro.stoc_send_chat_to_room(room, u.query.shout, ygopro.constants.COLORS.YELLOW);
}
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) {
if (u.query.stop === 'false') {
u.query.stop = false;
}
settings.modules.stop = u.query.stop;
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) {
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.end(u.query.callback + "( 'welcome ok', '" + u.query.welcome + "' );");
response.end(u.query.callback + "( ['get ok', '" + settings.modules.welcome + "'] );");
} else if (u.query.ban) {
settings.BANNED_user.push(u.query.ban);
response.writeHead(200);
response.end(u.query.callback + "( 'ban ok', '" + u.query.ban + "' );");
response.end(u.query.callback + "( ['ban ok', '" + u.query.ban + "'] );");
} else {
response.writeHead(404);
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