]> git.sesse.net Git - remoteglot/blobdiff - server/hash-lookup.js
Merge branch 'master' of /home/magne/remoteglot
[remoteglot] / server / hash-lookup.js
index 139d228211845b29187f4c080294c12d6e859a8b..032b87be2f1924397de7bc7c4d4edccaea8c6f26 100644 (file)
@@ -7,16 +7,32 @@ var hashprobe_proto = grpc.load(PROTO_PATH).hashprobe;
 var board = new Chess();
 
 var clients = [];
+var current_servers = [];
+
+var need_reinit = function(servers) {
+       if (servers.length != current_servers.length) {
+               return true;
+       }
+       for (var i = 0; i < servers.length; ++i) {
+               if (servers[i] != current_servers[i]) {
+                       return true;
+               }
+       }
+       return false;
+}
+exports.need_reinit = need_reinit;
 
 var init = function(servers) {
+       clients = [];
        for (var i = 0; i < servers.length; ++i) {
                clients.push(new hashprobe_proto.HashProbe(servers[i], grpc.credentials.createInsecure()));
        }
+       current_servers = servers;
 }
 exports.init = init;
 
 var handle_request = function(fen, response) {
-       if (!board.validate_fen(fen).valid) {
+       if (fen === undefined || fen === null || fen === '' || !board.validate_fen(fen).valid) {
                response.writeHead(400, {});
                response.end();
                return;
@@ -133,24 +149,23 @@ var translate_line = function(board, fen, line) {
        if (line['move'] && line['move']['from_sq']) {
                var promo = line['move']['promotion'];
                if (promo) {
-                       r['pretty_move'] = board.move({ from: line['move']['from_sq'], to: line['move']['to_sq'], promotion: promo.toLowerCase() }).san;
+                       r['move'] = board.move({ from: line['move']['from_sq'], to: line['move']['to_sq'], promotion: promo.toLowerCase() }).san;
                } else {
-                       r['pretty_move'] = board.move({ from: line['move']['from_sq'], to: line['move']['to_sq'] }).san;
+                       r['move'] = board.move({ from: line['move']['from_sq'], to: line['move']['to_sq'] }).san;
                }
        } else {
-               r['pretty_move'] = '';
+               r['move'] = '';
        }
-       r['sort_key'] = r['pretty_move'];
        if (!line['found']) {
-               r['pv_pretty'] = [];
+               r['pv'] = [];
                return r;
        }
        r['depth'] = line['depth'];
 
        // Convert the PV.
        var pv = [];
-       if (r['pretty_move']) {
-               pv.push(r['pretty_move']);
+       if (r['move']) {
+               pv.push(r['move']);
        }
        for (var j = 0; j < line['pv'].length; ++j) {
                var move = line['pv'][j];