summaryrefslogtreecommitdiff
path: root/translate_irssi_to_ascii.pl
diff options
context:
space:
mode:
authoryo mama <pepper@scannerjammer.com>2015-04-19 20:31:35 -0700
committeryo mama <pepper@scannerjammer.com>2015-04-19 20:31:35 -0700
commitf1c5e2e3b569bc0e5e7235f0c3b11cfadb4f2855 (patch)
treec179da5f4760dd8fb210c52b6f3ca423c90c969f /translate_irssi_to_ascii.pl
parentaede4580450a2d8c37825d22871fa90cc15c1528 (diff)
added the old translate irssi to ascii script
Diffstat (limited to 'translate_irssi_to_ascii.pl')
-rwxr-xr-xtranslate_irssi_to_ascii.pl98
1 files changed, 98 insertions, 0 deletions
diff --git a/translate_irssi_to_ascii.pl b/translate_irssi_to_ascii.pl
new file mode 100755
index 0000000..1957e6c
--- /dev/null
+++ b/translate_irssi_to_ascii.pl
@@ -0,0 +1,98 @@
+#!/usr/bin/perl
+
+if (scalar(@ARGV) < 1){
+ usage();
+}
+
+my $infile = $ARGV[0];
+
+sub usage{
+ print STDERR "USAGE: $0 [infile]\n";
+ exit(1);
+}
+
+my $line = do {
+ local $/ = undef;
+ open my $fh, "<", $infile
+ or die "could not open $file: $!";
+ <$fh>;
+};
+
+
+
+my $meat = ($line =~ /"(.*)"/g)[0];
+ my $mirc =
+ {
+ '0' => 'white',
+ '1' => 'black',
+ '2' => 'blue',
+ '3' => 'green',
+ '4' => 'red',
+ '5' => 'brown',
+ '6' => 'purple',
+ '7' => 'orange',
+ '8' => 'yellow',
+ '9' => 'light green',
+ '10' => 'teal',
+ '11' => 'light cyan',
+ '12' => 'light blue',
+ '13' => 'pink',
+ '14' => 'gray',
+ '15' => 'light gray',
+ };
+ my $term_background =
+ {
+ 'white' => '107',
+ 'black' => '40',
+ 'blue' => '44',
+ 'green' => '42',
+ 'red' => '41',
+ 'brown' => '101', #light yellow
+ 'purple' => '45',
+ 'orange' => '101',
+ 'yellow' => '43',
+ 'light green' => '102',
+ 'teal' => '46',
+ 'light cyan' => '106',
+ 'light blue' => '104',
+ 'pink' => '105',
+ 'gray' => '100',
+ 'light gray' => '47',
+ };
+ my $term_foreground =
+ {
+ 'white' => '97',
+ 'black' => '30',
+ 'blue' => '34',
+ 'green' => '32',
+ 'red' => '31',
+ 'brown' => '93', #light yellow
+ 'purple' => '35',
+ 'orange' => '91',
+ 'yellow' => '33',
+ 'light green' => '92',
+ 'teal' => '36',
+ 'light cyan' => '96',
+ 'light blue' => '94',
+ 'pink' => '95',
+ 'gray' => '90',
+ 'light gray' => '37',
+ };
+
+sub process_string {
+ my $fg_code = process_foreground($_[0]);
+ my $bg_code = process_background($_[1]);
+ my $content = $_[2];
+ return sprintf("\033[1;%s;%sm%s\033[0m", $fg_code, $bg_code, $content)
+}
+sub process_foreground{
+ my $num = shift;
+ return $term_foreground->{$mirc->{$num}};
+}
+sub process_background{
+ my $num = shift;
+ return $term_background->{$mirc->{$num}};
+}
+my @parts = map { $_ =~ s/\\n/\n/g; $_ } map { $_ =~ s/^(\d+),(\d+)(.*)/process_string($1, $2, $3)/e; $_; } split(/\\x03/, $meat);
+
+print join('', @parts);