Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use vars qw($VERSION %IRSSI);
- use Irssi;
- use String::ShellQuote;
- $VERSION = '1.00';
- %IRSSI = (
- authors => 'Richard Grenville',
- contact => 'HIDDEN@gmail.com',
- name => 'Notification',
- description => 'Sound + libnotify notification' .
- license => 'GPL',
- );
- Irssi::signal_add_last("message public", "msg_pub") => \&msg_pub;
- Irssi::signal_add_last("message private", "msg_priv") => \&msg_priv;
- Irssi::signal_add_last("message join", "msg_join") => \&msg_join;
- Irssi::signal_add_last("message part", "msg_part") => \&msg_part;
- Irssi::signal_add_last("message quit", "msg_quit") => \&msg_quit;
- # Irssi::signal_add_last("message own_public", "msg_test") => \&msg_test;
- my %exclusions = (
- KottNet => [ '#teeworlds', '#kottnet', 'QUIT' ],
- );
- sub strescape {
- my ($str) = @_;
- $str =~ s/^-/ -/g;
- return String::ShellQuote::shell_quote($str);
- }
- sub cmdexec {
- my ($summary, $msg, $icon, $sound) = @_;
- system("notify-send --icon=/usr/share/pixmaps/pidgin/tray/hicolor/32x32/status/pidgin-tray-" . $icon . " " . strescape($summary) . " " . strescape($msg) . " &> /dev/null & ");
- # system("notify-send " . strescape($summary) . " " . strescape($msg) . " & ");
- system("mplayer2 /usr/share/sounds/purple/" . $sound . " -really-quiet -volume 100 & ");
- }
- sub chkexcl {
- my ($server_rec, $msg, $nick, $tgt) = @_;
- return 0 if ($msg !~ /$server_rec->{'nick'}/i && $exclusions{$server_rec->{'tag'}} && ($tgt ~~ $exclusions{$server_rec->{'tag'}} || '*' ~~ $exclusions{$server_rec->{'tag'}}));
- return 0 if ($server_rec->{'nick'} eq $nick);
- return 1;
- }
- sub msg_pub {
- my ($server_rec, $msg, $nick, $addr, $tgt) = @_;
- cmdexec($nick . " on " . $tgt, $msg, "pending.png", "receive.wav") if chkexcl($server_rec, $msg, $nick, $tgt);
- }
- sub msg_priv {
- my ($server_rec, $msg, $nick, $addr) = @_;
- cmdexec($nick . " - Private", $msg, "email.png", "receive.wav");
- }
- sub msg_join {
- my ($server_rec, $channel, $nick, $addr) = @_;
- cmdexec($nick . " - Join " . $channel, $addr, "available.png", "login.wav") if chkexcl($server_rec, '', $nick, $channel);
- }
- sub msg_part {
- my ($server_rec, $channel, $nick, $addr, $msg) = @_;
- cmdexec($nick . " - Part " . $channel, $msg, "busy.png", "logout.wav") if chkexcl($server_rec, $msg, $nick, $channel);
- }
- sub msg_quit {
- my ($server_rec, $nick, $addr, $msg) = @_;
- cmdexec($nick . " - Quit", $msg, "offline.png", "logout.wav") if chkexcl($server_rec, $msg, $nick, 'QUIT');
- }
- sub msg_test {
- my ($server_rec, $msg, $tgt) = @_;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement