Add --url option to configure API URL default tip
authorDave Dribin <dave@dribin.org>
Tue Jun 21 21:01:42 2011 -0500 (11 months ago)
changeset 111b525fe70ba68
parent 110 f14f0bed8deb
Add --url option to configure API URL
src/scripts/backup_delicious
     1.1 --- a/src/scripts/backup_delicious	Thu May 12 16:50:26 2011 -0500
     1.2 +++ b/src/scripts/backup_delicious	Tue Jun 21 21:01:42 2011 -0500
     1.3 @@ -9,6 +9,7 @@
     1.4  require 'rexml/document'
     1.5  require 'time'
     1.6  require 'pathname'
     1.7 +require 'uri'
     1.8  
     1.9  # clean up "using default DH parameters" warning for https
    1.10  class Net::HTTP
    1.11 @@ -30,6 +31,7 @@
    1.12  options.file = nil
    1.13  options.user = Etc.getlogin
    1.14  options.password = nil
    1.15 +options.url = "https://api.del.icio.us/v1/"
    1.16  opts = OptionParser.new do |opts|
    1.17    opts.on("-o", "--output-file [FILE]", "Write output to file") do |file|
    1.18      options.file = file
    1.19 @@ -37,6 +39,9 @@
    1.20    opts.on("-u", "--user [USER]", "Username to log in with") do |user|
    1.21      options.user = user
    1.22    end
    1.23 +  opts.on("--url [URL]", "API URL") do |url|
    1.24 +    options.url = url
    1.25 +  end
    1.26    opts.on("-v", "--verbose", "Turn on verbose logging") do
    1.27      $log.level = Logger::DEBUG
    1.28    end
    1.29 @@ -46,6 +51,7 @@
    1.30  
    1.31  begin
    1.32    username = options.user
    1.33 +  url = URI.parse(options.url)
    1.34    password =
    1.35      `/usr/bin/security find-internet-password -g -a #{username} -s del.icio.us 2>&1`.
    1.36      match(/password: \"(.*)\"/)[1]
    1.37 @@ -53,15 +59,15 @@
    1.38    root_ca = Pathname.new($0).dirname + "../share/curl/curl-ca-bundle.crt"
    1.39    $log.debug("Root CA: " + root_ca)
    1.40  
    1.41 -  http = Net::HTTP.new("api.del.icio.us", 443)
    1.42 +  http = Net::HTTP.new(url.host, url.port)
    1.43  
    1.44 -  http.use_ssl = true
    1.45 +  http.use_ssl = url.scheme == 'https'
    1.46    http.ca_file = root_ca
    1.47    http.verify_mode = OpenSSL::SSL::VERIFY_PEER
    1.48    http.verify_depth = 5
    1.49  
    1.50    http.start() do |http|
    1.51 -    request = Net::HTTP::Get.new('/v1/posts/update')
    1.52 +    request = Net::HTTP::Get.new(url.path + 'posts/update')
    1.53      request.basic_auth username, password
    1.54      response = http.request(request)
    1.55      response.value
    1.56 @@ -76,7 +82,7 @@
    1.57        end
    1.58      end
    1.59  
    1.60 -    request = Net::HTTP::Get.new('/v1/posts/all')
    1.61 +    request = Net::HTTP::Get.new(url.path + 'posts/all')
    1.62      request.basic_auth username, password
    1.63      response = http.request(request)
    1.64      response.value