our $server = "freechess.org";
our $nick = "SesseBOT";
-our $target = "GMCarlsen";
+our $target = "GMCarlsen"; # FICS username or HTTP to a PGN file.
our $json_output = "/srv/analysis.sesse.net/www/analysis.json";
our $engine_cmdline = "./stockfish";
$t->cmd("set shout 0");
$t->cmd("set seek 0");
$t->cmd("set style 12");
-$t->cmd("observe $remoteglotconf::target");
+if (defined($remoteglotconf::target)) {
+ if ($remoteglotconf::target =~ /^http:/) {
+ fetch_pgn($remoteglotconf::target);
+ } else {
+ $t->cmd("observe $remoteglotconf::target");
+ }
+}
print "FICS ready.\n";
my $ev1 = AnyEvent->io(
} elsif ($msg =~ /^pgn (.*?)$/) {
my $url = $1;
$t->cmd("tell $who Starting to poll '$url'.");
- AnyEvent::HTTP::http_get($url, sub {
- handle_pgn(@_, $url);
- });
+ fetch_pgn($url);
} elsif ($msg =~ /^stoppgn$/) {
$t->cmd("tell $who Stopping poll.");
$http_timer = undef;
#print "FICS: [$line]\n";
}
+# Starts periodic fetching of PGNs from the given URL.
+sub fetch_pgn {
+ my ($url) = @_;
+ AnyEvent::HTTP::http_get($url, sub {
+ handle_pgn(@_, $url);
+ });
+}
+
sub handle_pgn {
my ($body, $header, $url) = @_;
my $pgn = Chess::PGN::Parse->new(undef, $body);
}
$http_timer = AnyEvent->timer(after => 1.0, cb => sub {
- AnyEvent::HTTP::http_get($url, sub {
- handle_pgn(@_, $url);
- });
+ fetch_pgn($url);
});
}