WWW::Mechanize

指定の url から mp3 を探して根こそぎ保存する。

require "rubygems"
require "mechanize"

class Nekosogi
  def initialize url
    @agent = WWW::Mechanize.new
    @h = { url => false }
    get url
  end

  def list
    @h.keys.sort
  end

  private
  def get url
    puts url
    page = @agent.get(url)
    @h[url] = true
    if page.class == WWW::Mechanize::Page
    (page/"a").each do |a|
      if a[:href] != nil
        if a[:href].match("mp3")
          if @h[a[:href]]
          else
            sleep 3
            get a[:href]
          end
        end
      end
    end
    elsif page.class == WWW::Mechanize::File
      page.save
    end
  end
end

Nekosogi.new(ARGV[0])