Add helper scripts

Change-Id: I196523408d195aa73a7d47b0b6ea9e800bcf7f4e
diff --git a/motors/big_schematic/html.rb b/motors/big_schematic/html.rb
new file mode 100644
index 0000000..fa0be3c
--- /dev/null
+++ b/motors/big_schematic/html.rb
@@ -0,0 +1,53 @@
+require 'net/http'
+begin
+  require "sha1"
+rescue LoadError
+  require "digest/sha1"
+end
+
+require 'rubygems'
+require 'nokogiri'
+
+def retrieve_url url
+  cache_file = '.url_cache/' + Digest::SHA1.hexdigest(url)
+  if File.exists? cache_file
+    server_response = YAML.load_file(cache_file)
+  else
+    uri = URI.parse(url)
+    resp = Net::HTTP.start(uri.hostname, uri.port) do |http|
+      path = uri.path
+      if uri.query
+        path += '?'
+        path += uri.query
+      end
+      if uri.host == 'www.digikey.com'
+        req = Net::HTTP::Post.new(path)
+        req.set_form_data(
+          'TS01ddcca6_id' => '3',
+          'TS01ddcca6_cr' => 'ce1fcbf6f531dc4315cd98214a898f01:jnlm:8Ij6i51F:267420643',
+          'TS01ddcca6_76' => '0',
+          'TS01ddcca6_86' => '0',
+          'TS01ddcca6_md' => '1',
+          'TS01ddcca6_rf' => '0',
+          'TS01ddcca6_ct' => '0',
+          'TS01ddcca6_pd' => '0',
+        )
+        req['Referrer'] = 'http://www.digikey.com/product-search/en?keywords=CL21C271JBANNNC'
+      else
+        req = Net::HTTP::Get.new(path)
+      end
+      http.request(req)
+    end
+    if resp.code == '301' || resp.code == '302'
+      server_response = retrieve_url(uri.scheme + '://' + uri.host + resp['location'])
+    else
+      resp.value
+      server_response = resp.body
+    end
+    File.open(cache_file, 'w') do |f|
+      YAML.dump server_response, f
+    end
+  end
+
+  server_response
+end