Commit a2bc43d8 authored by mercury233's avatar mercury233

test:stop log to avoid memory leak;http shout

parent 8b34cc43
config.json config.json
/ygocore/
################# #################
## node ## node
......
...@@ -89,7 +89,7 @@ class Room ...@@ -89,7 +89,7 @@ class Room
@process = spawn './ygopro', param, cwd: 'ygocore' @process = spawn './ygopro', param, cwd: 'ygocore'
@process.on 'exit', (code)=> @process.on 'exit', (code)=>
log.info 'room-exit', this.name, this.port, code #log.info 'room-exit', this.name, this.port, code
@disconnector = 'server' unless @disconnector @disconnector = 'server' unless @disconnector
this.delete() this.delete()
@process.stdout.setEncoding('utf8') @process.stdout.setEncoding('utf8')
...@@ -135,22 +135,22 @@ class Room ...@@ -135,22 +135,22 @@ class Room
return unless @dueling_players[0] and @dueling_players[1] #a WTF fix return unless @dueling_players[0] and @dueling_players[1] #a WTF fix
User.findOne { name: @dueling_players[0].name }, (err, player0)=> User.findOne { name: @dueling_players[0].name }, (err, player0)=>
if(err) if(err)
log.error "error when find user", @dueling_players[0].name, err #log.error "error when find user", @dueling_players[0].name, err
else if(!player0) else if(!player0)
log.error "can't find user ", @dueling_players[0].name #log.error "can't find user ", @dueling_players[0].name
else else
User.findOne { name: @dueling_players[1].name }, (err, player1)=> User.findOne { name: @dueling_players[1].name }, (err, player1)=>
if(err) if(err)
log.error "error when find user", @dueling_players[1].name, err #log.error "error when find user", @dueling_players[1].name, err
else if(!player1) else if(!player1)
log.error "can't find user ", @dueling_players[1].name #log.error "can't find user ", @dueling_players[1].name
else else
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
#卡组 #卡组
log.info user: player0._id, card_usages: @dueling_players[0].deck #log.info user: player0._id, card_usages: @dueling_players[0].deck
Deck.findOne user: player0._id, card_usages: @dueling_players[0].deck, (err, deck0)=> Deck.findOne user: player0._id, card_usages: @dueling_players[0].deck, (err, deck0)=>
if(err) if(err)
log.error "error when find deck" #log.error "error when find deck"
else if(!deck0) else if(!deck0)
deck0 = new Deck({name: 'match', user: player0._id, card_usages: @dueling_players[0].deck, used_count: 1, last_used_at: Date.now()}) deck0 = new Deck({name: 'match', user: player0._id, card_usages: @dueling_players[0].deck, used_count: 1, last_used_at: Date.now()})
deck0.save() deck0.save()
...@@ -158,11 +158,11 @@ class Room ...@@ -158,11 +158,11 @@ class Room
deck0.used_count++ deck0.used_count++
deck0.last_used_at = Date.now() deck0.last_used_at = Date.now()
deck0.save() deck0.save()
log.info deck0 #log.info deck0
log.info @dueling_players[0].deck, @dueling_players[1].deck, @dueling_players #log.info @dueling_players[0].deck, @dueling_players[1].deck, @dueling_players
Deck.findOne user: player1._id, card_usages: @dueling_players[1].deck, (err, deck1)=> Deck.findOne user: player1._id, card_usages: @dueling_players[1].deck, (err, deck1)=>
if(err) if(err)
log.error "error when find deck" #log.error "error when find deck"
else if(!deck1) else if(!deck1)
deck1 = new Deck({name: 'match', user: player1._id, card_usages: @dueling_players[1].deck, used_count: 1, last_used_at: Date.now()}) deck1 = new Deck({name: 'match', user: player1._id, card_usages: @dueling_players[1].deck, used_count: 1, last_used_at: Date.now()})
deck1.save() deck1.save()
...@@ -170,7 +170,7 @@ class Room ...@@ -170,7 +170,7 @@ class Room
deck1.used_count++ deck1.used_count++
deck1.last_used_at = Date.now() deck1.last_used_at = Date.now()
deck1.save() deck1.save()
log.info deck1 #log.info deck1
Match.create Match.create
players: [{user: player0._id, deck: deck0._id}, {user: player1._id, deck: deck1._id}] players: [{user: player0._id, deck: deck0._id}, {user: player1._id, deck: deck1._id}]
...@@ -178,7 +178,7 @@ class Room ...@@ -178,7 +178,7 @@ class Room
winner: if match_winner == 0 then player0._id else player1._id, winner: if match_winner == 0 then player0._id else player1._id,
ygopro_version: settings.version ygopro_version: settings.version
,(err, match)-> ,(err, match)->
log.info err, match #log.info err, match
#积分 #积分
if match_winner == 0 if match_winner == 0
...@@ -188,13 +188,13 @@ class Room ...@@ -188,13 +188,13 @@ class Room
winner = player1 winner = player1
loser = player0 loser = player0
log.info('before_settle_result',winner.name, winner.points,loser.name, loser.points) #log.info('before_settle_result',winner.name, winner.points,loser.name, loser.points)
winner.points += 5 winner.points += 5
if _.last(@duels).reason == 4 if _.last(@duels).reason == 4
loser.points -= 8 loser.points -= 8
else else
loser.points -= 3 loser.points -= 3
log.info('duel_settle_result',winner.name, winner.points,loser.name, loser.points) #log.info('duel_settle_result',winner.name, winner.points,loser.name, loser.points)
winner.save() winner.save()
loser.save() loser.save()
......
...@@ -108,7 +108,6 @@ ...@@ -108,7 +108,6 @@
}); });
this.process.on('exit', (function(_this) { this.process.on('exit', (function(_this) {
return function(code) { return function(code) {
log.info('room-exit', _this.name, _this.port, code);
if (!_this.disconnector) { if (!_this.disconnector) {
_this.disconnector = 'server'; _this.disconnector = 'server';
} }
...@@ -205,29 +204,25 @@ ...@@ -205,29 +204,25 @@
}, (function(_this) { }, (function(_this) {
return function(err, player0) { return function(err, player0) {
if (err) { if (err) {
return log.error("error when find user", _this.dueling_players[0].name, err);
} else if (!player0) { } else if (!player0) {
return log.error("can't find user ", _this.dueling_players[0].name);
} else { } else {
return User.findOne({ return User.findOne({
name: _this.dueling_players[1].name name: _this.dueling_players[1].name
}, function(err, player1) { }, function(err, player1) {
var loser, winner; var loser, winner;
if (err) { if (err) {
return log.error("error when find user", _this.dueling_players[1].name, err);
} else if (!player1) { } else if (!player1) {
return log.error("can't find user ", _this.dueling_players[1].name);
} else { } else {
log.info({
user: player0._id,
card_usages: _this.dueling_players[0].deck
});
Deck.findOne({ Deck.findOne({
user: player0._id, user: player0._id,
card_usages: _this.dueling_players[0].deck card_usages: _this.dueling_players[0].deck
}, function(err, deck0) { }, function(err, deck0) {
if (err) { if (err) {
log.error("error when find deck");
} else if (!deck0) { } else if (!deck0) {
deck0 = new Deck({ deck0 = new Deck({
name: 'match', name: 'match',
...@@ -242,14 +237,12 @@ ...@@ -242,14 +237,12 @@
deck0.last_used_at = Date.now(); deck0.last_used_at = Date.now();
deck0.save(); deck0.save();
} }
log.info(deck0);
log.info(_this.dueling_players[0].deck, _this.dueling_players[1].deck, _this.dueling_players);
return Deck.findOne({ return Deck.findOne({
user: player1._id, user: player1._id,
card_usages: _this.dueling_players[1].deck card_usages: _this.dueling_players[1].deck
}, function(err, deck1) { }, function(err, deck1) {
if (err) { if (err) {
log.error("error when find deck");
} else if (!deck1) { } else if (!deck1) {
deck1 = new Deck({ deck1 = new Deck({
name: 'match', name: 'match',
...@@ -264,7 +257,6 @@ ...@@ -264,7 +257,6 @@
deck1.last_used_at = Date.now(); deck1.last_used_at = Date.now();
deck1.save(); deck1.save();
} }
log.info(deck1);
return Match.create({ return Match.create({
players: [ players: [
{ {
...@@ -278,9 +270,7 @@ ...@@ -278,9 +270,7 @@
duels: _this.duels, duels: _this.duels,
winner: match_winner === 0 ? player0._id : player1._id, winner: match_winner === 0 ? player0._id : player1._id,
ygopro_version: settings.version ygopro_version: settings.version
}, function(err, match) { }, function(err, match) {});
return log.info(err, match);
});
}); });
}); });
if (match_winner === 0) { if (match_winner === 0) {
...@@ -290,14 +280,12 @@ ...@@ -290,14 +280,12 @@
winner = player1; winner = player1;
loser = player0; loser = player0;
} }
log.info('before_settle_result', winner.name, winner.points, loser.name, loser.points);
winner.points += 5; winner.points += 5;
if (_.last(_this.duels).reason === 4) { if (_.last(_this.duels).reason === 4) {
loser.points -= 8; loser.points -= 8;
} else { } else {
loser.points -= 3; loser.points -= 3;
} }
log.info('duel_settle_result', winner.name, winner.points, loser.name, loser.points);
winner.save(); winner.save();
return loser.save(); return loser.save();
} }
......
...@@ -49,7 +49,7 @@ net.createServer (client) -> ...@@ -49,7 +49,7 @@ net.createServer (client) ->
#释放处理 #释放处理
client.on 'close', (had_error) -> client.on 'close', (had_error) ->
log.info "client closed", client.name, had_error #log.info "client closed", client.name, had_error
client.room.disconnector = client if client.room and client.room.started and client in client.room.dueling_players and !client.room.disconnector client.room.disconnector = client if client.room and client.room.started and client in client.room.dueling_players and !client.room.disconnector
unless client.closed unless client.closed
client.closed = true client.closed = true
...@@ -57,7 +57,7 @@ net.createServer (client) -> ...@@ -57,7 +57,7 @@ net.createServer (client) ->
server.end() server.end()
client.on 'error', (error)-> client.on 'error', (error)->
log.info "client error", client.name, error #log.info "client error", client.name, error
client.room.disconnector = client if client.room and client.room.started and client in client.room.dueling_players and !client.room.disconnector client.room.disconnector = client if client.room and client.room.started and client in client.room.dueling_players and !client.room.disconnector
unless client.closed unless client.closed
client.closed = error client.closed = error
...@@ -65,7 +65,7 @@ net.createServer (client) -> ...@@ -65,7 +65,7 @@ net.createServer (client) ->
server.end() server.end()
server.on 'close', (had_error) -> server.on 'close', (had_error) ->
log.info "server closed", client.name, had_error #log.info "server closed", client.name, had_error
server.closed = true unless server.closed server.closed = true unless server.closed
client.room.disconnector = 'server' if client.room and client.room.started and client in client.room.dueling_players and !client.room.disconnector client.room.disconnector = 'server' if client.room and client.room.started and client in client.room.dueling_players and !client.room.disconnector
unless client.closed unless client.closed
...@@ -73,7 +73,7 @@ net.createServer (client) -> ...@@ -73,7 +73,7 @@ net.createServer (client) ->
client.end() client.end()
server.on 'error', (error)-> server.on 'error', (error)->
log.info "server error", client.name, error #log.info "server error", client.name, error
server.closed = error server.closed = error
client.room.disconnector = 'server' if client.room and client.room.started and client in client.room.dueling_players and !client.room.disconnector client.room.disconnector = 'server' if client.room and client.room.started and client in client.room.dueling_players and !client.room.disconnector
unless client.closed unless client.closed
...@@ -218,7 +218,7 @@ ygopro.ctos_follow 'JOIN_GAME', false, (buffer, info, client, server)-> ...@@ -218,7 +218,7 @@ ygopro.ctos_follow 'JOIN_GAME', false, (buffer, info, client, server)->
} }
client.end() client.end()
else else
log.info 'join_game',info.pass, client.name #log.info 'join_game',info.pass, client.name
client.room = Room.find_or_create_by_name(info.pass) client.room = Room.find_or_create_by_name(info.pass)
if client.room.started if client.room.started
if settings.modules.post_start_watching if settings.modules.post_start_watching
...@@ -297,7 +297,7 @@ ygopro.stoc_follow 'JOIN_GAME', false, (buffer, info, client, server)-> ...@@ -297,7 +297,7 @@ ygopro.stoc_follow 'JOIN_GAME', false, (buffer, info, client, server)->
break break
watcher.on 'error', (error)-> watcher.on 'error', (error)->
log.error "watcher error", error #log.error "watcher error", error
watcher.on 'close', (had_error)-> watcher.on 'close', (had_error)->
for w in client.room.ws_watchers for w in client.room.ws_watchers
...@@ -331,7 +331,7 @@ ygopro.stoc_follow 'GAME_MSG', false, (buffer, info, client, server)-> ...@@ -331,7 +331,7 @@ ygopro.stoc_follow 'GAME_MSG', false, (buffer, info, client, server)->
pos = buffer.readUInt8(1) pos = buffer.readUInt8(1)
pos = 1 - pos unless client.is_first or pos == 2 pos = 1 - pos unless client.is_first or pos == 2
reason = buffer.readUInt8(2) reason = buffer.readUInt8(2)
log.info {winner: pos, reason: reason} #log.info {winner: pos, reason: reason}
client.room.duels.push {winner: pos, reason: reason} client.room.duels.push {winner: pos, reason: reason}
#lp跟踪 #lp跟踪
if ygopro.constants.MSG[msg] == 'DAMAGE' and client.is_host if ygopro.constants.MSG[msg] == 'DAMAGE' and client.is_host
...@@ -421,7 +421,7 @@ if settings.modules.tips ...@@ -421,7 +421,7 @@ if settings.modules.tips
json: true json: true
, (error, response, body)-> , (error, response, body)->
tips = body tips = body
log.info "tips loaded", tips.length #log.info "tips loaded", tips.length
ygopro.stoc_follow 'DUEL_START', false, (buffer, info, client, server)-> ygopro.stoc_follow 'DUEL_START', false, (buffer, info, client, server)->
unless client.room.started #first start unless client.room.started #first start
...@@ -431,12 +431,12 @@ ygopro.stoc_follow 'DUEL_START', false, (buffer, info, client, server)-> ...@@ -431,12 +431,12 @@ ygopro.stoc_follow 'DUEL_START', false, (buffer, info, client, server)->
for player in client.room.players when player.pos != 7 for player in client.room.players when player.pos != 7
client.room.dueling_players[player.pos] = player client.room.dueling_players[player.pos] = player
if !player.main if !player.main
log.error 'WTF', client #log.error 'WTF', client
else else
player.deck = mycard.load_card_usages_from_cards(player.main, player.side) player.deck = mycard.load_card_usages_from_cards(player.main, player.side)
if !client.room.dueling_players[0] or !client.room.dueling_players[1] #if !client.room.dueling_players[0] or !client.room.dueling_players[1]
log.error 'incomplete room', client.room.dueling_players, client.room.players #log.error 'incomplete room', client.room.dueling_players, client.room.players
if settings.modules.tips if settings.modules.tips
ygopro.stoc_send_random_tip(client) ygopro.stoc_send_random_tip(client)
...@@ -452,13 +452,13 @@ ygopro.ctos_follow 'CHAT', false, (buffer, info, client, server)-> ...@@ -452,13 +452,13 @@ ygopro.ctos_follow 'CHAT', false, (buffer, info, client, server)->
if line.indexOf('rtt') != -1 if line.indexOf('rtt') != -1
ygopro.stoc_send_chat_to_room client.room, line ygopro.stoc_send_chat_to_room client.room, line
else else
log.warn 'ping', stdout #log.warn 'ping', stdout
ygopro.stoc_send_chat_to_room client.room, stdout ygopro.stoc_send_chat_to_room client.room, stdout
when '/ranktop' when '/ranktop'
if settings.modules.database if settings.modules.database
User.find null, null, { sort: { points : -1 }, limit: 8 }, (err, users)-> User.find null, null, { sort: { points : -1 }, limit: 8 }, (err, users)->
if err if err
return log.error 'ranktop', err return #log.error 'ranktop', err
for index, user of users for index, user of users
ygopro.stoc_send_chat client, [parseInt(index)+1, user.points, user.name].join(' ') ygopro.stoc_send_chat client, [parseInt(index)+1, user.points, user.name].join(' ')
...@@ -480,7 +480,7 @@ ygopro.ctos_follow 'CHAT', false, (buffer, info, client, server)-> ...@@ -480,7 +480,7 @@ ygopro.ctos_follow 'CHAT', false, (buffer, info, client, server)->
when '/admin showroom' when '/admin showroom'
log.info client.room log.info client.room
ygopro.ctos_follow 'UPDATE_DECK', false, (buffer, info, client, server)-> ygopro.ctos_follow 'UPDATE_DECK', false, (buffer, info, client, server)->
log.info info #log.info info
main = (info.deckbuf[i] for i in [0...info.mainc]) main = (info.deckbuf[i] for i in [0...info.mainc])
side = (info.deckbuf[i] for i in [info.mainc...info.mainc+info.sidec]) side = (info.deckbuf[i] for i in [info.mainc...info.mainc+info.sidec])
client.main = main client.main = main
...@@ -536,7 +536,7 @@ if settings.modules.http ...@@ -536,7 +536,7 @@ if settings.modules.http
log.info 'level_points loaded', level_points log.info 'level_points loaded', level_points
http_server = http.createServer (request, response)-> http_server = http.createServer (request, response)->
#http://122.0.65.70:7922/?operation=getroomjson #http://122.0.65.70:7922/?operation=getroomjson
u = url.parse(request.url) u = url.parse(request.url,1)
#log.info u #log.info u
if u.pathname == '/count.json' if u.pathname == '/count.json'
response.writeHead(200); response.writeHead(200);
...@@ -583,7 +583,7 @@ if settings.modules.http ...@@ -583,7 +583,7 @@ if settings.modules.http
istart: if room.started then 'start' else 'wait' istart: if room.started then 'start' else 'wait'
) )
response.end("loadroom( " + roomsjson + " );"); response.end("loadroom( " + roomsjson + " );");
else if u.query == 'operation=getroomjson' else if u.query.operation == 'getroomjson'
response.writeHead(200); response.writeHead(200);
response.end JSON.stringify rooms: (for room in Room.all when room.established response.end JSON.stringify rooms: (for room in Room.all when room.established
roomid: room.port.toString(), roomid: room.port.toString(),
...@@ -596,6 +596,10 @@ if settings.modules.http ...@@ -596,6 +596,10 @@ if settings.modules.http
), ),
istart: if room.started then "start" else "wait" istart: if room.started then "start" else "wait"
) )
else if u.query.pass == settings.modules.http.password && u.query.shout
for room in Room.all
ygopro.stoc_send_chat_to_room(room, u.query.shout)
response.writeHead(200);
else else
response.writeHead(404); response.writeHead(404);
response.end(); response.end();
......
...@@ -70,7 +70,6 @@ ...@@ -70,7 +70,6 @@
server = new net.Socket(); server = new net.Socket();
client.server = server; client.server = server;
client.on('close', function(had_error) { client.on('close', function(had_error) {
log.info("client closed", client.name, had_error);
if (client.room && client.room.started && indexOf.call(client.room.dueling_players, client) >= 0 && !client.room.disconnector) { if (client.room && client.room.started && indexOf.call(client.room.dueling_players, client) >= 0 && !client.room.disconnector) {
client.room.disconnector = client; client.room.disconnector = client;
} }
...@@ -83,7 +82,6 @@ ...@@ -83,7 +82,6 @@
return server.end(); return server.end();
}); });
client.on('error', function(error) { client.on('error', function(error) {
log.info("client error", client.name, error);
if (client.room && client.room.started && indexOf.call(client.room.dueling_players, client) >= 0 && !client.room.disconnector) { if (client.room && client.room.started && indexOf.call(client.room.dueling_players, client) >= 0 && !client.room.disconnector) {
client.room.disconnector = client; client.room.disconnector = client;
} }
...@@ -96,7 +94,6 @@ ...@@ -96,7 +94,6 @@
return server.end(); return server.end();
}); });
server.on('close', function(had_error) { server.on('close', function(had_error) {
log.info("server closed", client.name, had_error);
if (!server.closed) { if (!server.closed) {
server.closed = true; server.closed = true;
} }
...@@ -109,7 +106,6 @@ ...@@ -109,7 +106,6 @@
} }
}); });
server.on('error', function(error) { server.on('error', function(error) {
log.info("server error", client.name, error);
server.closed = error; server.closed = error;
if (client.room && client.room.started && indexOf.call(client.room.dueling_players, client) >= 0 && !client.room.disconnector) { if (client.room && client.room.started && indexOf.call(client.room.dueling_players, client) >= 0 && !client.room.disconnector) {
client.room.disconnector = 'server'; client.room.disconnector = 'server';
...@@ -257,7 +253,6 @@ ...@@ -257,7 +253,6 @@
}); });
return client.end(); return client.end();
} else { } else {
log.info('join_game', info.pass, client.name);
client.room = Room.find_or_create_by_name(info.pass); client.room = Room.find_or_create_by_name(info.pass);
if (client.room.started) { if (client.room.started) {
if (settings.modules.post_start_watching) { if (settings.modules.post_start_watching) {
...@@ -371,9 +366,7 @@ ...@@ -371,9 +366,7 @@
} }
return results; return results;
}); });
watcher.on('error', function(error) { watcher.on('error', function(error) {});
return log.error("watcher error", error);
});
return watcher.on('close', function(had_error) { return watcher.on('close', function(had_error) {
var j, len, ref, results, w; var j, len, ref, results, w;
ref = client.room.ws_watchers; ref = client.room.ws_watchers;
...@@ -418,10 +411,6 @@ ...@@ -418,10 +411,6 @@
pos = 1 - pos; pos = 1 - pos;
} }
reason = buffer.readUInt8(2); reason = buffer.readUInt8(2);
log.info({
winner: pos,
reason: reason
});
client.room.duels.push({ client.room.duels.push({
winner: pos, winner: pos,
reason: reason reason: reason
...@@ -519,8 +508,7 @@ ...@@ -519,8 +508,7 @@
url: settings.modules.tips, url: settings.modules.tips,
json: true json: true
}, function(error, response, body) { }, function(error, response, body) {
tips = body; return tips = body;
return log.info("tips loaded", tips.length);
}); });
} }
...@@ -538,14 +526,11 @@ ...@@ -538,14 +526,11 @@
} }
client.room.dueling_players[player.pos] = player; client.room.dueling_players[player.pos] = player;
if (!player.main) { if (!player.main) {
log.error('WTF', client);
} else { } else {
player.deck = mycard.load_card_usages_from_cards(player.main, player.side); player.deck = mycard.load_card_usages_from_cards(player.main, player.side);
} }
} }
if (!client.room.dueling_players[0] || !client.room.dueling_players[1]) {
log.error('incomplete room', client.room.dueling_players, client.room.players);
}
} }
if (settings.modules.tips) { if (settings.modules.tips) {
return ygopro.stoc_send_random_tip(client); return ygopro.stoc_send_random_tip(client);
...@@ -564,7 +549,6 @@ ...@@ -564,7 +549,6 @@
if (line.indexOf('rtt') !== -1) { if (line.indexOf('rtt') !== -1) {
return ygopro.stoc_send_chat_to_room(client.room, line); return ygopro.stoc_send_chat_to_room(client.room, line);
} else { } else {
log.warn('ping', stdout);
return ygopro.stoc_send_chat_to_room(client.room, stdout); return ygopro.stoc_send_chat_to_room(client.room, stdout);
} }
} }
...@@ -579,7 +563,7 @@ ...@@ -579,7 +563,7 @@
}, function(err, users) { }, function(err, users) {
var index, results, user; var index, results, user;
if (err) { if (err) {
return log.error('ranktop', err); return;
} }
results = []; results = [];
for (index in users) { for (index in users) {
...@@ -619,7 +603,6 @@ ...@@ -619,7 +603,6 @@
ygopro.ctos_follow('UPDATE_DECK', false, function(buffer, info, client, server) { ygopro.ctos_follow('UPDATE_DECK', false, function(buffer, info, client, server) {
var i, main, side; var i, main, side;
log.info(info);
main = (function() { main = (function() {
var j, ref, results; var j, ref, results;
results = []; results = [];
...@@ -693,8 +676,8 @@ ...@@ -693,8 +676,8 @@
} }
log.info('level_points loaded', level_points); log.info('level_points loaded', level_points);
http_server = http.createServer(function(request, response) { http_server = http.createServer(function(request, response) {
var level, name, password, player, ref, ref1, room, roomsjson, u; var j, len, level, name, password, player, ref, ref1, ref2, room, roomsjson, u;
u = url.parse(request.url); u = url.parse(request.url, 1);
if (u.pathname === '/count.json') { if (u.pathname === '/count.json') {
response.writeHead(200); response.writeHead(200);
return response.end(Room.all.length.toString()); return response.end(Room.all.length.toString());
...@@ -780,7 +763,7 @@ ...@@ -780,7 +763,7 @@
})() })()
}); });
return response.end("loadroom( " + roomsjson + " );"); return response.end("loadroom( " + roomsjson + " );");
} else if (u.query === 'operation=getroomjson') { } else if (u.query.operation === 'getroomjson') {
response.writeHead(200); response.writeHead(200);
return response.end(JSON.stringify({ return response.end(JSON.stringify({
rooms: (function() { rooms: (function() {
...@@ -817,6 +800,13 @@ ...@@ -817,6 +800,13 @@
return results; return results;
})() })()
})); }));
} else if (u.query.pass === settings.modules.http.password && u.query.shout) {
ref2 = Room.all;
for (j = 0, len = ref2.length; j < len; j++) {
room = ref2[j];
ygopro.stoc_send_chat_to_room(room, u.query.shout);
}
return response.writeHead(200);
} else { } else {
response.writeHead(404); response.writeHead(404);
return response.end(); return 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