#!/usr/bin/perl use strict; use IO::Handle; # $Id: ############################################################################# # # # This script is intended do decrypt STDIN and write that to STDOUT. # # # # Changes: # # # # 14-10-2002 creation (Wol) # # @heh# ############################################################################# # System init. select(STDERR); $| = 1; # make unbuffered select(STDOUT); $| = 1; # make unbuffered # constants/variables. my $MYNICK = 'Test'; my $MYLOCATION = ''; my $MYID = $MYNICK.'!atlantis@atlantis.sk'; my $OTHID = '!atlantis@atlantis.sk'; my $SERVID = 'atlantis.sk'; my $RECEIVING_NAME_LIST = 0; my $IGNORING_LOCATION_DESC = 0; my $IGNORING_WELCOME = 0; my $MY_RANK = ''; my $TOTAL_USERS = ''; my $MY_TOTAL_NOTIFY = ''; my $JOKES_TOTAL = ''; my $DATE = ''; my $TIME = ''; my $DAY = ''; my $MY_LASTLOG_SERVER = ''; my $MY_TOTAL_MACROS = ''; my $MY_LOCATION = ''; my $TOTAL_WIZZES = ''; my $LOCATION_ACCESS = ''; my $LOCATION_MESAGES_TOTAL = ''; my $LOCATION_ACCESS_LOCK = ''; while () { # chomp; #ignoring known messages: # # # # WELCOM if ($IGNORING_WELCOME && ($_ =~ /^ [0-9]* navstevnikov od 28\. Maja 1997$/)) { $IGNORING_WELCOME = 0; #$_ = ''; } if ($IGNORING_WELCOME) { $_ = ''; } if ($_ =~ /^\+- Vitaj v Atlantide, ([^ ]*)! -------*-\+----------*--\+$/) { $MYNICK = $1; $_ = ''; } if ($_ =~ /^\| Uroven: ([^ ]*) *\| Momentalne online: ([^ ]*) *ludi \| Posledne prihlasenie: \|/) { $MY_RANK = $1; $TOTAL_USERS = $2; $_ = ''; } if ($_ =~ /^\| Notify: ([^ ]*) *ludi \| Vtipov na jokeboarde: ([^ ]*) *\| ([^ ])*, ([^ ]*) \((Streda)\) *\|$/) { $MY_TOTAL_NOTIFY = $1; $JOKES_TOTAL = $2; $DATE = $3; $TIME = $4; $DAY = $5; $_ = ''; } if ($_ =~ /^\| Makier: ([^ ]*) *\| Miestnost: ([^ ]*) *\| ([^ ]*) *\|/) { $MY_TOTAL_MACROS = $1; $MY_LOCATION = $2; $MY_LASTLOG_SERVER = $3; $_ = ''; } if ($_ =~ '\+-----------------\+-----------------------------\+------------------------------\+') { $_ = ':'.$SERVID.' 001 '.$MYNICK.' :Welcome to the Internet Relay Network '.$MYNICK.'!atlantis@atlantisk.sk'."\n" . ':'.$SERVID.' 002 '.$MYNICK.' :Your host is '.$SERVID.', running version 2.10.3p3+hemp+fic3+fan'."\n" . ':'.$SERVID.' 003 '.$MYNICK.' :This server was created Fri Jan 11 2002 at 07:12:57 CET'."\n" . ':'.$SERVID.' 004 '.$MYNICK.' '.$SERVID.' 2.10.3p3+hemp+fic3+fan aoOirw abeiIklmnoOpqrstv'."\n" . ':'.$SERVID.' 251 '.$MYNICK.' :There are '.$TOTAL_USERS.' users and 0 services on 1 servers'."\n" .':'.$SERVID.' 252 '.$MYNICK.' '.$TOTAL_WIZZES.' :operators online'."\n"; $_ = ''; } # watch for our actions if ($_ =~ /^You( .*)$/) { $_ = $MYNICK.$1; } # TELL if ($_ =~ /^([^ ]*) tells you: (.*)$/) { $_ = ':' . $1 .$OTHID.' PRIVMSG ' . $MYNICK . ' :' . $2 . "\n"; } if ($_ =~ /^$MYNICK tell ([^ ]*): (.*)/) { $_ = ':' . $MYNICK . $MYID . ' PRIVMSG '. $1 .' :'.$2."\n"; } # GO if ($_ =~ /^\+--- Location: ([^ ]*) --------------------------*\+/) { $_ = ':' . $MYID . ' PART :#'.$MYLOCATION."\n:" . $MYNICK . ' JOIN :#' . $1 . "\n"; $IGNORING_LOCATION_DESC = 1; $MYLOCATION = $1; } if ($IGNORING_LOCATION_DESC && ($_ =~ /^$/)) { $IGNORING_LOCATION_DESC = 0; } if ($IGNORING_LOCATION_DESC && ($_ =~ /^..*$/)) { $_ = ''; } if ($_ =~ /^Access is (set|fixed) to ([^ ]*) and there are ([^ ]*) messages on the board\.$/) { $LOCATION_ACCESS_LOCK = $1; $LOCATION_ACCESS = $2; $LOCATION_MESAGES_TOTAL = $3; $_ = ''; } # GO err NOT adjoined if ($_ =~ /^The ([^ ]*) is not adjoined to here.$/) { $_ = ':'.$SERVID.' 403 '.$MYNICK.' #'.$1.' :No such channel'."\n"; } # GO err PRIVATE # Nemozes sa takto dostat do private miestnosti, skus .letmein jazierko # Ta miestnost je prave PRIVATNA, nemozes vstupit. # $_ = ':'.$SERVID.' 473 '.$MYNICK.' #'.$1.' :Cannot join channel (+i)'; # PART JOIN if ($_ =~ /^[^ ]* sa odtransportoval(a|) na namestie ...$/) { # we leave this for further translation :) $_ = '-> '.$_; } if ($_ =~ /^[^ ]* sem priletel(a|) na kridlach!/) { $_ = '<- '.$_; } if ($_ =~ /^<- ([^ ]*)(.*)/) { $_ = ':' . $1 . $OTHID. ' JOIN :#'.$MYLOCATION."\n" } if ($_ =~ /^-> ([^ ]*)(.*)/) { $_ = ':' . $1 . $OTHID. ' PART #'.$MYLOCATION.' :'.$1.$2 ."\n" } # SAY* if ($_ =~ /^([^ ]*) (says|asks|exclaims|napisal tabulku|)(|\([^ ]*\)): (.*)/) { $_ = ':' . $1 . $OTHID. ' PRIVMSG #' . $MYLOCATION . ' :'.$3.$4 . "\n"; } if ($_ =~ /^$MYNICK say(| \([^)]*\)): (.*)/) { $_ = ':'.$MYNICK.' PRIVMSG #'.$MYLOCATION.' :'.$1.'> '.$2."\n"; } # SHOUT if ($_ =~ /^([^ ]*) shout(s|): (.*)/) { $_ = ':' . $1 . $OTHID . ' PRIVMSG #atlantis :'.$3."\n"; } if ($_ =~ /^([^ ]*) gossip(s|): (.*)/) { $_ = ':'.$1.$OTHID.' PRIVMSG #gossip :'.$3."\n"; } # AWAY # this is not IRC compliant, hope it works if ($_ =~ /^([^ ]*) odisiel od klavesnice: (.*)/) { $_ = ':' . $1 . $OTHID . ' AWAY :' . $2 . "\n"; } # BACK # this is not IRC compliant, hope it works if ($_ =~ /^([^ ]*) sa vratil ku klavesnici./) { $_ = ':' . $1 . $OTHID . " AWAY :\n"; } # LOOK USER LIST if ($_ =~ /^$MYNICK can see:$/) { $RECEIVING_NAME_LIST = 1; $_ = ':'.$SERVID.' 353 '.$MYNICK.' @ '.$MYLOCATION.' :'.$MYNICK."\n"; } if ($RECEIVING_NAME_LIST && ($_ =~ /^ ([^ ]*) (.*)/)) { $_ = ':'.$SERVID.' 353 '.$MYNICK.' @ '.$MYLOCATION.' :'.$1."\n"; } if ($RECEIVING_NAME_LIST && ($_ =~ /^$/)) { $RECEIVING_NAME_LIST = 0; $_ = ':'.$SERVID.' 366 '.$MYNICK.' '.$MYLOCATION.' :End of NAMES list.'."\n"; } if ($_ =~ /^(There is: .*|Exits are: .*|There are no exits\.)$/) { $_ = ':'.$SERVID.' '.$MYNICK.' NOTICE '.$_; } if($_ =~ /^Current topic: (.*) \[([^ ]*)\]$/) { $_ = ':'.$SERVID.' 332 '.$MYNICK.' #'.$MYLOCATION.' :'.$1."\n" .':'.$SERVID.' 333 '.$MYNICK.' #'.$MYLOCATION.' '.$2.$OTHID.' 1034702684'."\n"; } # server done if ($_ =~ /^ Toto bol online rozhovor na talkri atlantis.sk 7000 - Bratislava, Slovensko$/) { $_ = 'ERROR :Closing Link: '.$MYNICK.'['.$OTHID.'] (Ping timeout)'."\n"; } # EMOTE if ($_ =~ /^([a-zA-Z]+) (.*)/) { $_ = ':'.$1.$OTHID.' PRIVMSG #'.$MYLOCATION.' :ACTION '.$2."\n"; } #ignoring known messages: #unknown messages sent to #atlantis: if ($_ =~ /^([^:].*)/) { #$_ = ':atlantis.sk PRIVMSG #atlantis :'.$1."\n"; $_ = '***'.$1."\n"; } print STDOUT; }