Commit 227962ff authored by mercury233's avatar mercury233

merge

parent 91cf1c65
......@@ -1607,15 +1607,19 @@ if settings.modules.spawn_windbot
#http
if settings.modules.http
addCallback = (callback, text)->
if not callback then return text
return callback + "( " + text + " );"
requestListener = (request, response)->
parseQueryString = true
u = url.parse(request.url, parseQueryString)
pass_validated = u.query.pass == settings.modules.http.password
if u.pathname == '/api/getrooms'
if !pass_validated
if !pass_validated and !settings.modules.enable_public_roomlist
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
response.writeHead(200)
roomsjson = JSON.stringify rooms: (for room in ROOM_all when room and room.established
......@@ -1629,8 +1633,8 @@ if settings.modules.http
pos: player.pos
),
istart: if room.started then 'start' else 'wait'
)
response.end(u.query.callback + "( " + roomsjson + " );")
), null, 2
response.end(addCallback(u.query.callback, roomsjson))
else if u.pathname == '/api/duellog' and settings.modules.tournament_mode.enabled
if !pass_validated
......@@ -1640,57 +1644,57 @@ if settings.modules.http
else
response.writeHead(200)
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'
if !pass_validated
response.writeHead(200)
response.end(u.query.callback + "( ['密码错误', 0] );")
response.end(addCallback(u.query.callback, "['密码错误', 0]"))
return
if u.query.shout
for room in ROOM_all when room and room.established
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(addCallback(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(addCallback(u.query.callback, "['stop ok', '" + u.query.stop + "']"))
else if u.query.welcome
nconf.myset(settings, 'modules:welcome', u.query.welcome)
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
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
load_tips()
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
load_dialogues()
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
ban_user(u.query.ban)
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
response.writeHead(404)
response.writeHead(400)
response.end()
else
response.writeHead(404)
response.writeHead(400)
response.end()
return
......
// Generated by CoffeeScript 1.10.0
(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');
......@@ -2019,15 +2019,21 @@
}
if (settings.modules.http) {
addCallback = function(callback, text) {
if (!callback) {
return text;
}
return callback + "( " + text + " );";
};
requestListener = function(request, response) {
var duellog, k, len, parseQueryString, pass_validated, player, room, roomsjson, u;
parseQueryString = true;
u = url.parse(request.url, parseQueryString);
pass_validated = u.query.pass === settings.modules.http.password;
if (u.pathname === '/api/getrooms') {
if (!pass_validated) {
if (!pass_validated && !settings.modules.enable_public_roomlist) {
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 {
response.writeHead(200);
roomsjson = JSON.stringify({
......@@ -2064,8 +2070,8 @@
}
return results;
})()
});
response.end(u.query.callback + "( " + roomsjson + " );");
}, null, 2);
response.end(addCallback(u.query.callback, roomsjson));
}
} else if (u.pathname === '/api/duellog' && settings.modules.tournament_mode.enabled) {
if (!pass_validated) {
......@@ -2075,12 +2081,12 @@
} else {
response.writeHead(200);
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') {
if (!pass_validated) {
response.writeHead(200);
response.end(u.query.callback + "( ['密码错误', 0] );");
response.end(addCallback(u.query.callback, "['密码错误', 0]"));
return;
}
if (u.query.shout) {
......@@ -2091,39 +2097,39 @@
}
}
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) {
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(addCallback(u.query.callback, "['stop ok', '" + u.query.stop + "']"));
} else if (u.query.welcome) {
nconf.myset(settings, 'modules:welcome', u.query.welcome);
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) {
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) {
load_tips();
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) {
load_dialogues();
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) {
ban_user(u.query.ban);
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 {
response.writeHead(404);
response.writeHead(400);
response.end();
}
} else {
response.writeHead(404);
response.writeHead(400);
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