diff options
Diffstat (limited to 'lib')
-rw-r--r--[-rwxr-xr-x] | lib/rbot/core/utils/wordlist.rb | 19 | ||||
-rw-r--r-- | lib/rbot/core/wordlist_ui.rb | 8 |
2 files changed, 14 insertions, 13 deletions
diff --git a/lib/rbot/core/utils/wordlist.rb b/lib/rbot/core/utils/wordlist.rb index 81d7d775..339a3219 100755..100644 --- a/lib/rbot/core/utils/wordlist.rb +++ b/lib/rbot/core/utils/wordlist.rb @@ -10,11 +10,8 @@ require "find" module ::Irc class Bot class Wordlist - def self.wordlist_base - @@wordlist_base ||= Utils.bot.path 'wordlists' - end - - def self.get(where, options={}) + def self.get(bot, where, options={}) + wordlist_base = bot.path('wordlists') opts = { :spaces => false }.merge(options) wordlist_path = File.join(wordlist_base, where) @@ -44,21 +41,23 @@ class Wordlist # Return an array with the list of available wordlists. # Available options: # pattern:: pattern that should be matched by the wordlist filename - def self.list(options={}) + def self.list(bot, options={}) + wordlist_base = bot.path('wordlists') pattern = options[:pattern] || "**" # refuse patterns that contain ../ return [] if pattern =~ /\.\.\// - striplen = self.wordlist_base.length+1 - Dir.glob(File.join(self.wordlist_base, pattern)).map { |name| + striplen = wordlist_base.length+1 + Dir.glob(File.join(wordlist_base, pattern)).map { |name| name[striplen..-1] } end - def self.exist?(path) + def self.exist?(bot, path) + wordlist_base = bot.path('wordlists') fn = path.to_s # refuse to check outside of the wordlist base directory return false if fn =~ /\.\.\// - File.exist?(File.join(self.wordlist_base, fn)) + File.exist?(File.join(wordlist_base, fn)) end end diff --git a/lib/rbot/core/wordlist_ui.rb b/lib/rbot/core/wordlist_ui.rb index 20ccc228..8042089a 100644 --- a/lib/rbot/core/wordlist_ui.rb +++ b/lib/rbot/core/wordlist_ui.rb @@ -11,12 +11,14 @@ class WordlistModule < CoreBotModule end def do_list(m, p) - found = Wordlist.list(p) + found = Wordlist.list(@bot, p) if found.empty? - m.reply _("no wordlist found") + m.reply _("no wordlists found in %{path}") % { + path: @bot.path('wordlists') + } else m.reply _("Wordlists: %{found}") % { - :found => found.sort.join(', ') + found: found.sort.join(', ') } end end |