#!/usr/bin/perl

use strict;
use LogLine;
use Getopt::Long;

my $pauselength = 5;
my $outdir = 'bytime';
GetOptions("pauselength=i", \$pauselength, "outdir=s", \$outdir);

foreach my $file (@ARGV) {
	$file =~ m#/?([^/]*)$#;
	my $outlog = "$outdir/bytime-$1";
	print "writing to $outlog\n";
	open WRITE, ">$outlog" or (warn "Can't open $outlog: $!" and next);
	my @lines = &LogLine::filterMarkup(&LogLine::filterServerMessages(LogLine::readFile($file))) or warn "No data for $file: $!";
	#my @lines = &LogLine::readFile($file) or warn "Blah $!";
	print "$#lines lines\n" . &laterThan($lines[0]->{time}, "00:27", 2);
	my $prevtime = $lines[0]->{time};
	foreach my $line (@lines) {
		if (&laterThan($prevtime, $line->{time}, $pauselength)) {
			print WRITE "#boundary\n";
		}
		print WRITE $line->{raw};
		$prevtime = $line->{time};
	}	
	close WRITE;
}

sub laterThan {
	my ($oldtime, $newtime, $threshold) = @_;
	$oldtime =~ /(\d\d):(\d\d)/;
	my $oldmins = $1*60+$2;
	$newtime =~ /(\d\d):(\d\d)/;
	my $newmins = $1*60+$2;
	$oldmins + $threshold >= $newmins ? return 0 : return 1;
}
