#!/usr/bin/perl -w

use strict;

my $mailto = 'ajackson@oplnk.net';
my ($lastkey, $lastmouse) = (interrupt('keyboard'), interrupt('Mouse'));
my $active = 0;
my $today = 0;

while (1) { # loop forever

	#	reset everything at 4:00 AM, email results, and continue

	my @t = localtime(time);
	my $dat = ($t[5]+1900) . "-" . ($t[4]+1) . "-" . $t[3] . " " . $t[2] . ":" . $t[1] . ":" . $t[0];
	if ($t[1] == 0) {
		#`echo "blacklightning usage = $active minutes" | mhmail $mailto`; 
		open (UT,">>usage_stats") || die "Can't open usage_stats, $!\n";
		print UT "$dat $active minutes $today\n";
		close UT;
		$today += $active;
		if ($today > 120 && $active > 0 ) {
			`wall "Time up : $today`;
		}
		$active = 0;
		if ($t[2] == 4) {$today = 0;}
	}

	#	normal loop behavior

	my ($key, $mouse) = (interrupt('keyboard'), interrupt('Mouse'));
	if ($key != $lastkey || $mouse != $lastmouse) {
		$active ++;
		$lastkey = $key;
		$lastmouse = $mouse;
	}

	#print "---> $active\n";
	#print "$dat $active minutes\n";
	sleep 60;
}

##############################################################################

sub interrupt {
	my $dev = shift;
	open (INTR,"</proc/interrupts") || die "Can't open /proc/interrupts, $!\n";
	while (<INTR>) {
		if (/$dev/) {
			close INTR;
			return (split(/\s+/))[2];
		}
	}
}

