diff options
Diffstat (limited to 'data/rbot')
-rw-r--r-- | data/rbot/plugins/nickserv.rb | 2 | ||||
-rw-r--r-- | data/rbot/plugins/quotes.rb | 23 |
2 files changed, 19 insertions, 6 deletions
diff --git a/data/rbot/plugins/nickserv.rb b/data/rbot/plugins/nickserv.rb index 1e419af4..0e5f2e8a 100644 --- a/data/rbot/plugins/nickserv.rb +++ b/data/rbot/plugins/nickserv.rb @@ -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 diff --git a/data/rbot/plugins/quotes.rb b/data/rbot/plugins/quotes.rb index 5b496471..aae70592 100644 --- a/data/rbot/plugins/quotes.rb +++ b/data/rbot/plugins/quotes.rb @@ -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 |