]> git.99rst.org Git - irssi-scripts.irssi.org.git/commitdiff
Autoop.pl: Add persistance to auto-op'ed nicks. Bump version.
authorJostein Kjønigsen <redacted>
Fri, 24 Oct 2014 10:54:12 +0000 (12:54 +0200)
committerJostein Kjønigsen <redacted>
Sun, 9 Nov 2014 21:08:31 +0000 (22:08 +0100)
_data/scripts.yaml
scripts/autoop.pl

index c25007e2193b4504d48f32e3f2f383ef18704734..432f27febadfbea51fb7a812fc10552b043c8127 100644 (file)
   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"
index d46d099ea9570800101071af23598848583017b2..b72def15776554c8f7bb4ea1525f3795e2728b16 100644 (file)
@@ -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;
git clone https://git.99rst.org/PROJECT