summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/cap.pl33
1 files changed, 33 insertions, 0 deletions
diff --git a/scripts/cap.pl b/scripts/cap.pl
new file mode 100644
index 0000000..794b4dc
--- /dev/null
+++ b/scripts/cap.pl
@@ -0,0 +1,33 @@
+use strict;
+use Irssi;
+use vars qw($VERSION %IRSSI);
+
+$VERSION = "1.0";
+%IRSSI = (
+ authors => 'dwfreed',
+ contact => 'dwfreed@mtu.edu',
+ name => 'cap',
+ description => 'Prints caps; derived from cap_sasl.pl by Michael Tharp (gxti), Jilles Tjoelker (jilles), and Mantas Mikulėnas (grawity)',
+ license => 'GPLv2',
+ url => 'none yet',
+);
+
+sub event_cap {
+ my ($server, $args, $nick, $address) = @_;
+ my ($subcmd, $caps);
+
+ if ($args =~ /^\S+ (\S+) :(.*)$/) {
+ $subcmd = uc $1;
+ $caps = ' '.$2.' ';
+ if ($subcmd eq 'LS') {
+ $server->print('', "CLICAP: supported by server:$caps");
+ } elsif ($subcmd eq 'ACK') {
+ $server->print('', "CLICAP: now enabled:$caps");
+ } elsif ($subcmd eq 'NAK') {
+ $server->print('', "CLICAP: refused:$caps");
+ } elsif ($subcmd eq 'LIST') {
+ $server->print('', "CLICAP: currently enabled:$caps");
+ }
+ }
+}
+Irssi::signal_add('event cap', \&event_cap);