#!/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; }