/usr/share/irssi/scripts/sana_cmd.pl is in irssi-scripts 20131030.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | # /sana command, translates english-finnish-english.
# BUGS: Doesn't handle UTF-8.
use warnings;
use strict;
use HTML::Entities ();
use Irssi ();
use LWP::Simple ();
use vars qw($VERSION %IRSSI);
$VERSION = "0.1";
%IRSSI = (
authors => 'Johan "Ion" Kiviniemi, idea taken from Riku Voipio\'s sana.pl',
contact => 'ion at hassers.org',
name => 'sana-cmd',
description => '/sana command, translates english-finnish-english.',
license => 'Public Domain',
url => 'http://ion.amigafin.org/irssi/',
changed => 'Sat Mar 16 06:20 EET 2002',
);
Irssi::command_bind(
'sana' => sub {
my @params = split /\s+/, shift;
unless (@params) {
Irssi::print("Sana: Usage: "
. (substr(Irssi::settings_get_str('cmdchars'), 0, 1) || "/")
. "sana word");
return;
}
my $word = $params[0];
$word =~ s/ /+/g;
$word =~ s/(\W)/'%' . unpack "H*", $1/eg;
if (my $content =
LWP::Simple::get(
'http://www.tracetech.net:8081/?word=' . $word))
{
$content = HTML::Entities::decode($content);
$content =~ s/\015?\012/ /g;
$content =~ s/<[^>]+>/ /g; # Ugly, but it does the trick here.
my @words = $content =~ /(\S+)\s+(\(\S+?\))/g;
if (@words) {
Irssi::print("Sana: $word: @words");
} else {
Irssi::print("Sana: $word: No translations.");
}
} else {
Irssi::print("Sana failed.");
}
}
);
|