aboutsummaryrefslogtreecommitdiffstats
path: root/.irssi/scripts
diff options
context:
space:
mode:
Diffstat (limited to '.irssi/scripts')
l---------.irssi/scripts/autorun/notify_irssi.pl1
-rw-r--r--.irssi/scripts/notify_irssi.pl69
2 files changed, 70 insertions, 0 deletions
diff --git a/.irssi/scripts/autorun/notify_irssi.pl b/.irssi/scripts/autorun/notify_irssi.pl
new file mode 120000
index 0000000..27e7bff
--- /dev/null
+++ b/.irssi/scripts/autorun/notify_irssi.pl
@@ -0,0 +1 @@
+../notify_irssi.pl \ No newline at end of file
diff --git a/.irssi/scripts/notify_irssi.pl b/.irssi/scripts/notify_irssi.pl
new file mode 100644
index 0000000..90a5f31
--- /dev/null
+++ b/.irssi/scripts/notify_irssi.pl
@@ -0,0 +1,69 @@
+#!/usr/bin/perl
+
+## Put me in ~/.irssi/scripts, and then execute the following in irssi:
+##
+## /load perl
+## /script load notify_irssi.pl
+##
+
+use strict;
+use IO::Socket;
+use Irssi;
+use vars qw($VERSION %IRSSI);
+
+$VERSION = "0.01";
+%IRSSI = (
+ authors => 'konni',
+ contact => 'konstantin.koslowski@gmail.com',
+ name => 'notify_irssi.pl',
+ description => 'TODO',
+ license => 'GNU General Public License',
+ url => 'none',
+);
+
+my $divider = ":::";
+
+# server, nick, msg, active
+sub notify {
+ my $sock = new IO::Socket::INET (
+ PeerAddr => '127.0.0.1',
+ PeerPort => '7090',
+ Proto => 'tcp',
+ );
+
+ if ($sock) {
+ my($server, $nick, $msg, $active) = @_;
+ print $sock $server,$divider,"$nick",$divider,"$msg",$divider,$active;
+ }
+}
+
+sub notify_message {
+ my($dest, $msg, $nick, $address, $target) = @_;
+ my $server = $dest->{server};
+
+ my $active_win = Irssi::active_win();
+ my $active = 0;
+ if ($active_win->get_active_name() eq $nick) {
+ $active = 1;
+ }
+ # return if ($active);
+
+ notify($server, $nick, $msg, $active);
+}
+
+sub notify_print {
+ my ($dest, $text, $msg) = @_;
+ my $server = $dest->{server};
+ my $nick = $dest->{target};
+
+ return if (!$server || !($dest->{level} & MSGLEVEL_HILIGHT));
+
+ $msg =~ s/[^a-zA-Z0-9 .,!?\@:\>]//g;
+
+ notify($server, $nick, $msg, 0);
+}
+
+Irssi::signal_add("message private", "notify_message");
+Irssi::signal_add("message invite", "notify_message");
+Irssi::signal_add("print text", "notify_print");
+#Irssi::signal_add("dcc request", "notify");