Added option to generate a full plugin list

This commit is contained in:
Christian Mehlmauer
2012-09-10 22:59:03 +02:00
parent 91cfa5a060
commit f273290887
3 changed files with 33 additions and 4 deletions

View File

@@ -36,7 +36,7 @@ class Generate_Plugin_List
# Send a HTTP request to the WordPress most popular plugins webpage
# parse the response for the plugin names.
def parse_plugins
def parse_popular_plugins
found_plugins = []
page_count = 1
@@ -69,6 +69,16 @@ class Generate_Plugin_List
found_plugins.uniq
end
def parse_full_plugins
found_plugins = []
queue_count = 0
index = @browser.get('http://plugins.svn.wordpress.org/').body
index.scan(%r{<li><a href=".*">(.*)/</a></li>}i).each do |plugin|
found_plugins << plugin[0]
end
found_plugins.uniq
end
# Use the WordPress plugin SVN repo to find a
# valid plugin file. This will cut down on
@@ -113,9 +123,13 @@ class Generate_Plugin_List
# Save the file
def save_file
def save_file(full=false)
begin
plugins = parse_plugins
if (full)
plugins = parse_full_plugins
else
plugins = parse_popular_plugins
end
puts "[*] We have parsed " + plugins.size.to_s
plugins_with_paths = parse_plugin_files(plugins)
File.open(DATA_DIR + '/plugins.txt', 'w') { |f| f.write(plugins_with_paths) }

View File

@@ -12,6 +12,9 @@ def usage()
puts "- Generate a new 'most popular' plugin list, up to 150 pages ..."
puts "ruby " + script_name + " --generate_plugin_list 150"
puts
puts "- Generate a new full plugin list"
puts "ruby " + script_name + " --generate_full_plugin_list"
puts
puts "See README for further information."
puts
end
@@ -24,5 +27,7 @@ def help()
puts "--update | -u Update to the latest revision."
puts "--generate_plugin_list [number of pages] Generate a new data/plugins.txt file. (supply number of *pages* to parse, default : 150)"
puts "--gpl Alias for --generate_plugin_list"
puts "--generate_full_plugin_list Generate a new full data/plugins.txt file"
puts "--gfpl Alias for --generate_full_plugin_list"
puts
end

View File

@@ -37,7 +37,9 @@ begin
["--help", "-h", GetoptLong::NO_ARGUMENT],
["--verbose", "-v", GetoptLong::NO_ARGUMENT],
["--generate_plugin_list", GetoptLong::OPTIONAL_ARGUMENT],
["--generate_full_plugin_list", GetoptLong::NO_ARGUMENT],
["--gpl", GetoptLong::OPTIONAL_ARGUMENT],
["--gfpl", GetoptLong::OPTIONAL_ARGUMENT],
["--update", "-u", GetoptLong::NO_ARGUMENT]
)
@@ -59,13 +61,21 @@ begin
@generate_plugin_list = true
when "--update"
@update = true
when "--generate_full_plugin_list", "--gfpl"
@generate_full_plugin_list = true
end
end
if @generate_plugin_list
puts "[+] Generating new most popular plugin list"
puts
Generate_Plugin_List.new(@number_of_pages, @verbose).save_file
Generate_Plugin_List.new(@number_of_pages, @verbose).save_file(false)
end
if @generate_full_plugin_list
puts "[+] Generating new full plugin list"
puts
Generate_Plugin_List.new(-1, @verbose).save_file(true)
end
if @update