File: cp2iso.pl

package info (click to toggle)
irssi-scripts 20070925
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 3,708 kB
  • ctags: 2,415
  • sloc: perl: 54,737; makefile: 43; sh: 20
file content (85 lines) | stat: -rw-r--r-- 2,395 bytes parent folder | download
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#!/usr/bin/perl -w
#
# cp2iso.pl
# Translates CP1250 to ISO8859-2 in incoming messages
#
# Written by Jakub Jankowski <shasta@atn.pl>
# for Irssi 0.7.98.4+
#
# Code looks much prettier now, thanks to Ion's euro.pl :)
#
# Use at your own risk, though ;)

use strict;
use vars qw($VERSION %IRSSI);

$VERSION = "1.1";
%IRSSI = (
    authors     => 'Jakub Jankowski',
    contact     => 'shasta@atn.pl',
    name        => 'cp2iso',
    description => 'Translates CP1250 to ISO8859-2 in incoming messages',
    license     => 'GNU GPLv2 or later',
    url         => 'http://irssi.atn.pl/',
);

use Irssi;

my $cp1250_notifier = " [cp1250]";

sub message_public {
	return unless $_[1] =~ tr/\214\234\217\237\245\271/\246\266\254\274\241\261/;
	$_[1] .= $cp1250_notifier;
	Irssi::signal_stop();
	Irssi::signal_emit("message public", @_);
}

sub message_private {
	return unless $_[1] =~ tr/\214\234\217\237\245\271/\246\266\254\274\241\261/;
	$_[1] .= $cp1250_notifier;
	Irssi::signal_stop();
	Irssi::signal_emit("message private", @_);
}

sub message_irc_action {
	return unless $_[1] =~ tr/\214\234\217\237\245\271/\246\266\254\274\241\261/;
	$_[1] .= $cp1250_notifier;
	Irssi::signal_stop();
	Irssi::signal_emit("message irc action", @_);
}

sub message_part {
	return unless $_[4] =~ tr/\214\234\217\237\245\271/\246\266\254\274\241\261/;
	$_[4] .= $cp1250_notifier;
	Irssi::signal_stop();
	Irssi::signal_emit("message part", @_);
}

sub message_quit {
	return unless $_[3] =~ tr/\214\234\217\237\245\271/\246\266\254\274\241\261/;
	$_[3] .= $cp1250_notifier;
	Irssi::signal_stop();
	Irssi::signal_emit("message quit", @_);
}

sub message_kick {
	return unless $_[5] =~ tr/\214\234\217\237\245\271/\246\266\254\274\241\261/;
	$_[5] .= $cp1250_notifier;
	Irssi::signal_stop();
	Irssi::signal_emit("message kick", @_);
}

sub message_topic {
	return unless $_[2] =~ tr/\214\234\217\237\245\271/\246\266\254\274\241\261/;
	$_[2] .= $cp1250_notifier;
	Irssi::signal_stop();
	Irssi::signal_emit("message topic", @_);
}

Irssi::signal_add("message public", "message_public");
Irssi::signal_add("message private", "message_private");
Irssi::signal_add("message irc action", "message_irc_action");
Irssi::signal_add("message part", "message_part");
Irssi::signal_add("message quit", "message_quit");
Irssi::signal_add("message kick", "message_kick");
Irssi::signal_add("message topic", "message_topic");