1# CopyLeft Riku Voipio 2001 2# Mofile Bot 3use Irssi; 4use Irssi::Irc; 5 6use vars qw($VERSION %IRSSI); 7 8$VERSION = "1.0"; 9%IRSSI = ( 10 authors => "Riku Voipio", 11 contact => "riku.voipio\@iki.fi", 12 name => "sana", 13 description => "responds to \"!sana test\" command on channels/publics with a finnish/english translatioin given as parameter", 14 license => "GPLv2", 15 url => "http://nchip.ukkosenjyly.mine.nu/irssiscripts/", 16 ); 17 18 19 20sub cmd_sana_priv { 21 my ($server, $data, $nick, $mask ) =@_; 22 return cmd_sana($server, $data, "", $mask, $nick); 23} 24sub cmd_sana { 25 my ($server, $data, $nick, $mask, $target) =@_; 26 if ($data=~/^!sana/){ 27 @foo=split(/\s+/,$data); 28 $len=@foo; 29 if ($len==1){ 30 $foo[1]="aloittelija"; 31 } 32 # Haxxor protection 33 $word=$foo[1]; 34 $_=$word; 35 $word=~s/[^a-zA-Z����]//g; 36 open(DAT, "lynx --dump http://212.213.217.194/cgi-bin/mofind.exe/dr1?word=".$word."|"); 37 $count=0; 38 $sucks=0; 39 $result=""; 40 foreach $line (<DAT>) 41 { 42 if ($line=~/\(.*\)/) 43 { 44 $_=$line; 45 $line=~s/\s+/ /g; 46 $_=$line; 47 $line=~s/( $|^ )//g; 48 $result.=$line.","; 49 } 50 } 51 if (length($result)<2) 52 { 53 $result="Ei l�ydy.."; 54 } 55 56 chop($result); 57 $server->command("/notice ".$target." ".$result); 58 close(DAT); 59 } 60} 61 62Irssi::signal_add_last('message public', 'cmd_sana'); 63Irssi::signal_add_last('message private', 'cmd_sana_priv'); 64Irssi::print("Sanakirja info bot by nchip loaded."); 65 66 67