]> gitweb.michael.orlitzky.com - dead/whatever-dl.git/commitdiff
Make headers a property of the website class rather than passing them to get_page_data.
authorMichael Orlitzky <michael@orlitzky.com>
Tue, 25 Jan 2011 01:49:17 +0000 (20:49 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Tue, 25 Jan 2011 01:49:17 +0000 (20:49 -0500)
Define a USER_AGENT in the configuration file.

bin/configuration.rb
src/website.rb
src/websites/dailymotion.rb

index ad942c73c8e431ea2cb527e2b175ce470f9a519d..60066cca0c4ea652b87dc3714dbea961aba485b1 100644 (file)
@@ -9,4 +9,6 @@ module Configuration
   # example.
   DOWNLOAD_METHOD = :openuri
   #DOWNLOAD_METHOD = :wget
+
+  USER_AGENT = 'whatever-dl'
 end
index 2f03e6cb4c383fa63093553a60317925bee51183..4e20466d30d95f0bf5a95370bcaa674a4adf5f73 100644 (file)
@@ -56,13 +56,13 @@ class Website
 
 
   
-  def get_page_data(url, headers = {})
+  def get_page_data(url)
     # A naive implementation that just grabs the
     # data from a page.
     uri = URI.parse(url)
 
     response = Net::HTTP.start(uri.host, uri.port) do |http|
-      http.get(uri.request_uri, headers)
+      http.get(uri.request_uri, self.headers)
     end
 
     return response.body
@@ -72,11 +72,17 @@ class Website
   
   public;
 
+  # Additional headers used when requesting data from the website.
+  # These aren't passed as a parameter because the (final)
+  # downloaders need them as well.
+  attr_accessor :headers
+
   def initialize(url)
     @url = url
+    self.headers = { 'User-Agent' => Configuration::USER_AGENT }
   end
 
-  
+
   def self.create(url)
     # Factory method returning an instance of
     # the appropriate subclass.
index f988ce64dfafd1e349fdd802c1e6284258eedcd9..26b3d4f153dafad9efe8e2fd48c196cd6a6fdfe2 100644 (file)
@@ -29,8 +29,8 @@ class Dailymotion < Website
   
   def get_video_url()
     # Disable the family filter if necessary.
-    headers = { 'Cookie' => 'family_filter=off' }
-    page_data = self.get_page_data(@url, headers)
+    self.headers['Cookie'] = 'family_filter=off'
+    page_data = self.get_page_data(@url)
     video_url = self.parse_video_url(page_data)
     
     return video_url