Commit 227962ff authored by mercury233's avatar mercury233

merge

parent 91cf1c65
...@@ -1607,15 +1607,19 @@ if settings.modules.spawn_windbot ...@@ -1607,15 +1607,19 @@ if settings.modules.spawn_windbot
#http #http
if settings.modules.http if settings.modules.http
addCallback = (callback, text)->
if not callback then return text
return callback + "( " + text + " );"
requestListener = (request, response)-> requestListener = (request, response)->
parseQueryString = true parseQueryString = true
u = url.parse(request.url, parseQueryString) u = url.parse(request.url, parseQueryString)
pass_validated = u.query.pass == settings.modules.http.password pass_validated = u.query.pass == settings.modules.http.password
if u.pathname == '/api/getrooms' if u.pathname == '/api/getrooms'
if !pass_validated if !pass_validated and !settings.modules.enable_public_roomlist
response.writeHead(200) response.writeHead(200)
response.end(u.query.callback + '( {"rooms":[{"roomid":"0","roomname":"密码错误","needpass":"true"}]} );') response.end(addCallback(u.query.callback, '{"rooms":[{"roomid":"0","roomname":"密码错误","needpass":"true"}]}'))
else else
response.writeHead(200) response.writeHead(200)
roomsjson = JSON.stringify rooms: (for room in ROOM_all when room and room.established roomsjson = JSON.stringify rooms: (for room in ROOM_all when room and room.established
...@@ -1629,8 +1633,8 @@ if settings.modules.http ...@@ -1629,8 +1633,8 @@ if settings.modules.http
pos: player.pos pos: player.pos
), ),
istart: if room.started then 'start' else 'wait' istart: if room.started then 'start' else 'wait'
) ), null, 2
response.end(u.query.callback + "( " + roomsjson + " );") response.end(addCallback(u.query.callback, roomsjson))
else if u.pathname == '/api/duellog' and settings.modules.tournament_mode.enabled else if u.pathname == '/api/duellog' and settings.modules.tournament_mode.enabled
if !pass_validated if !pass_validated
...@@ -1640,57 +1644,57 @@ if settings.modules.http ...@@ -1640,57 +1644,57 @@ if settings.modules.http
else else
response.writeHead(200) response.writeHead(200)
duellog = JSON.stringify settings.modules.tournament_mode.duel_log duellog = JSON.stringify settings.modules.tournament_mode.duel_log
response.end(u.query.callback + "( " + duellog + " );") response.end(addCallback(u.query.callback, duellog))
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(addCallback(u.query.callback, "['密码错误', 0]"))
return return
if u.query.shout if u.query.shout
for room in ROOM_all when room and room.established for room in ROOM_all when room and room.established
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(addCallback(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(addCallback(u.query.callback, "['stop ok', '" + u.query.stop + "']"))
else if u.query.welcome else if u.query.welcome
nconf.myset(settings, 'modules:welcome', u.query.welcome) nconf.myset(settings, 'modules:welcome', u.query.welcome)
response.writeHead(200) response.writeHead(200)
response.end(u.query.callback + "( ['welcome ok', '" + u.query.welcome + "'] );") response.end(addCallback(u.query.callback, "['welcome ok', '" + u.query.welcome + "']"))
else if u.query.getwelcome else if u.query.getwelcome
response.writeHead(200) response.writeHead(200)
response.end(u.query.callback + "( ['get ok', '" + settings.modules.welcome + "'] );") response.end(addCallback(u.query.callback, "['get ok', '" + settings.modules.welcome + "']"))
else if u.query.loadtips else if u.query.loadtips
load_tips() load_tips()
response.writeHead(200) response.writeHead(200)
response.end(u.query.callback + "( ['loading tip', '" + settings.modules.tips + "'] );") response.end(addCallback(u.query.callback, "['loading tip', '" + settings.modules.tips + "']"))
else if u.query.loaddialogues else if u.query.loaddialogues
load_dialogues() load_dialogues()
response.writeHead(200) response.writeHead(200)
response.end(u.query.callback + "( ['loading dialogues', '" + settings.modules.dialogues + "'] );") response.end(addCallback(u.query.callback, "['loading dialogues', '" + settings.modules.dialogues + "']"))
else if u.query.ban else if u.query.ban
ban_user(u.query.ban) ban_user(u.query.ban)
response.writeHead(200) response.writeHead(200)
response.end(u.query.callback + "( ['ban ok', '" + u.query.ban + "'] );") response.end(addCallback(u.query.callback, "['ban ok', '" + u.query.ban + "']"))
else else
response.writeHead(404) response.writeHead(400)
response.end() response.end()
else else
response.writeHead(404) response.writeHead(400)
response.end() response.end()
return return
......
// Generated by CoffeeScript 1.10.0 // Generated by CoffeeScript 1.10.0
(function() { (function() {
var Cloud_replay_ids, Graveyard, ROOM_all, ROOM_bad_ip, ROOM_ban_player, ROOM_connected_ip, ROOM_find_by_name, ROOM_find_by_port, ROOM_find_or_create_ai, ROOM_find_or_create_by_name, ROOM_find_or_create_random, ROOM_players_banned, ROOM_players_oppentlist, ROOM_validate, Room, _, ban_user, bunyan, crypto, date, defaultconfig, execFile, fs, get_memory_usage, http, http_server, https, https_server, list, load_dialogues, load_tips, log, moment, nconf, net, options, os, path, pgClient, pg_client, pg_query, redis, redisdb, request, requestListener, roomlist, settings, spawn, spawnSync, tribute, url, users_cache, wait_room_start, windbot_process, ygopro, zlib; var Cloud_replay_ids, Graveyard, ROOM_all, ROOM_bad_ip, ROOM_ban_player, ROOM_connected_ip, ROOM_find_by_name, ROOM_find_by_port, ROOM_find_or_create_ai, ROOM_find_or_create_by_name, ROOM_find_or_create_random, ROOM_players_banned, ROOM_players_oppentlist, ROOM_validate, Room, _, addCallback, ban_user, bunyan, crypto, date, defaultconfig, execFile, fs, get_memory_usage, http, http_server, https, https_server, list, load_dialogues, load_tips, log, moment, nconf, net, options, os, path, pgClient, pg_client, pg_query, redis, redisdb, request, requestListener, roomlist, settings, spawn, spawnSync, tribute, url, users_cache, wait_room_start, windbot_process, ygopro, zlib;
net = require('net'); net = require('net');
...@@ -2019,15 +2019,21 @@ ...@@ -2019,15 +2019,21 @@
} }
if (settings.modules.http) { if (settings.modules.http) {
addCallback = function(callback, text) {
if (!callback) {
return text;
}
return callback + "( " + text + " );";
};
requestListener = function(request, response) { requestListener = function(request, response) {
var duellog, k, len, parseQueryString, pass_validated, player, room, roomsjson, u; var duellog, k, len, parseQueryString, pass_validated, player, room, roomsjson, u;
parseQueryString = true; parseQueryString = true;
u = url.parse(request.url, parseQueryString); u = url.parse(request.url, parseQueryString);
pass_validated = u.query.pass === settings.modules.http.password; pass_validated = u.query.pass === settings.modules.http.password;
if (u.pathname === '/api/getrooms') { if (u.pathname === '/api/getrooms') {
if (!pass_validated) { if (!pass_validated && !settings.modules.enable_public_roomlist) {
response.writeHead(200); response.writeHead(200);
response.end(u.query.callback + '( {"rooms":[{"roomid":"0","roomname":"密码错误","needpass":"true"}]} );'); response.end(addCallback(u.query.callback, '{"rooms":[{"roomid":"0","roomname":"密码错误","needpass":"true"}]}'));
} else { } else {
response.writeHead(200); response.writeHead(200);
roomsjson = JSON.stringify({ roomsjson = JSON.stringify({
...@@ -2064,8 +2070,8 @@ ...@@ -2064,8 +2070,8 @@
} }
return results; return results;
})() })()
}); }, null, 2);
response.end(u.query.callback + "( " + roomsjson + " );"); response.end(addCallback(u.query.callback, roomsjson));
} }
} else if (u.pathname === '/api/duellog' && settings.modules.tournament_mode.enabled) { } else if (u.pathname === '/api/duellog' && settings.modules.tournament_mode.enabled) {
if (!pass_validated) { if (!pass_validated) {
...@@ -2075,12 +2081,12 @@ ...@@ -2075,12 +2081,12 @@
} else { } else {
response.writeHead(200); response.writeHead(200);
duellog = JSON.stringify(settings.modules.tournament_mode.duel_log); duellog = JSON.stringify(settings.modules.tournament_mode.duel_log);
response.end(u.query.callback + "( " + duellog + " );"); response.end(addCallback(u.query.callback, duellog));
} }
} 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(addCallback(u.query.callback, "['密码错误', 0]"));
return; return;
} }
if (u.query.shout) { if (u.query.shout) {
...@@ -2091,39 +2097,39 @@ ...@@ -2091,39 +2097,39 @@
} }
} }
response.writeHead(200); response.writeHead(200);
response.end(u.query.callback + "( ['shout ok', '" + u.query.shout + "'] );"); response.end(addCallback(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(addCallback(u.query.callback, "['stop ok', '" + u.query.stop + "']"));
} else if (u.query.welcome) { } else if (u.query.welcome) {
nconf.myset(settings, 'modules:welcome', u.query.welcome); nconf.myset(settings, 'modules:welcome', u.query.welcome);
response.writeHead(200); response.writeHead(200);
response.end(u.query.callback + "( ['welcome ok', '" + u.query.welcome + "'] );"); response.end(addCallback(u.query.callback, "['welcome ok', '" + u.query.welcome + "']"));
} else if (u.query.getwelcome) { } else if (u.query.getwelcome) {
response.writeHead(200); response.writeHead(200);
response.end(u.query.callback + "( ['get ok', '" + settings.modules.welcome + "'] );"); response.end(addCallback(u.query.callback, "['get ok', '" + settings.modules.welcome + "']"));
} else if (u.query.loadtips) { } else if (u.query.loadtips) {
load_tips(); load_tips();
response.writeHead(200); response.writeHead(200);
response.end(u.query.callback + "( ['loading tip', '" + settings.modules.tips + "'] );"); response.end(addCallback(u.query.callback, "['loading tip', '" + settings.modules.tips + "']"));
} else if (u.query.loaddialogues) { } else if (u.query.loaddialogues) {
load_dialogues(); load_dialogues();
response.writeHead(200); response.writeHead(200);
response.end(u.query.callback + "( ['loading dialogues', '" + settings.modules.dialogues + "'] );"); response.end(addCallback(u.query.callback, "['loading dialogues', '" + settings.modules.dialogues + "']"));
} else if (u.query.ban) { } else if (u.query.ban) {
ban_user(u.query.ban); ban_user(u.query.ban);
response.writeHead(200); response.writeHead(200);
response.end(u.query.callback + "( ['ban ok', '" + u.query.ban + "'] );"); response.end(addCallback(u.query.callback, "['ban ok', '" + u.query.ban + "']"));
} else { } else {
response.writeHead(404); response.writeHead(400);
response.end(); response.end();
} }
} else { } else {
response.writeHead(404); response.writeHead(400);
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