mirror of
https://github.com/StrawberryMaster/wayback-machine-downloader.git
synced 2025-12-22 04:06:51 +00:00
42 lines
1.4 KiB
Ruby
Executable File
42 lines
1.4 KiB
Ruby
Executable File
#!/usr/bin/env ruby
|
|
|
|
require_relative '../lib/wayback_machine_downloader'
|
|
require 'optparse'
|
|
require 'pp'
|
|
|
|
options = {}
|
|
option_parser = OptionParser.new do |opts|
|
|
opts.banner = "Usage: wayback_machine_downloader http://example.com"
|
|
|
|
opts.separator ""
|
|
opts.separator "Download any website from the Wayback Machine."
|
|
|
|
opts.separator ""
|
|
opts.separator "Optional options:"
|
|
|
|
opts.on("-t", "--timestamp TIMESTAMP", Integer, "Only files on or before timestamp supplied (ie. 20150806225358)") do |t|
|
|
options[:timestamp] = t
|
|
end
|
|
|
|
opts.on("--accept-regex [ACCEPT_REGEX]", String,"Specify a regular expression to download. If a path doesn't meet this regex, it won't get downloaded.") do |accept_regex|
|
|
options[:accept_regex] = accept_regex
|
|
end
|
|
|
|
opts.on("-v", "--version", "Display version") do |t|
|
|
options[:version] = t
|
|
end
|
|
end.parse!
|
|
|
|
# this used to be 0. we want to look at the /last/ option.
|
|
#
|
|
# TODO: this argument needs to be handled better. argument handling is sorta messy.
|
|
if base_url = ARGV[-1]
|
|
wayback_machine_downloader = WaybackMachineDownloader.new base_url: base_url, timestamp: options[:timestamp], accept_regex: options[:accept_regex]
|
|
wayback_machine_downloader.download_files
|
|
elsif options[:version]
|
|
puts WaybackMachineDownloader::VERSION
|
|
else
|
|
puts "You need to specify a website to backup. (e.g., http://example.com)"
|
|
puts "Run `wayback_machine_downloader --help` for more help."
|
|
end
|