1

cleanup, remove duplicate code

This commit is contained in:
eleksir
2016-10-23 20:41:38 +03:00
parent 53aa3ed566
commit 5a9f9bdcd5

View File

@@ -25,7 +25,7 @@ my $help = 'Usage:
/notify show - shows whitelists and their statuses /notify show - shows whitelists and their statuses
'; ';
register($script_name, '0.8.3', 'Sends *nix desktop notifications', \&freehooks); register($script_name, '0.8.5', 'Sends *nix desktop notifications', \&freehooks);
HexChat::print("$script_name loaded\n"); HexChat::print("$script_name loaded\n");
my @hooks; my @hooks;
@@ -94,26 +94,20 @@ sub hookfn {
} }
# settings are loaded # settings are loaded
if ($flag == 0) { if ($flag == 1) {
undef $nick; undef $text; undef $modechar; $active = 1;
undef $channel; undef $network; my $t = undef;
undef $flag;
undef $nicklist; undef $chanlist; undef $netlist;
return EAT_NONE;
}
$active = 1; do {
my $t = undef; $t = threads->create('notify', $channel, $nick, $text);
sleep 1 unless(defined($t));
} unless (defined($t));
do { $t->detach;
$t = threads->create('notify', $channel, $nick, $text);
sleep 1 unless(defined($t));
} unless (defined($t));
$t->detach; if ($active == 1) {
hook_timer( 500, \&timeraction);
if ($active == 1) { }
hook_timer( 500, \&timeraction);
} }
undef $nick; undef $text; undef $modechar; undef $nick; undef $text; undef $modechar;
@@ -146,200 +140,180 @@ sub notify_cmd {
my $cmd = shift(@{$_[0]}); my $cmd = shift(@{$_[0]});
my $entity = shift(@{$_[0]}); my $entity = shift(@{$_[0]});
my $value = join(' ', @{$_[0]}); my $value = join(' ', @{$_[0]});
HexChat::print("\n");
my $msg = undef;
unless (defined($cmd)) { if (defined($cmd)) {
HexChat::print($help); if ($cmd eq 'info') {
return HexChat::EAT_ALL; my $network = HexChat::get_info('network') // 'unknown';
} $msg = sprintf("Network name for whitelist: %s\n", $network);
} elsif ($cmd eq 'status') {
my $nicklist = loadliststatus('nicklist');
my $chanlist = loadliststatus('chanlist');
my $netlist = loadliststatus('netlist');
if ($cmd eq 'info') { if (($nicklist == 0) and ($chanlist == 0) and ($netlist == 0)) {
my $network = HexChat::get_info('network') // 'unknown'; $msg = sprint("All whitelists are disbled, will not apply any filters, and be show all notifications.\n");
HexChat::printf("Network name for whitelist: %s\n", $network); } else {
return HexChat::EAT_ALL; $msg = '';
} elsif ($cmd eq 'status') {
my $nicklist = loadliststatus('nicklist');
my $chanlist = loadliststatus('chanlist');
my $netlist = loadliststatus('netlist');
if (($nicklist == 0) and ($chanlist == 0) and ($netlist == 0)) { if ($nicklist == 0) { $msg .= "Nicks whitelist: disabled\n"; }
HexChat::print("All whitelists are disbled, will not apply any filters, and be show all notifications.\n"); else { $msg .= "Nicks whitelist: enabled\n"; }
return HexChat::EAT_ALL;
}
my $str = ''; if ($chanlist == 0) { $msg .= "Channel whitelist: disabled\n"; }
else { $msg .= "Channel whitelist: enabled\n"; }
if ($nicklist == 0) { $str .= "Nicks whitelist: disabled\n"; } if ($netlist == 0) { $msg .= "Networks whitelist: disabled\n"; }
else { $str .= "Nicks whitelist: enabled\n"; } else { $msg .= "Networks whitelist: enabled\n"; }
if ($chanlist == 0) { $str .= "Channel whitelist: disabled\n"; }
else { $str .= "Channel whitelist: enabled\n"; }
if ($netlist == 0) { $str .= "Networks whitelist: disabled\n"; }
else { $str .= "Networks whitelist: enabled\n"; }
HexChat::print($str);
return HexChat::EAT_ALL;
} elsif ($cmd eq 'enable') {
if($entity eq 'nick') {
if (defined(savesetting('nicklist', '1'))) {
HexChat::print("Nicks whitelist now enabled\n");
} }
} elsif ($entity eq 'chan') { } elsif ($cmd eq 'enable') {
if (defined(savesetting('chanlist', '1'))) { if($entity eq 'nick') {
HexChat::print("Channel whitelist now enabled\n"); if (defined(savesetting('nicklist', '1'))) {
} $msg = "Nicks whitelist now enabled\n";
} elsif ($entity eq 'net') {
if (defined(savesetting('netlist', '1'))) {
HexChat::print("Networks whitelist now enabled\n");
}
}
return HexChat::EAT_ALL;
} elsif ($cmd eq 'disable') {
if($entity eq 'nick') {
if (defined(savesetting('nicklist', '0'))) {
HexChat::print("Nicks whitelist now disabled\n");
}
} elsif ($entity eq 'chan') {
if (defined(savesetting('chanlist', '0'))) {
HexChat::print("Channel whitelist now disabled\n");
}
} elsif ($entity eq 'net') {
if (defined(savesetting('netlist', '0'))) {
HexChat::print("Networks whitelist now disabled\n");
}
}
return HexChat::EAT_ALL;
} elsif ($cmd eq 'show') {
my $str = '';
if (loadliststatus('nicklist') == 0) {
$str .= "Nicks whitelist: disabled\n";
} else {
$str .= "Nicks whitelist: enabled\n";
}
$str .= "Whitelisted nicks = " . join( ', ', loadlist('nicks')) ."\n";
if (loadliststatus('chanlist') == 0) {
$str .= "Channel whitelist: disabled\n";
} else {
$str .= "Channel whitelist: enabled\n";
}
$str .= "Whitelisted channels = " . join( ', ', loadlist('chans')) . "\n";
if (loadliststatus('netlist') == 0) {
$str .= "Networks whitelist: disabled\n";
} else {
$str .= "Networks whitelist: enabled\n";
}
$str .= "Whitelisted networks = " . join( ', ', loadlist('nets')) . "\n";
HexChat::print($str);
return HexChat::EAT_ALL;
} elsif ($cmd eq 'add') {
my $str = '';
if ((defined($entity)) and (defined($value))) {
if ($entity eq 'nick') {
my @nicks = (loadlist('nicks'), $value);
unless (defined(savelist('nicks', @nicks))) {
return HexChat::EAT_ALL;
} }
HexChat::printf("Nicks whitelist now: %s\n", join(', ', @nicks));
return HexChat::EAT_ALL;
} elsif ($entity eq 'chan') { } elsif ($entity eq 'chan') {
my @chans = (loadlist('chans'), $value); if (defined(savesetting('chanlist', '1'))) {
$msg = "Channel whitelist now enabled\n";
unless (defined(savelist('chans', @chans))) {
return HexChat::EAT_ALL;
} }
HexChat::printf("Channels whitelist now: %s\n", join(', ', @chans));
return HexChat::EAT_ALL;
} elsif ($entity eq 'net') { } elsif ($entity eq 'net') {
my @nets = (loadlist('nets'), $value); if (defined(savesetting('netlist', '1'))) {
$msg = "Networks whitelist now enabled\n";
}
}
} elsif ($cmd eq 'disable') {
if($entity eq 'nick') {
if (defined(savesetting('nicklist', '0'))) {
$msg = "Nicks whitelist now disabled\n";
}
} elsif ($entity eq 'chan') {
if (defined(savesetting('chanlist', '0'))) {
$msg = "Channel whitelist now disabled\n";
}
} elsif ($entity eq 'net') {
if (defined(savesetting('netlist', '0'))) {
$msg = "Networks whitelist now disabled\n";
}
}
} elsif ($cmd eq 'show') {
$msg = '';
unless (defined(savelist('nets', @nets))) { if (loadliststatus('nicklist') == 0) {
return HexChat::EAT_ALL; $msg .= "Nicks whitelist: disabled\n";
} else {
$msg .= "Nicks whitelist: enabled\n";
}
$msg .= "Whitelisted nicks = " . join( ', ', loadlist('nicks')) ."\n";
if (loadliststatus('chanlist') == 0) {
$msg .= "Channel whitelist: disabled\n";
} else {
$msg .= "Channel whitelist: enabled\n";
}
$msg .= "Whitelisted channels = " . join( ', ', loadlist('chans')) . "\n";
if (loadliststatus('netlist') == 0) {
$msg .= "Networks whitelist: disabled\n";
} else {
$msg .= "Networks whitelist: enabled\n";
}
$msg .= "Whitelisted networks = " . join( ', ', loadlist('nets')) . "\n";
} elsif ($cmd eq 'add') {
if ((defined($entity)) and (defined($value))) {
if ($entity eq 'nick') {
my @nicks = (loadlist('nicks'), $value);
unless (defined(savelist('nicks', @nicks))) {
return HexChat::EAT_ALL;
}
$msg = sprintf("Nicks whitelist now: %s\n", join(', ', @nicks));
} elsif ($entity eq 'chan') {
my @chans = (loadlist('chans'), $value);
unless (defined(savelist('chans', @chans))) {
return HexChat::EAT_ALL;
}
$msg = sprintf("Channels whitelist now: %s\n", join(', ', @chans));
} elsif ($entity eq 'net') {
my @nets = (loadlist('nets'), $value);
unless (defined(savelist('nets', @nets))) {
return HexChat::EAT_ALL;
}
$msg = sprintf("Networks whitelist now: %s\n", join(', ', @nets));
}
}
} elsif ($cmd eq 'del') {
if ((defined($entity)) and (defined($value))) {
if ($entity eq 'nick') {
my @list = loadlist('nicks');
my @nicklist;
foreach (@list) {
next if ($_ eq $value);
push @nicklist, $_;
}
@list = -1; undef @list;
unless (defined(savelist('nicks', @nicklist))) {
return HexChat::EAT_ALL;
}
$msg = sprintf("Nicks whitelist now: %s\n", join(', ', @nicklist));
} }
HexChat::printf("Networks whitelist now: %s\n", join(', ', @nets)); if ($entity eq 'chan') {
return HexChat::EAT_ALL; my @list = loadlist('chans');
my @chanlist;
foreach (@list) {
next if($_ eq $value);
push @chanlist, $_;
}
@list = -1; undef @list;
unless (defined(savelist('chans', @chanlist))) {
return HexChat::EAT_ALL;
}
$msg = sprintf("Channels whitelist now: %s\n", join(', ', @chanlist));
}
if ($entity eq 'net') {
my @list = loadlist('nets');
my @netlist;
foreach (@list) {
HexChat::printf("_: %s, value: %s", $_, $value);
next if($_ eq $value);
push @netlist, $_;
}
@list = -1; undef @list;
unless (defined(savelist('nets', @netlist))) {
return HexChat::EAT_ALL;
}
$msg = sprintf("Networks whitelist now: %s\n", join(', ', @netlist));
}
} }
} }
return HexChat::EAT_ALL;
} elsif ($cmd eq 'del') {
if ((defined($entity)) and (defined($value))) {
if ($entity eq 'nick') {
my @list = loadlist('nicks');
my @nicklist;
foreach (@list) {
next if ($_ eq $value);
push @nicklist, $_;
}
@list = -1; undef @list;
unless (defined(savelist('nicks', @nicklist))) {
return HexChat::EAT_ALL;
}
HexChat::printf("Nicks whitelist now: %s\n", join(', ', @nicklist));
return HexChat::EAT_ALL;
}
if ($entity eq 'chan') {
my @list = loadlist('chans');
my @chanlist;
foreach (@list) {
next if($_ eq $value);
push @chanlist, $_;
}
@list = -1; undef @list;
unless (defined(savelist('chans', @chanlist))) {
return HexChat::EAT_ALL;
}
HexChat::printf("Channels whitelist now: %s\n", join(', ', @chanlist));
return HexChat::EAT_ALL;
}
if ($entity eq 'net') {
my @list = loadlist('nets');
my @netlist;
foreach (@list) {
HexChat::printf("_: %s, value: %s", $_, $value);
next if($_ eq $value);
push @netlist, $_;
}
@list = -1; undef @list;
unless (defined(savelist('nets', @netlist))) {
return HexChat::EAT_ALL;
}
HexChat::printf("Networks whitelist now: %s\n", join(', ', @netlist));
return HexChat::EAT_ALL;
}
}
return HexChat::EAT_ALL;
} }
HexChat::print($help); unless(defined($msg)){
HexChat::print($help);
} else {
HexChat::print($msg);
}
return HexChat::EAT_ALL; return HexChat::EAT_ALL;
} }