diff options
| author | Jostein Kjønigsen | 2014-10-24 12:54:12 +0200 | 
|---|---|---|
| committer | Jostein Kjønigsen | 2014-11-09 22:08:31 +0100 | 
| commit | 11c02fdb9b5a0d9f09999c5cde856e19a76ec83f (patch) | |
| tree | 7c815422ead2fe13ef4e16db6670d602878181ff | |
| parent | dd80027b51b3ee71027a2612595aee38e38c0d6e (diff) | |
| download | scripts.irssi.org-11c02fdb9b5a0d9f09999c5cde856e19a76ec83f.tar.bz2 | |
Autoop.pl: Add persistance to auto-op'ed nicks. Bump version.
| -rw-r--r-- | _data/scripts.yaml | 6 | ||||
| -rw-r--r-- | scripts/autoop.pl | 71 | 
2 files changed, 71 insertions, 6 deletions
| diff --git a/_data/scripts.yaml b/_data/scripts.yaml index c25007e..432f27f 100644 --- a/_data/scripts.yaml +++ b/_data/scripts.yaml @@ -291,13 +291,13 @@    url: "http://irssi.dgl.cx/"    version: "1.00" -- authors: "Timo Sirainen" +- authors: "Timo Sirainen & Jostein Kjønigsen"    description: "Simple auto-op script"    filename: "autoop.pl" -  modified: "2002-03-10 23:18:00" +  modified: "2014-10-24 12:55:00"    license: "Public Domain"    name: "autoop" -  version: "1.00" +  version: "1.10"  - authors: "Toni Salomäki"    contact: "Toni@IRCNet" diff --git a/scripts/autoop.pl b/scripts/autoop.pl index d46d099..b72def1 100644 --- a/scripts/autoop.pl +++ b/scripts/autoop.pl @@ -5,13 +5,13 @@ use Irssi;  use strict;  use vars qw($VERSION %IRSSI); -$VERSION = "1.00"; +$VERSION = "1.10";  %IRSSI = ( -    authors     => 'Timo Sirainen', +    authors     => 'Timo Sirainen & Jostein Kjønigsen',      name        => 'autoop',      description => 'Simple auto-op script',      license     => 'Public Domain', -    changed	=> 'Sun Mar 10 23:18 EET 2002' +    changed	=> 'Fri Nov 24 12:55 GMT+1 2014'  );  my (%opnicks, %temp_opped); @@ -89,3 +89,68 @@ sub event_massjoin {  Irssi::command_bind('autoop', 'cmd_autoop');  Irssi::signal_add_last('massjoin', 'event_massjoin'); + +sub load_autoops { +    my($file) = Irssi::get_irssi_dir."/autoop"; +    my($count) = 0; +    local(*CONF); +     +    %opnicks = (); +    open(CONF, "<", "$file") or return; +    while (my $line = <CONF>) { +	if ($line !=~ /^\s*$/) { +	    cmd_autoop($line); +	    $count++; +	} +    } +    close(CONF); +     +    Irssi::print("Loaded $count channels from $file"); +} + +# --------[ save_autoops ]------------------------------------------------ + +sub save_autoops { +    my($auto) = @_; +    my($file) = Irssi::get_irssi_dir."/autoop"; +    my($count) = 0; +    my($channel) = ""; +    local(*CONF); +     +    return if $auto; +     +    open(CONF, ">", "$file"); +    foreach $channel (keys %opnicks) { +	my $masks = $opnicks{$channel}; +	print CONF "$channel\t$masks\n"; +	$count++; +    } +    close(CONF); +     +    Irssi::print("Saved $count channels to $file") +	unless $auto; +} + + +# --------[ sig_setup_reread ]------------------------------------------ + +# main setup is reread, so let us do it too +sub sig_setup_reread { +    load_autoops; +} + +# --------[ sig_setup_save ]-------------------------------------------- + +# main config is saved, and so we should save too +sub sig_setup_save { +    my($mainconf,$auto) = @_; +    save_autoops($auto); +} + +# persistance + +Irssi::signal_add('setup saved', 'sig_setup_save'); +Irssi::signal_add('setup reread', 'sig_setup_reread'); + +# ensure we load persisted values on start +load_autoops; | 
