]> git.sesse.net Git - remoteglot/commitdiff
Remove the now obsolete Lomonosov support.
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Mon, 25 Dec 2023 18:00:50 +0000 (19:00 +0100)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Mon, 25 Dec 2023 18:00:50 +0000 (19:00 +0100)
This was nice to have, but the service is long gone, so we can
just as well clean out the code.

config.pm
remoteglot.pl
www/css/remoteglot.css
www/index.dev.html
www/js/remoteglot.js

index 7f7e23c8688b7178ab6df4525b6d31d73ed304a1..f95d1f7e3eb8a1a777ff77ad7e1b608af9e8d2db 100644 (file)
--- a/config.pm
+++ b/config.pm
@@ -67,11 +67,6 @@ our @masters = (
 # including the --path= argument.
 our $fathom_cmdline = undef;
 
-# ChessOK serial key (of the form NNNNN-NNNNN-NNNNN-NNNNN-NNNNN-NNNNN)
-# for looking up 7-man tablebases; undef means no lookup. Note that
-# you probably need specific prior permission to use this.
-our $tb_serial_key = undef;
-
 # Credits to show in the footer.
 our $engine_url = "http://www.stockfishchess.org/";
 our $engine_details = undef;  # For hardware.
index df524a6b2e4ddd06d41ec8e8a4f2a8bf836adfb6..a79239672116df2389bcdf68f0c9ba688fccdeee 100755 (executable)
@@ -35,7 +35,6 @@ my $output_timer = undef;
 my $http_timer = undef;
 my $stop_pgn_fetch = 0;
 my $tb_retry_timer = undef;
-my %tb_cache = ();
 my $tb_lookup_running = 0;
 my $last_written_json = undef;
 
@@ -452,8 +451,6 @@ sub handle_position {
        $engine->{'info'} = {};
        $last_move = time;
 
-       schedule_tb_lookup();
-
        # 
        # Output a command every move to note that we're
        # still paying attention -- this is a good tradeoff,
@@ -690,46 +687,6 @@ sub output {
        # for new positions is off.
        undef $pos_calculating_started;
        
-       #
-       # If we have tablebase data from a previous lookup, replace the
-       # engine data with the data from the tablebase.
-       #
-       my $fen = $pos_calculating->fen();
-       if (exists($tb_cache{$fen})) {
-               for my $key (qw(pv score_cp score_mate nodes nps depth seldepth tbhits splicepos)) {
-                       delete $info->{$key . '1'};
-                       delete $info->{$key};
-               }
-               $info->{'nodes'} = 0;
-               $info->{'nps'} = 0;
-               $info->{'depth'} = 0;
-               $info->{'seldepth'} = 0;
-               $info->{'tbhits'} = 0;
-
-               my $t = $tb_cache{$fen};
-               my $pv = $t->{'pv'};
-               my $matelen = int((1 + $t->{'score'}) / 2);
-               if ($t->{'result'} eq '1/2-1/2') {
-                       $info->{'score_cp'} = 0;
-               } elsif ($t->{'result'} eq '1-0') {
-                       if ($pos_calculating->{'toplay'} eq 'B') {
-                               $info->{'score_mate'} = -$matelen;
-                       } else {
-                               $info->{'score_mate'} = $matelen;
-                       }
-               } else {
-                       if ($pos_calculating->{'toplay'} eq 'B') {
-                               $info->{'score_mate'} = $matelen;
-                       } else {
-                               $info->{'score_mate'} = -$matelen;
-                       }
-               }
-               $info->{'pv'} = $pv;
-               $info->{'tablebase'} = 1;
-       } else {
-               $info->{'tablebase'} = 0;
-       }
-       
        #
        # Some programs _always_ report MultiPV, even with only one PV.
        # In this case, we simply use that data as if MultiPV was never
@@ -934,7 +891,6 @@ sub output_json {
                $json->{'move_source_url'} = $remoteglotconf::move_source_url;
        }
        $json->{'score'} = score_digest($info, $pos_calculating, '');
-       $json->{'using_lomonosov'} = defined($remoteglotconf::tb_serial_key);
 
        $json->{'nodes'} = $info->{'nodes'};
        $json->{'nps'} = $info->{'nps'};
@@ -1403,84 +1359,6 @@ sub find_clock_start {
        $dbh->commit;
 }
 
-sub schedule_tb_lookup {
-       return if (!defined($remoteglotconf::tb_serial_key));
-       my $pos = $pos_calculating;
-       return if (exists($tb_cache{$pos->fen()}));
-
-       # If there's more than seven pieces, there's not going to be an answer,
-       # so don't bother.
-       return if ($pos->num_pieces() > 7);
-
-       # Max one at a time. If it's still relevant when it returns,
-       # schedule_tb_lookup() will be called again.
-       return if ($tb_lookup_running);
-
-       $tb_lookup_running = 1;
-       my $url = 'http://tb7-api.chessok.com:6904/tasks/addtask?auth.login=' .
-               $remoteglotconf::tb_serial_key .
-               '&auth.password=aquarium&type=0&fen=' . 
-               URI::Escape::uri_escape($pos->fen());
-       print TBLOG "Downloading $url...\n";
-       AnyEvent::HTTP::http_get($url, sub {
-               handle_tb_lookup_return(@_, $pos, $pos->fen());
-       });
-}
-
-sub handle_tb_lookup_return {
-       my ($body, $header, $pos, $fen) = @_;
-       print TBLOG "Response for [$fen]:\n";
-       print TBLOG $header . "\n\n";
-       print TBLOG $body . "\n\n";
-       eval {
-               my $response = JSON::XS::decode_json($body);
-               if ($response->{'ErrorCode'} != 0) {
-                       die "Unknown tablebase server error: " . $response->{'ErrorDesc'};
-               }
-               my $state = $response->{'Response'}{'StateString'};
-               if ($state eq 'COMPLETE') {
-                       my $pgn = Chess::PGN::Parse->new(undef, $response->{'Response'}{'Moves'});
-                       if (!defined($pgn) || !$pgn->read_game()) {
-                               warn "Error in parsing PGN\n";
-                       } else {
-                               $pgn->quick_parse_game;
-                               my $pvpos = $pos;
-                               my $moves = $pgn->moves;
-                               my @uci_moves = ();
-                               for my $move (@$moves) {
-                                       my $uci_move;
-                                       ($pvpos, $uci_move) = $pvpos->make_pretty_move($move);
-                                       push @uci_moves, $uci_move;
-                               }
-                               $tb_cache{$fen} = {
-                                       result => $pgn->result,
-                                       pv => \@uci_moves,
-                                       score => $response->{'Response'}{'Score'},
-                               };
-                               output();
-                       }
-               } elsif ($state =~ /QUEUED/ || $state =~ /PROCESSING/) {
-                       # Try again in a second. Note that if we have changed
-                       # position in the meantime, we might query a completely
-                       # different position! But that's fine.
-               } else {
-                       die "Unknown response state " . $state;
-               }
-
-               # Wait a second before we schedule another one.
-               $tb_retry_timer = AnyEvent->timer(after => 1.0, cb => sub {
-                       $tb_lookup_running = 0;
-                       schedule_tb_lookup();
-               });
-       };
-       if ($@) {
-               warn "Error in tablebase lookup: $@";
-
-               # Don't try this one again, but don't block new lookups either.
-               $tb_lookup_running = 0;
-       }
-}
-
 sub open_engine {
        my ($cmdline, $tag, $cb) = @_;
        return undef if (!defined($cmdline));
index fdb7c90de239cfa5f8f0941fb085dcf7bcda4b82..a2e221fd0847b5c5a0ba1694fe4c9a4bff49b11b 100644 (file)
@@ -181,9 +181,6 @@ a.move:hover {
 #linenav {
        display: none;
 }
-#lomonosov {
-       display: none;
-}
 
 #games {
        font-size: smaller;
index a2642567d901803460ef0d540cd0c75fb43458ca..a44ec1321da768af2dc041b9934d0fe6cf4f95de 100644 (file)
@@ -84,6 +84,6 @@
   Chessboard powered by <a href="http://chessboardjs.com/">chessboard.js</a>
   and <a href="https://github.com/jhlywa/chess.js">chess.js</a>.
   Ding sound by <a href="https://www.freesound.org/people/Aiwha/sounds/196106/">Aiwha</a> (CC-BY-3.0).
-  <span id="lomonosov">7-man Lomonosov tablebase lookup by <a href="http://tb7.chessok.com/">ChessOK</a>.</span></p>
+  </p>
 </body>
 </html>
index c2c9d0644e4303d1e447ef0653594b495054f0c4..54fc90b46afc5d5e818ddb87bd9a7cfaa41b33b6 100644 (file)
@@ -1114,15 +1114,6 @@ function update_board() {
                headline = 'Analysis';
        }
 
-       // Credits, where applicable. Note that we don't want the footer to change a lot
-       // when e.g. viewing history, so if any of these changed during the game,
-       // use the current one still.
-       if (current_data['using_lomonosov']) {
-               document.getElementById("lomonosov").style.display = null;
-       } else {
-               document.getElementById("lomonosov").style.display = 'none';
-       }
-
        // Credits: The engine name/version.
        if (current_data['engine'] && current_data['engine']['name'] !== null) {
                document.getElementById("engineid").textContent = current_data['engine']['name'];
@@ -1269,8 +1260,6 @@ function update_board() {
        // The search stats.
        if (data['searchstats']) {
                document.getElementById("searchstats").textContent = data['searchstats'];
-       } else if (data['tablebase'] == 1) {
-               document.getElementById("searchstats").textContent = "Tablebase result";
        } else if (data['nodes'] && data['nps'] && data['depth']) {
                let stats = thousands(data['nodes']) + ' nodes, ' + thousands(data['nps']) + ' nodes/sec, depth ' + data['depth'] + ' ply';
                if (data['seldepth']) {