Add an option not to connect to FICS at all.
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Fri, 2 Sep 2016 16:03:51 +0000 (18:03 +0200)
committerMagne Mæhre <magne@pannekake.samfundet.no>
Sun, 13 Nov 2016 18:12:38 +0000 (19:12 +0100)
config.pm
remoteglot.pl

index 55f6d35..8050adf 100644 (file)
--- a/config.pm
+++ b/config.pm
@@ -4,7 +4,7 @@
 
 package remoteglotconf;
 
-our $server = "freechess.org";
+our $server = "freechess.org";  # undef to not connect to FICS.
 our $nick = "SesseBOT";
 our $target = "GMCarlsen";  # FICS username or HTTP to a PGN file.
 
index 6443c31..4b67496 100755 (executable)
@@ -94,40 +94,45 @@ if (defined($engine2)) {
 print "Chess engine ready.\n";
 
 # now talk to FICS
-my $t = Net::Telnet->new(Timeout => 10, Prompt => '/fics% /');
-$t->input_log(\*FICSLOG);
-$t->open($remoteglotconf::server);
-$t->print($remoteglotconf::nick);
-$t->waitfor('/Press return to enter the server/');
-$t->cmd("");
-
-# set some options
-$t->cmd("set shout 0");
-$t->cmd("set seek 0");
-$t->cmd("set style 12");
-
-my $ev1 = AnyEvent->io(
-       fh => fileno($t),
-       poll => 'r',
-       cb => sub {    # what callback to execute
-               while (1) {
-                       my $line = $t->getline(Timeout => 0, errmode => 'return');
-                       return if (!defined($line));
-
-                       chomp $line;
-                       $line =~ tr/\r//d;
-                       handle_fics($line);
+my ($t, $ev1);
+if (defined($remoteglotconf::server)) {
+       $t = Net::Telnet->new(Timeout => 10, Prompt => '/fics% /');
+       $t->input_log(\*FICSLOG);
+       $t->open($remoteglotconf::server);
+       $t->print($remoteglotconf::nick);
+       $t->waitfor('/Press return to enter the server/');
+       $t->cmd("");
+
+       # set some options
+       $t->cmd("set shout 0");
+       $t->cmd("set seek 0");
+       $t->cmd("set style 12");
+
+       $ev1 = AnyEvent->io(
+               fh => fileno($t),
+               poll => 'r',
+               cb => sub {    # what callback to execute
+                       while (1) {
+                               my $line = $t->getline(Timeout => 0, errmode => 'return');
+                               return if (!defined($line));
+
+                               chomp $line;
+                               $line =~ tr/\r//d;
+                               handle_fics($line);
+                       }
                }
-       }
-);
+       );
+}
 if (defined($remoteglotconf::target)) {
        if ($remoteglotconf::target =~ /^http:/) {
                fetch_pgn($remoteglotconf::target);
-       } else {
+       } elsif (defined($t)) {
                $t->cmd("observe $remoteglotconf::target");
        }
 }
-print "FICS ready.\n";
+if (defined($t)) {
+       print "FICS ready.\n";
+}
 
 # Engine events have already been set up by Engine.pm.
 EV::run;
@@ -423,7 +428,9 @@ sub handle_position {
        # hour, the analysis/relay has most likely stopped
        # and we should stop hogging server resources.
        #
-       $t->cmd("date");
+       if (defined($t)) {
+               $t->cmd("date");
+       }
 }
 
 sub parse_infos {