]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/commitdiff
quotefiles are now only saved only if they were changed
authorGiuseppe Bilotta <giuseppe.bilotta@gmail.com>
Sun, 21 Jan 2007 14:22:39 +0000 (14:22 +0000)
committerGiuseppe Bilotta <giuseppe.bilotta@gmail.com>
Sun, 21 Jan 2007 14:22:39 +0000 (14:22 +0000)
data/rbot/plugins/nickserv.rb
data/rbot/plugins/quotes.rb

index 1e419af4a0cd1f87a9f85aa9dab7c4346c39868f..0e5f2e8a2bb9abc4f3ee19d83cd75860346c47d9 100644 (file)
@@ -157,7 +157,7 @@ class NickServPlugin < Plugin
   def listen(m)
     return unless(m.kind_of? NoticeMessage)
 
-    if (m.sourcenick == ns_nick && m.message =~ @ident_request)
+    if (m.sourcenick.downcase == ns_nick.downcase && m.message =~ @ident_request)
       debug "nickserv asked us to identify for nick #{@bot.nick}"
       do_identify
     end
index 5b4964714ceebe97890bcf0a0942c58f3d1f8639..aae70592e629c0d7193ddce9a5a3cae8072532ba 100644 (file)
@@ -6,6 +6,7 @@ class QuotePlugin < Plugin
   def initialize
     super
     @lists = Hash.new
+    @changed = Hash.new
     Dir["#{@bot.botclass}/quotes/*"].each {|f|
       next if File.directory?(f)
       channel = File.basename(f)
@@ -16,18 +17,24 @@ class QuotePlugin < Plugin
           @lists[channel][num] = Quote.new(num, $2, $3, $4)
         end
       }
+      @changed[channel] = false
     }
   end
   def save
     Dir.mkdir("#{@bot.botclass}/quotes") if(!FileTest.directory?("#{@bot.botclass}/quotes"))
     @lists.each {|channel, quotes|
       begin
-        debug "Writing new quotefile for channel #{channel} ..."
-        Utils.safe_save("#{@bot.botclass}/quotes/#{channel}") {|file|
-          quotes.compact.each {|q| 
-            file.puts "#{q.num} | #{q.date} | #{q.source} | #{q.quote}"
+        if @changed[channel]
+          debug "Writing new quotefile for channel #{channel} ..."
+          Utils.safe_save("#{@bot.botclass}/quotes/#{channel}") {|file|
+            quotes.compact.each {|q| 
+              file.puts "#{q.num} | #{q.date} | #{q.source} | #{q.quote}"
+            }
           }
-        }
+          @changed[channel] = false
+        else
+          debug "Not writing quotefile for channel #{channel} (unchanged)"
+        end
       rescue => e
         error "failed to write quotefile for channel #{channel}!\n#{$!}"
         error "#{e.class}: #{e}"
@@ -35,10 +42,15 @@ class QuotePlugin < Plugin
       end
     }
   end
+  def cleanup
+    @lists.clear
+    @changed.clear
+  end
   def addquote(source, channel, quote)
     @lists[channel] = Array.new if(!@lists.has_key?(channel))
     num = @lists[channel].length 
     @lists[channel][num] = Quote.new(num, Time.new, source, quote)
+    @changed[channel] = true
     return num
   end
   def getquote(source, channel, num=nil)
@@ -60,6 +72,7 @@ class QuotePlugin < Plugin
     if(@lists[channel][num])
       @lists[channel][num] = nil
       @lists[channel].pop if num == @lists[channel].length - 1
+      @changed[channel] = true
       return true
     end
     return false