#!/usr/bin/perl $|++; use strict; use CGI; my $username = 'josh'; my $logpath = "/Users/$username/Library/Application Support/Adium 2.0/Users/Default/Logs/"; my $query = new CGI; print $query->header; my $keyword = $query->param('keyword'); print <<__HTML__;
##
#!/usr/bin/perl
$|++;
use strict;
my $logpath = $ARGV[0];
my $keyword = $ARGV[1];
$logpath =~ s/\ /\\ /g;
my $cmd = "perl ./prep.pl -r \"$keyword\" $logpath*";
open IN, "$cmd|";
my %msgs;
my $lines;
while () {
my ($file,$prot,$me,$user,$y,$m,$d,$t,$from,$msg) = $_ =~ /($logpath(.+?)\.(.+?)\/(.+?)\/.+?\((\d{4})\|(\d{2})\|(\d{2})\)\.adiumLog):\((\d\d:\d\d:\d\d)\)\ (.+?):(.+)$/;
$msgs{$y}{$m}{$d}{$t}{$prot}{$me}{$user}{to} = $me eq $from ? $user : $me;
$msgs{$y}{$m}{$d}{$t}{$prot}{$me}{$user}{from} = $me eq $from ? $me : $user;
$msgs{$y}{$m}{$d}{$t}{$prot}{$me}{$user}{msg} = $msg;
$msgs{$y}{$m}{$d}{$t}{$prot}{$me}{$user}{file} = $file;
}
close IN;
$/=undef;
print "";
my %seen;
foreach my $y (sort keys %msgs) {
my $year = $msgs{$y};
foreach my $m (sort keys %$year) {
my $month = $$year{$m};
foreach my $d (sort keys %$month) {
my $day = $$month{$d};
foreach my $t (sort keys %$day) {
my $time = $$day{$t};
foreach my $prot (sort keys %$time) {
my $proto = $$time{$prot};
foreach my $me (sort keys %$proto) {
my $mee = $$proto{$me};
foreach my $user (sort keys %$mee) {
my $userr = $$mee{$user};
next if $seen{$$userr{file}};$seen{$$userr{file}}=1;
next unless length $$userr{from};
open F, $$userr{file};
my $dump = ;
close F;
$dump =~ s/$keyword/$keyword<\/span>/g;
$dump =~ s/\n/
/gsm;
print <<__MSG__;
- $y-$m-$d
$t
From $$userr{from}
To $$userr{to}
show log
$$userr{msg}
__MSG__
}
}
}
}
}
}
}
print "
";