commit - dbcfa451afea4a8bf56933462988cf943d663490
commit + 5720da41f70fef5581ee1a9149046d73c6ec6e5f
blob - 734a85eefab6b29d75ab92eba7bd36311a6cd2fc
blob + 20db9c983f3f79b5db558594473acce4e35dc021
--- mata_bot.pl
+++ mata_bot.pl
LOG_ERROR => 0,
LOG_WARN => 1,
LOG_DEBUG => 2,
+ CONNECT_TIMEOUT => 60,
+ DEFAULT_PORT => 6667,
+ DEFAULT_TLS => 0,
+ IRCMAX => 512,
+ LAG_CHECK_TIME => 120,
+ MAX_LAG => 300,
+ NBIBLE => 31102,
+ NQURAN => 6348,
+ RECONN_SLEEP => 60,
+ SOCK_TIMEOUT => 10,
};
+my $DEFAULT_CHAN = '#testmatabot';
+my $DEFAULT_HOST = 'localhost';
+my $DEFAULT_PATH_BALL = '/usr/local/share/matabot/ball';
+my $DEFAULT_PATH_HELO = '/usr/local/share/matabot/hellos';
+my $DEFAULT_PATH_QUOT = '/usr/local/share/matabot/quotes';
+my $FCUTE = '[>.<]';
+my $FDEAD = '[x~x]';
+my $FFLIP = 't[-_-t]';
+my $FGLAD = '[^_^]';
+my $FNORM = '[._.]';
+my $FSING = '[^=^]';
+my $MOM = 'noodle';
+my $MYNICK = 'mata_bot';
+my $MYREAL = 'death to technomage!!';
+my $MYUSER = 'mata_bot_beta4';
+my $NICKRE = qr/mata_?bo[ity]+/i;
-my $CONNECT_TIMEOUT = 60;
-my $DEFAULT_CHAN = '#testmatabot';
-my $DEFAULT_HOST = 'localhost';
-my $DEFAULT_PATH_BALL = '/usr/local/share/matabot/ball';
-my $DEFAULT_PATH_HELO = '/usr/local/share/matabot/hellos';
-my $DEFAULT_PATH_QUOT = '/usr/local/share/matabot/quotes';
-my $DEFAULT_PORT = 6667;
-my $DEFAULT_TLS = 0;
-my $FCUTE = '[>.<]';
-my $FDEAD = '[x~x]';
-my $FFLIP = 't[-_-t]';
-my $FGLAD = '[^_^]';
-my $FNORM = '[._.]';
-my $FSING = '[^=^]';
-my $IRCMAX = 512;
-my $LAG_CHECK_TIME = 120;
-my $MAX_LAG = 300;
-my $MOM = 'noodle';
-my $MYNICK = 'mata_bot';
-my $MYREAL = 'death to technomage!!';
-my $MYUSER = 'mata_bot_beta4';
-my $NICKRE = qr/mata_?bo[ity]+/i;
-my $RECONN_SLEEP = 60;
-my $SOCK_TIMEOUT = 10;
-my %NVERSE = (
- 'bible' => 31102,
- 'quran' => 6348,
-);
-
sub randint {
my($min, $max) = @_;
my ($book, $n, $r);
$book = $& =~ /^a/ ? 'quran' : 'bible';
- $n = randint(1, $NVERSE{$book});
+ $n = randint(1, $book eq 'quran' ? NQURAN : NBIBLE);
$r = HTTP::Tiny->new->get("https://triapul.cz/files/${book}/${n}");
if ($r->{success}) {
$reply = strip($r->{content});
my $sock;
$! = 0;
- unless (($sock) = $s->can_write($SOCK_TIMEOUT)) {
+ unless (($sock) = $s->can_write(SOCK_TIMEOUT)) {
if ($!) { logger(LOG_ERROR, $!) }
else { logger(LOG_WARN, "sock not ready to write") }
return 0;
}
# read a line
$! = 0;
- unless (($sock) = $s->can_read($SOCK_TIMEOUT)) {
+ unless (($sock) = $s->can_read(SOCK_TIMEOUT)) {
if ($!) {
logger(LOG_ERROR, $!);
return undef;
$checkping = 1;
} elsif (/^:[^ ]+ 352 [^ ]+ [^ ]+ [^ ]+ ([^ ]+)/) {
# the extra 2 bytes account for \r\n
- $msgmax = $IRCMAX - length($1) - length($priv) - 2;
+ $msgmax = IRCMAX - length($1) - length($priv) - 2;
} elsif (/^:([^ !#&][^ !]*)![^ \@]+\@[^ ]+ ${priv}(.+)$/) {
# respond to chan message
my $r;
$r = respond($1, $2, @$lists);
sendmsg($s, $priv . substr($r,0,$msgmax)) if length($r);
}
- if ($checkping and time-$pingtime > $LAG_CHECK_TIME) {
+ if ($checkping and time-$pingtime > LAG_CHECK_TIME) {
# ping server every once in a while and wait for pong
sendmsg($s, "PING :${host}");
$checkping = 0;
- } elsif (not $checkping and time-$pongtime > $MAX_LAG) {
+ } elsif (not $checkping and time-$pongtime > MAX_LAG) {
# we're leaving if we don't get ponged back on time
logger(LOG_WARN, 'server PONG response timed out');
return;
return {
chan => $chan || $DEFAULT_CHAN,
host => $host || $DEFAULT_HOST,
- port => $port || $DEFAULT_PORT,
- tls => $tls || $DEFAULT_TLS,
+ port => $port || DEFAULT_PORT,
+ tls => $tls || DEFAULT_TLS,
},
[
\@ball,
$addr = "$opts->{'host'}:$opts->{'port'}";
if ($opts->{'tls'}) {
$sock = IO::Socket::SSL->new(PeerAddr => $addr,
- Timeout => $CONNECT_TIMEOUT);
+ Timeout => CONNECT_TIMEOUT);
} else {
$sock = IO::Socket::INET->new(PeerAddr => $addr,
- Timeout => $CONNECT_TIMEOUT);
+ Timeout => CONNECT_TIMEOUT);
}
if ($sock) {
my $s;
} else {
logger(LOG_ERROR, "cannot make socket: ${IO::Socket::errstr}");
}
- logger(LOG_WARN, "reconnecting in ${RECONN_SLEEP} seconds...");
- sleep $RECONN_SLEEP;
+ logger(LOG_WARN, "reconnecting in ".RECONN_SLEEP." seconds...");
+ sleep RECONN_SLEEP;
}