summaryrefslogtreecommitdiffstats
path: root/scripts/urlwindow.pl
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/urlwindow.pl')
-rw-r--r--scripts/urlwindow.pl47
1 files changed, 47 insertions, 0 deletions
diff --git a/scripts/urlwindow.pl b/scripts/urlwindow.pl
new file mode 100644
index 0000000..4016285
--- /dev/null
+++ b/scripts/urlwindow.pl
@@ -0,0 +1,47 @@
+#
+# Logs all urls from #channels and /msgs in a separate window called "urls"
+#
+
+use Irssi;
+use POSIX;
+use vars qw($VERSION %IRSSI);
+use strict;
+
+$VERSION = "1.4";
+%IRSSI = (
+ authors => "zdleaf",
+ contact => 'zdleaf@zinc.london',
+ name => "urlwindow",
+ description => "Log all urls from #channels and /msgs in a separate window",
+ license => "Public Domain",
+);
+
+sub sig_printtext {
+ my ($dest, $text, $stripped) = @_;
+
+ if((($dest->{level} & (MSGLEVEL_PUBLIC)) || ($dest->{level} & (MSGLEVEL_MSGS)))
+ && ($text =~
+ qr#((?:(https?|gopher|ftp)://[^\s<>"]+|www\.[-a-z0-9.]+)[^\s.,;<">\):])# ))
+ {
+ my $window = Irssi::window_find_name('urls');
+
+ if ($dest->{level} & MSGLEVEL_PUBLIC) {
+ $text = $dest->{target}.": ".$text;
+ }
+
+ $text = strftime(
+ Irssi::settings_get_str('timestamp_format')." ",
+ localtime
+ ).$text;
+ $window->print($text, MSGLEVEL_NEVER) if ($window);
+ }
+}
+
+my $window = Irssi::window_find_name('urls');
+
+if (!$window) {
+ $window = Irssi::Windowitem::window_create('urls', 1);
+ $window->set_name('urls');
+}
+
+Irssi::signal_add('print text', 'sig_printtext');