my $pos = Position->start_pos($pgn->white, $pgn->black);
my $moves = $pgn->moves;
my @uci_moves = ();
+ my @repretty_moves = ();
for my $move (@$moves) {
- my $uci_move;
- ($pos, $uci_move) = $pos->make_pretty_move($move);
+ my ($npos, $uci_move) = $pos->make_pretty_move($move);
push @uci_moves, $uci_move;
+
+ # Re-prettyprint the move.
+ my ($from_col, $from_row, $to_col, $to_row, $promo) = parse_uci_move($uci_move);
+ my ($pretty, undef) = $pos->{'board'}->prettyprint_move($from_row, $from_col, $to_row, $to_col, $promo);
+ push @repretty_moves, $pretty;
+ $pos = $npos;
}
$pos->{'result'} = $pgn->result;
- $pos->{'pretty_history'} = $moves;
+ $pos->{'pretty_history'} = \@repretty_moves;
extract_clock($pgn, $pos);
my ($engine, @x) = @_;
while (scalar @x > 0) {
- if ($x[0] =~ /^(name|author)$/) {
- my $key = shift @x;
+ if ($x[0] eq 'name') {
my $value = join(' ', @x);
- $engine->{'id'}{$key} = $value;
+ $engine->{'id'}{'author'} = $value;
last;
}
my $json = {};
$json->{'position'} = $pos_calculating->to_json_hash();
- $json->{'id'} = $engine->{'id'};
+ $json->{'engine'} = $engine->{'id'};
+ if (defined($remoteglotconf::engine_url)) {
+ $json->{'engine'}{'url'} = $remoteglotconf::engine_url;
+ }
+ if (defined($remoteglotconf::engine_details)) {
+ $json->{'engine'}{'details'} = $remoteglotconf::engine_details;
+ }
+ if (defined($remoteglotconf::move_source)) {
+ $json->{'move_source'} = $remoteglotconf::move_source;
+ }
+ if (defined($remoteglotconf::move_source_url)) {
+ $json->{'move_source_url'} = $remoteglotconf::move_source_url;
+ }
$json->{'score'} = long_score($info, $pos_calculating, '');
$json->{'short_score'} = short_score($info, $pos_calculating, '');
$json->{'plot_score'} = plot_score($info, $pos_calculating, '');
+ $json->{'using_lomonosov'} = defined($remoteglotconf::tb_serial_key);
$json->{'nodes'} = $info->{'nodes'};
$json->{'nps'} = $info->{'nps'};
my $new_depth = $json->{'depth'} // 0;
my $new_nodes = $json->{'nodes'} // 0;
if (!defined($old_engine) ||
- $old_engine ne $json->{'id'}{'name'} ||
+ $old_engine ne $json->{'engine'}{'name'} ||
$new_depth > $old_depth ||
($new_depth == $old_depth && $new_nodes >= $old_nodes)) {
atomic_set_contents($filename, $encoded);
$dbh->do('DELETE FROM scores WHERE id=?', undef, $id);
$dbh->do('INSERT INTO scores (id, plot_score, short_score, engine, depth, nodes) VALUES (?,?,?,?,?,?)', undef,
$id, $json->{'plot_score'}, $json->{'short_score'},
- $json->{'id'}{'name'}, $new_depth, $new_nodes);
+ $json->{'engine'}{'name'}, $new_depth, $new_nodes);
$dbh->commit;
}
}