X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;ds=sidebyside;f=data%2Frbot%2Fplugins%2Flart.rb;h=aeaad7333246153b731d6e613f1e60ac0ba1d32a;hb=ac8529c8370bd6dbcb0947bc14e1cc2117826a29;hp=fbc1f9e429f052768adf4410560ba431352cfd91;hpb=bfb9506b75a1cf8118364226bcb8945114e3771c;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/data/rbot/plugins/lart.rb b/data/rbot/plugins/lart.rb index fbc1f9e4..aeaad733 100644 --- a/data/rbot/plugins/lart.rb +++ b/data/rbot/plugins/lart.rb @@ -41,12 +41,12 @@ class LartPlugin < Plugin # We may be on an old installation, so on the first run read non-language-specific larts unless defined?(@oldlart) - @oldlart = "#{@bot.botclass}/lart/larts" - @oldpraise = "#{@bot.botclass}/lart/praise" + @oldlart = datafile 'larts' + @oldpraise = datafile 'praise' end - @lartfile.replace "#{@bot.botclass}/lart/larts-#{lang}" - @praisefile.replace "#{@bot.botclass}/lart/praises-#{lang}" + @lartfile.replace(datafile("larts-#{lang}")) + @praisefile.replace(datafile("praises-#{lang}")) @larts.clear @praises.clear if File.exists? @lartfile @@ -72,8 +72,7 @@ class LartPlugin < Plugin def save return unless @changed - Dir.mkdir("#{@bot.botclass}/lart") if not FileTest.directory? "#{@bot.botclass}/lart" - # TODO implement safe saving here too + Dir.mkdir(datafile) unless FileTest.directory? datafile Utils.safe_save(@lartfile) { |file| file.puts @larts } @@ -95,6 +94,9 @@ class LartPlugin < Plugin end who = params[:who].to_s reason = params[:why] + if who == "me" + who = m.sourcenick + end if who == @bot.nick who = m.sourcenick reason = "for trying to make me lart myself" @@ -113,7 +115,8 @@ class LartPlugin < Plugin end who = params[:who].to_s reason = params[:why] - if who == m.sourcenick + if who == m.sourcenick || who == "me" + params[:who] = m.sourcenick params[:why] = "for praising himself" handle_lart(m, params) return @@ -136,6 +139,16 @@ class LartPlugin < Plugin m.okay end + def handle_listlart(m, params) + rx = Regexp.new(params[:lart].to_s, true) + list = @larts.grep(rx) + unless list.empty? + m.reply list.join(" | "), :split_at => /\s+\|\s+/ + else + m.reply "no lart found matching #{params[:lart]}" + end + end + def handle_addpraise(m, params) @praises << params[:praise].to_s @changed = true @@ -148,6 +161,16 @@ class LartPlugin < Plugin m.okay end + def handle_listpraise(m, params) + rx = Regexp.new(params[:praise].to_s, true) + list = @praises.grep(rx) + unless list.empty? + m.reply list.join(" | "), :split_at => /\s+\|\s+/ + else + m.reply "no praise found matching #{params[:praise]}" + end + end + # The following are utils for larts/praises def replace_who(msg, nick) msg.gsub(//i, "#{nick}") @@ -169,3 +192,6 @@ plugin.map "addpraise *praise", :action => :handle_addpraise plugin.map "rmlart *lart", :action => :handle_rmlart plugin.map "rmpraise *praise", :action => :handle_rmpraise + +plugin.map "listlart *lart", :action => :handle_listlart +plugin.map "listpraise *praise", :action => :handle_listpraise