View difference between Paste ID: XhT4HJL1 and XhZ9ANRv
SHOW: | | - or go back to the newest paste.
1
#!/usr/bin/perl
2
# This script was based on Jolttz' script, thanks man!
3
# Author: Tom
4
# Blog: kaabel.net/blog/
5
# IRC: irc.malvager.com #perlbar
6
 
7
use strict;
8
use Irssi;
9
use vars qw($VERSION %IRSSI);
10
Irssi::signal_add('print text', 'notify'); # Add the signals and match them to the appropriate subs.
11
Irssi::signal_add('message private',  'private');
12
 
13
$VERSION = '1.00';
14
%IRSSI = (
15
    authors     => 'jolttz, Tom',
16
    contact     => 'jolttz[at]gmail.com, quellcode.blog[at]gmail.com',
17
    name        => 'notify.pl',
18
    description => 'This script notifies you using notification-daemon or notify-osd whenever someone mentions your nickname or sends you a private message on IRC.'
19
);
20
 
21-
my $own_nick = "|torvaldl|trollvald"; # Fill in all the nicknames you use, seperated by a '|'. 
21+
my $own_nick = "nick1|nick2|nick3"; # Fill in all the nicknames you use, seperated by a '|'. 
22
 
23
sub notify {
24
    my ($dest, $text, $stripped) = @_;
25
    my $server = $dest->{server};
26
 
27
    return if (!($dest->{level} & MSGLEVEL_HILIGHT)); # If the message isn't highlighted, then return.
28
 
29
    # Get out bad characters
30
    $stripped =~ s/`//g; # Remove ` to prevent a crash.
31
    # Imagine going "notify-send -i /usr/share/pixmaps/gnome-irc.png -t 3500 \"$dest->{target} - $nick says:\" \"$message\"", where $message = `rm -rf *`: that would suck.
32
    $stripped =~ s/\\//g;
33
    $stripped =~ s/\$/'\$'/g; # Put $ in quotes
34
    my $message = $stripped;
35
    $message =~ s/^(<.\w+>)\s+(($own_nick).\s+)?//; # Do some regexp to only get out the message.
36
    $message =~ s/"/'/g;
37
    my $nick = $stripped;
38
    if ($nick =~ /^<.\w+>/) { 
39
  $nick = $&;
40
        # Do some regexp to get out some chars, such as < and @
41
  $nick =~ s/<//g; 
42
  $nick =~ s/>//g;
43
  $nick =~ s/@//g;
44
    }
45
    system("/full/path/to/irssiPush IRC \'$dest->{target} - $nick says:\' \'$message\'");
46
}
47
 
48
sub private {
49
    my ($server, $data, $nick, $address) = @_; # Get all the variables.
50
    # See $stripped above
51
    $data =~ s/\\//g;
52
    $data =~ s/`//g;
53
    $data =~ s/"/'/g;
54
    $data =~ s/\$/'\$'/g;
55-
    # The last arg is the priority. 0 is normal. 2 is emergency.
55+
56
}