X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=data%2Frbot%2Fplugins%2Ffiglet.rb;h=700730f416b6621177c45cceda4d50167bdfecea;hb=6cf365c49ce5fbe24c0a4ff0663550390b501fea;hp=d95b0c5898ffbe58b597662ad1a12b59b17ec9a5;hpb=7149b0ff091f7d0f61027579c8b3dd6946808ee0;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/data/rbot/plugins/figlet.rb b/data/rbot/plugins/figlet.rb index d95b0c58..700730f4 100644 --- a/data/rbot/plugins/figlet.rb +++ b/data/rbot/plugins/figlet.rb @@ -7,7 +7,7 @@ class FigletPlugin < Plugin MAX_WIDTH=68 Config.register Config::StringValue.new('figlet.path', - :default => '/usr/bin/figlet', + :default => 'figlet', :desc => _('Path to the figlet program'), :on_change => Proc.new { |bot, v| bot.plugins['figlet'].test_figlet }) @@ -18,7 +18,7 @@ class FigletPlugin < Plugin :on_change => Proc.new { |bot, v| bot.plugins['figlet'].test_figlet }) Config.register Config::StringValue.new('toilet.path', - :default => '/usr/bin/toilet', + :default => 'toilet', :desc => _('Path to the toilet program'), :on_change => Proc.new { |bot, v| bot.plugins['figlet'].test_toilet }) @@ -54,12 +54,14 @@ class FigletPlugin < Plugin @bot.config['toilet.filters'] end + attr_reader :has, :params + def test_figlet #check that figlet is present - @has[:figlet] = File.exist?(figlet_path) + @has[:figlet] = Utils.try_exec("#{figlet_path} -v") # check that figlet actually has the font installed - @has[:figlet_font] = !!system("#{figlet_path} -f #{figlet_font} test test test") + @has[:figlet_font] = Utils.try_exec("#{figlet_path} -f #{figlet_font} test test test") # set the commandline params @params[:figlet] = ['-k', '-w', MAX_WIDTH.to_s, '-C', 'utf8'] @@ -70,10 +72,10 @@ class FigletPlugin < Plugin def test_toilet #check that toilet is present - @has[:toilet] = File.exist?(toilet_path) + @has[:toilet] = Utils.try_exec("#{toilet_path} -v") # check that toilet actually has the font installed - @has[:toilet_font] = !!system("#{toilet_path} -f #{toilet_font} test test test") + @has[:toilet_font] = Utils.try_exec("#{toilet_path} -f #{toilet_font} test test test") # set the commandline params @params[:toilet] = ['-k', '-w', MAX_WIDTH.to_s, '-E', 'utf8', '--irc'] @@ -102,7 +104,7 @@ class FigletPlugin < Plugin end def figlet(m, params) - key = m.plugin.intern + key = params[:plugin] || m.plugin.intern unless @has[key] m.reply("%{cmd} couldn't be found. if it's installed, you should set the %{cmd}.path config key to its path" % { :cmd => key @@ -117,13 +119,19 @@ class FigletPlugin < Plugin end # collect the parameters to pass to safe_exec - exec_params = [send(:"#{m.plugin}_path")] + @params[key] + [message] + exec_params = [send(:"#{key}_path")] + @params[key] + [message] # run the program - m.reply Utils.safe_exec(*exec_params), :max_lines => 0 + m.reply strip_first_last_empty_line(Utils.safe_exec(*exec_params)), :max_lines => 0, :nick => false end alias :toilet :figlet + private + + def strip_first_last_empty_line(txt) + txt.gsub(/\A(?:^\s*\r?\n)+/m,'').rstrip + end + end plugin = FigletPlugin.new