summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Andersson <tor@ccxvii.net>2022-01-12 13:44:52 +0100
committerTor Andersson <tor@ccxvii.net>2022-01-12 16:16:38 +0100
commitc3d34c80112b291f13375b477e4fb6d70b59ed0a (patch)
tree3713427c1d632f5c8da5ce579c564f375c27d976
parent987686b489dd7965a092fe83d4e8add1d9254f34 (diff)
downloadserver-c3d34c80112b291f13375b477e4fb6d70b59ed0a.tar.gz
Tweak replay access links and gracefully handle broken replay logs.
-rw-r--r--public/common/play.js22
-rw-r--r--server.js4
2 files changed, 13 insertions, 13 deletions
diff --git a/public/common/play.js b/public/common/play.js
index 9432be4..aeb30b9 100644
--- a/public/common/play.js
+++ b/public/common/play.js
@@ -646,8 +646,9 @@ async function init_replay() {
try {
eval_action(replay[p]);
} catch (err) {
- console.log("ERROR IN REPLAY", p, replay[p], s.state, s.automatic_disruption);
- replay.length = p;
+ console.log("ERROR IN REPLAY %d %s %s/%s/%s", p, s.state, replay[p].role, replay[p].action, replay[p].arguments);
+ console.log(err);
+ replay.length = 0;
break;
}
@@ -773,17 +774,18 @@ async function init_replay() {
update_replay_view();
}
+ let div = document.createElement("div");
+ div.className = "replay";
+ if (replay.length > 0)
+ text_button(div, "Active", () => set_viewpoint("Active"));
+ for (let r of roles)
+ text_button(div, r.role, () => set_viewpoint(r.role));
+ text_button(div, "Observer", () => set_viewpoint("Observer"));
+ document.querySelector("header").appendChild(div);
+
if (replay.length > 0) {
console.log("REPLAY READY");
- let div = document.createElement("div");
- div.className = "replay";
- text_button(div, "Active", () => set_viewpoint("Active"));
- for (let r of roles)
- text_button(div, r.role, () => set_viewpoint(r.role));
- text_button(div, "Observer", () => set_viewpoint("Observer"));
- document.querySelector("header").appendChild(div);
-
div = document.createElement("div");
div.className = "replay";
text_button(div, "<<<", () => goto_replay(1));
diff --git a/server.js b/server.js
index d1f6ac8..b1aa38f 100644
--- a/server.js
+++ b/server.js
@@ -1405,10 +1405,8 @@ app.get('/replay/:game_id', function (req, res) {
if (game.status < 2)
return res.status(404).send("Invalid game ID.");
let players = SQL_SELECT_PLAYERS_JOIN.all(game_id);
- let replay = SQL_SELECT_REPLAY.all(game_id);
- if (replay.length > 0)
- return res.json({players, replay});
let state = SQL_SELECT_GAME_STATE.get(game_id);
+ let replay = SQL_SELECT_REPLAY.all(game_id);
return res.json({players, state, replay});
});