# 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
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
}
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"
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
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
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(/<who>/i, "#{nick}")
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