#!/usr/bin/perl -w
use strict;
my %lites = (
"Zin" => 1,
);
my %specials = (
"[" => [ "[", "]", "mortal" ],
"{" => [ "{", "}", "raceldr" ],
"(" => [ "(", ")", "birther" ],
"<" => [ "<", ">", "wizard" ],
);
my %baselites = (
"sales" => "c1",
"nightlife+" => "c2",
"bat" => "c3",
"wanted" => "c4",
"mage" => "c4",
);
print << 'EOT';
Logfile
EOT
my ($b1, $b2, $qc, $bt);
sub tq($)
{
my ($s) = @_;
$s =~ s/&/&/;
$s =~ s/</;
$s =~ s/>/>/;
$s =~ s/ä/ä/;
$s =~ s/ö/ö/;
$s =~ s/Ä/Ä/;
$s =~ s/Ö/Ö/;
return $s;
}
sub updateData($$$)
{
my ($ctype, $chn, $name) = @_;
$qc = " class=\"c0\"";
if (defined($baselites{$chn})) {
my $s = $baselites{$chn};
if (substr($s, 0, 1) eq "#") {
$qc = " style=\"color: ".$s."\"";
} else {
$qc = " class=\"".$s."\"";
}
}
if (defined($specials{$ctype})) {
$b1 = $specials{$ctype}[0];
$b2 = $specials{$ctype}[1];
$bt = " class=\"".$specials{$ctype}[2]."\"";
} else {
$bt = $b1 = $b2 = "";
}
if (defined($lites{$name})) {
$qc = $bt;
}
}
sub printCSpan($$)
{
print "".tq($_[1])."
\n";
}
my $line = 0;
while () {
chomp;
$line++;
if (/^ *([A-ZäöåÄÖÅ][A-Za-zäöåÄÖÅ '-]+) ([\(\<\{\[])([a-z+]+)([\]\}\>\)])\: (.*)$/) {
# Channel say
updateData($2, $3, $1);
print "".tq($1)." ".$b1."".tq($3)."".$b2.": ".tq($5)."
\n";
}
elsif (/^([\(\<\{\[])([a-z+]+)([\]\}\>\)])\: (.*)$/) {
# Channel emotes
my ($brace, $chn, $text) = ($1, $2, $4);
my $name = "";
if ($text =~ /^([A-Z][a-z]+)(.*)$/) {
$name = $1;
}
updateData($brace, $chn, $name);
print "".$b1."".tq($chn)."".$b2.": ".tq($text)."
\n";
}
elsif (/^([A-Z][a-z]+) tells ([^\']+) \'(.*)\'$/) {
# Someone send tell to you
printCSpan("r_tell", $_);
}
elsif (/^\@([A-Z][a-z]+) .+$/) {
# Received emotes
printCSpan("r_emote", $_);
}
elsif (/^([A-Z][a-z]+) tells ([^\']+) \'(.*)\' \(([A-Za-z0-9 :]+)\)$/) {
# Offline tells
printCSpan("r_offtell", $_);
}
elsif (/^You tell ([^\']+) \'(.*)\'$/) {
# You send tell to one or more people
printCSpan("s_tell", $_);
}
elsif (/^Info: .+$/) {
# Inform lines
printCSpan("inform", $_);
}
elsif (/^-- *$/) {
print "
\n";
}
else {
# All other lines
print tq($_)."
\n";
}
}
print << 'EOT';
EOT