use strict;
use warnings;
+use Irssi;
+use Carp qw( croak );
use Data::Dumper;
-our $VERSION = "0.3";
-our %IRSSI = (
+use vars qw($VERSION %IRSSI);
+
+$VERSION = "0.3";
+%IRSSI = (
authors => "Jari Matilainen",
contact => 'vague!#irssi@freenode on irc',
name => "notifyquit",
license => "Public Domain",
url => "http://gplus.to/vague",
changed => "24 Nov 16:00:00 CET 2015",
- );
+ );
my $active = 0;
my $permit_pending = 0;
print "https://github.com/shabble/irssi-scripts/raw/master/"
. "prompt_info/uberprompt.pl";
- die "Script Load Failed: " . join(" ", @_);
+ croak "Script Load Failed: " . join(" ", @_);
}
sub extract_nick {
win_item => $witem,
};
- Irssi::signal_stop;
+ Irssi::signal_stop();
require_confirmation($text);
}
}
# Enter, y, or Y.
if ($char =~ m/^y?$/i) {
$permit_pending = 1;
- Irssi::signal_stop;
+ Irssi::signal_stop();
Irssi::signal_emit('send text',
$pending_input->{text},
$pending_input->{server},
} elsif ($char =~ m/^n?$/i or $key == 3 or $key == 7) {
# we support n, N, Ctrl-C, and Ctrl-G for no.
- Irssi::signal_stop;
+ Irssi::signal_stop();
set_prompt('');
$permit_pending = 0;
$pending_input = {};
} else {
- Irssi::signal_stop;
+ Irssi::signal_stop();
return;
}
}
}
sub cmd_show_exceptions {
-
foreach my $e (@match_exceptions) {
print "Exception: $e";
}
}
sub cmd_show_watchlist {
- Irssi::print Dumper($watchlist);
+ Irssi::print(Dumper($watchlist));
}
sub sig_setup_changed {
# from the start again
# - /set completion_keep_publics decides how many nicks to remember
-use Irssi;
+use strict;
+use warnings;
+use Irssi::TextUI;
use Data::Dumper;
+{ package Irssi::Nick; }
+
my $VERSION = '1.0';
my %IRSSI = (
authors => 'vague',
changed => "24 Nov 16:00:00 CET 2015",
);
-my $lastspokehash = {};
+my $lastspokehash;
my $expand_next = 0;
Irssi::signal_add_first('gui key pressed', sub {
my ($key) = @_;
- my $prompt = Irssi::parse_special('$L');
- my $pos = Irssi::gui_input_get_pos();
- $server = Irssi::active_server();
- $witem = Irssi::active_win()->{active};
+ return unless exists Irssi::active_win->{active} && Irssi::active_win->{active}->{type} eq "CHANNEL";
- return unless $witem->{type} eq "CHANNEL";
+ my $prompt = Irssi::parse_special('$L');
+ my $pos = Irssi::gui_input_get_pos();
+ my $witem = Irssi::active_win()->{active};
+ my $server = Irssi::active_server();
- my $arr = $lastspokehash{$server->{tag}}->{$witem->{name}};
+ my $arr = $lastspokehash->{$server->{tag}}->{$witem->{name}} || [];
if(!$expand_next) {
return unless $key == 9;
return;
}
- if($expand_next < scalar @{$arr}) {
+ if($expand_next < @$arr) {
$expand_next++;
} else {
$expand_next = 0;
sub expando_lastspoke {
my ($server, $witem) = @_;
- $server = Irssi::active_server();
- $witem = Irssi::active_win()->{active};
+ $server = Irssi::active_server() unless $server;
+ $witem = Irssi::active_win()->{active} unless $witem;
return '' if $expand_next == 0;
return '' unless ref($witem) eq 'Irssi::Irc::Channel';
- my $arr = $lastspokehash{$server->{tag}}->{$witem->{name}};
- return '' unless @{$arr};
- return '' unless $expand_last <= $arr;
- return @{$lastspokehash{$server->{tag}}->{$witem->{name}}}[$expand_next - 1];
+ my $arr = $lastspokehash->{$server->{tag}}->{$witem->{name}};
+ return '' unless @$arr;
+ return '' unless $expand_next <= @$arr;
+
+ return @{$lastspokehash->{$server->{tag}}->{$witem->{name}}}[$expand_next - 1];
}
sub act_public {
- my ($server, $msg, $nick, $address, $witem) = @_;
+ my ($server, $msg, $nick, $address, $target) = @_;
- return if $witem eq '';
+ return if $target eq '';
my $i = 0;
- my $arr = $lastspokehash{$server->{tag}}->{$witem};
- foreach(@{$arr}) {
+ my $arr = $lastspokehash->{$server->{tag}}->{$target};
+ foreach(@$arr) {
if($_ eq $nick) {
- splice @{$arr}, $i, 1;
+ splice @$arr, $i, 1;
last;
}
$i++;
}
- unshift @{$lastspokehash{$server->{tag}}->{$witem}}, $nick;
- splice @{$lastspokehash{$server->{tag}}->{$witem}}, Irssi::settings_get_int('completion_keep_publics');
+ unshift @{$lastspokehash->{$server->{tag}}->{$target}}, $nick;
+ splice @{$lastspokehash->{$server->{tag}}->{$target}}, Irssi::settings_get_int('completion_keep_publics');
}
sub _part {
my ($server, $channel, $nick) = @_;
if(!$channel) {
- foreach my $chan (keys %{$lastspokehash{$server->{tag}}}) {
- my $arr = $lastspokehash{$server->{tag}}->{$chan};
+ foreach my $chan (keys %{$lastspokehash->{$server->{tag}}}) {
+ my $arr = $lastspokehash->{$server->{tag}}->{$chan};
my $i = 0;
foreach(@{$arr}) {
if($_ eq $nick) {
}
}
else {
- my $arr = $lastspokehash{$server->{tag}}->{$channel};
+ my $arr = $lastspokehash->{$server->{tag}}->{$channel};
my $i = 0;
foreach(@{$arr}) {
if($_ eq $nick) {
}
}
- delete $lastspokehash{$server->{tag}}->{$channel} unless @{$lastspokehash{$server->{tag}}->{$channel}};
- delete $lastspokehash{$server->{tag}} unless keys %{$lastspokehash{$server->{tag}}};
+ delete $lastspokehash->{$server->{tag}} unless keys %{$lastspokehash->{$server->{tag}}};
}
Irssi::signal_add_first('message quit', sub {
Irssi::signal_add_first('message nick', sub {
my ($server, $newnick, $oldnick, $address) = @_;
- foreach my $chan (keys %{$lastspokehash{$server->{tag}}}) {
- my $arr = $lastspokehash{$server->{tag}}->{$chan};
+ foreach my $chan (keys %{$lastspokehash->{$server->{tag}}}) {
+ my $arr = $lastspokehash->{$server->{tag}}->{$chan};
my $i = 0;
foreach(@{$arr}) {
if($_ eq $oldnick) {