Commit Diff


commit - dbcfa451afea4a8bf56933462988cf943d663490
commit + 5720da41f70fef5581ee1a9149046d73c6ec6e5f
blob - 734a85eefab6b29d75ab92eba7bd36311a6cd2fc
blob + 20db9c983f3f79b5db558594473acce4e35dc021
--- mata_bot.pl
+++ mata_bot.pl
@@ -10,37 +10,34 @@ use constant {
 	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) = @_;
 
@@ -123,7 +120,7 @@ sub replycmd {
 		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});
@@ -250,7 +247,7 @@ sub sendmsg {
 	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;
@@ -279,7 +276,7 @@ sub recvmsg {
 		}
 		# read a line
 		$! = 0;
-		unless (($sock) = $s->can_read($SOCK_TIMEOUT)) {
+		unless (($sock) = $s->can_read(SOCK_TIMEOUT)) {
 			if ($!)	{
 				logger(LOG_ERROR, $!);
 				return undef;
@@ -312,7 +309,7 @@ sub evasdrop {
 			$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;
@@ -324,11 +321,11 @@ sub evasdrop {
 			$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;
@@ -374,8 +371,8 @@ sub init {
 	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,
@@ -392,10 +389,10 @@ while (1) {
 	$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;
@@ -411,6 +408,6 @@ while (1) {
 	} 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;
 }