Commit a7f76153 authored by mercury233's avatar mercury233

fix

parent e3bf3b1a
...@@ -136,6 +136,11 @@ net.createServer (client) -> ...@@ -136,6 +136,11 @@ net.createServer (client) ->
redisdb.expire("replay:"+replay.replay_id, 60*60*48) redisdb.expire("replay:"+replay.replay_id, 60*60*48)
buffer=new Buffer(replay.replay_buffer,'binary') buffer=new Buffer(replay.replay_buffer,'binary')
zlib.unzip buffer, (err, replay_buffer) => zlib.unzip buffer, (err, replay_buffer) =>
if err
log.info err
ygopro.stoc_send_chat(client,"播放录像出错", 11)
client.end()
return
ygopro.stoc_send_chat(client,"正在观看云录像:R##{replay.replay_id} #{replay.player_names} #{replay.date_time}", 14) ygopro.stoc_send_chat(client,"正在观看云录像:R##{replay.replay_id} #{replay.player_names} #{replay.date_time}", 14)
client.write replay_buffer client.write replay_buffer
client.end() client.end()
...@@ -287,6 +292,9 @@ ygopro.ctos_follow 'JOIN_GAME', false, (buffer, info, client, server)-> ...@@ -287,6 +292,9 @@ ygopro.ctos_follow 'JOIN_GAME', false, (buffer, info, client, server)->
redisdb.lrange client.remoteAddress+":replays", 0, 2, (err, result)=> redisdb.lrange client.remoteAddress+":replays", 0, 2, (err, result)=>
_.each result, (replay_id,id)=> _.each result, (replay_id,id)=>
redisdb.hgetall "replay:"+replay_id, (err, replay)=> redisdb.hgetall "replay:"+replay_id, (err, replay)=>
if err or !replay
log.info err
return
ygopro.stoc_send_chat(client,"<#{id-0+1}> R##{replay_id} #{replay.player_names} #{replay.date_time}", 14) ygopro.stoc_send_chat(client,"<#{id-0+1}> R##{replay_id} #{replay.player_names} #{replay.date_time}", 14)
return return
return return
...@@ -301,8 +309,17 @@ ygopro.ctos_follow 'JOIN_GAME', false, (buffer, info, client, server)-> ...@@ -301,8 +309,17 @@ ygopro.ctos_follow 'JOIN_GAME', false, (buffer, info, client, server)->
else if info.pass[0...2].toUpperCase()=="R#" and settings.modules.enable_cloud_replay else if info.pass[0...2].toUpperCase()=="R#" and settings.modules.enable_cloud_replay
replay_id=info.pass.split("#")[1] replay_id=info.pass.split("#")[1]
if (replay_id>0 and replay_id<=3) if (replay_id>0 and replay_id<=9)
redisdb.lindex client.remoteAddress+":replays", replay_id-1, (err, replay_id)=> redisdb.lindex client.remoteAddress+":replays", replay_id-1, (err, replay_id)=>
if err or !replay_id
log.info err
ygopro.stoc_send_chat(client,"没有找到录像", 11)
ygopro.stoc_send client, 'ERROR_MSG',{
msg: 1
code: 2
}
client.end()
return
redisdb.hgetall "replay:"+replay_id, client.open_cloud_replay redisdb.hgetall "replay:"+replay_id, client.open_cloud_replay
return return
else if replay_id else if replay_id
......
...@@ -186,6 +186,12 @@ ...@@ -186,6 +186,12 @@
buffer = new Buffer(replay.replay_buffer, 'binary'); buffer = new Buffer(replay.replay_buffer, 'binary');
zlib.unzip(buffer, (function(_this) { zlib.unzip(buffer, (function(_this) {
return function(err, replay_buffer) { return function(err, replay_buffer) {
if (err) {
log.info(err);
ygopro.stoc_send_chat(client, "播放录像出错", 11);
client.end();
return;
}
ygopro.stoc_send_chat(client, "正在观看云录像:R#" + replay.replay_id + " " + replay.player_names + " " + replay.date_time, 14); ygopro.stoc_send_chat(client, "正在观看云录像:R#" + replay.replay_id + " " + replay.player_names + " " + replay.date_time, 14);
client.write(replay_buffer); client.write(replay_buffer);
client.end(); client.end();
...@@ -342,6 +348,10 @@ ...@@ -342,6 +348,10 @@
return function(err, result) { return function(err, result) {
_.each(result, function(replay_id, id) { _.each(result, function(replay_id, id) {
redisdb.hgetall("replay:" + replay_id, function(err, replay) { redisdb.hgetall("replay:" + replay_id, function(err, replay) {
if (err || !replay) {
log.info(err);
return;
}
ygopro.stoc_send_chat(client, "<" + (id - 0 + 1) + "> R#" + replay_id + " " + replay.player_names + " " + replay.date_time, 14); ygopro.stoc_send_chat(client, "<" + (id - 0 + 1) + "> R#" + replay_id + " " + replay.player_names + " " + replay.date_time, 14);
}); });
}); });
...@@ -358,9 +368,19 @@ ...@@ -358,9 +368,19 @@
})(this)), 500); })(this)), 500);
} else if (info.pass.slice(0, 2).toUpperCase() === "R#" && settings.modules.enable_cloud_replay) { } else if (info.pass.slice(0, 2).toUpperCase() === "R#" && settings.modules.enable_cloud_replay) {
replay_id = info.pass.split("#")[1]; replay_id = info.pass.split("#")[1];
if (replay_id > 0 && replay_id <= 3) { if (replay_id > 0 && replay_id <= 9) {
redisdb.lindex(client.remoteAddress + ":replays", replay_id - 1, (function(_this) { redisdb.lindex(client.remoteAddress + ":replays", replay_id - 1, (function(_this) {
return function(err, replay_id) { return function(err, replay_id) {
if (err || !replay_id) {
log.info(err);
ygopro.stoc_send_chat(client, "没有找到录像", 11);
ygopro.stoc_send(client, 'ERROR_MSG', {
msg: 1,
code: 2
});
client.end();
return;
}
redisdb.hgetall("replay:" + replay_id, client.open_cloud_replay); redisdb.hgetall("replay:" + replay_id, client.open_cloud_replay);
}; };
})(this)); })(this));
......
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