]> git.sesse.net Git - remoteglot/blobdiff - www/js/remoteglot.js
Properly sort the scores as numbers, not strings. Oops.
[remoteglot] / www / js / remoteglot.js
index c8310fabcc3d613e2c94dc05a5f61faabcff6419..3fb0f179244b52fac38303550841ab8c2e580cab 100644 (file)
@@ -2,12 +2,16 @@ var board = [];
 var arrows = [];
 var arrow_targets = [];
 var occupied_by_arrows = [];
+var ims = 0;
+var highlight_from = undefined;
+var highlight_to = undefined;
 
 var request_update = function(board, first) {
        $.ajax({
                //url: "http://analysis.sesse.net/analysis.pl?first=" + first
-               url: "http://analysis.sesse.net:5000/analysis.pl?first=" + first
-       }).done(function(data) {
+               url: "http://analysis.sesse.net:5000/analysis.pl?ims=" + ims
+       }).done(function(data, textstatus, xhr) {
+               ims = xhr.getResponseHeader('X-Remoteglot-Last-Modified');
                update_board(board, data);
        });
 }
@@ -194,7 +198,7 @@ var find_nonstupid_moves = function(data, margin) {
        var best_score = undefined;
        var pv_score = undefined;
        for (var move in data.refutation_lines) {
-               var score = data.refutation_lines[move].score_sort_key;
+               var score = parseInt(data.refutation_lines[move].score_sort_key);
                if (move == data.pv_uci[0]) {
                        pv_score = score;
                }
@@ -214,12 +218,12 @@ var find_nonstupid_moves = function(data, margin) {
        // The PV move will always be first.
        var moves = [];
        for (var move in data.refutation_lines) {
-               var score = data.refutation_lines[move].score_sort_key;
+               var score = parseInt(data.refutation_lines[move].score_sort_key);
                if (move != data.pv_uci[0] && best_score - score <= margin) {
                        moves.push(move);
                }
        }
-       moves = moves.sort(function(a, b) { return data.refutation_lines[b].score_sort_key - data.refutation_lines[a].score_sort_key; });
+       moves = moves.sort(function(a, b) { return parseInt(data.refutation_lines[b].score_sort_key) - parseInt(data.refutation_lines[a].score_sort_key); });
        moves.unshift(data.pv_uci[0]);
 
        return moves;
@@ -264,6 +268,14 @@ var compare_by_sort_key = function(data, a, b) {
        if (ska > skb) return 1;
        return 0;
 };
+       
+var update_highlight = function()  {
+       $("#board").find('.square-55d63').removeClass('nonuglyhighlight');
+       if (highlight_from !== undefined && highlight_to !== undefined) {
+               $("#board").find('.square-' + highlight_from).addClass('nonuglyhighlight');
+               $("#board").find('.square-' + highlight_to).addClass('nonuglyhighlight');
+       }
+}
 
 var update_board = function(board, data) {
        // The headline.
@@ -304,13 +316,13 @@ var update_board = function(board, data) {
        // Update the board itself.
        board.position(data.position.fen);
 
-       $("#board").find('.square-55d63').removeClass('nonuglyhighlight');
        if (data.position.last_move_uci) {
-               var from = data.position.last_move_uci.substr(0, 2);
-               var to = data.position.last_move_uci.substr(2, 4);
-               $("#board").find('.square-' + from).addClass('nonuglyhighlight');
-               $("#board").find('.square-' + to).addClass('nonuglyhighlight');
+               highlight_from = data.position.last_move_uci.substr(0, 2);
+               highlight_to = data.position.last_move_uci.substr(2, 4);
+       } else {
+               highlight_from = highlight_to = undefined;
        }
+       update_highlight();
 
        // Print the PV.
        var pv = print_pv(data.pv_pretty, data.position.move_num, data.position.toplay);
@@ -416,6 +428,7 @@ var init = function() {
        request_update(board, 1);
        $(window).resize(function() {
                board.resize();
+               update_highlight();
                redraw_arrows();
        });
 };