# http://www.fsf.org/licensing/licenses/gpl.html
#
+# Needed for the default implementation of get_page_data.
+require 'net/http'
+
# Necessary in a lot of subclasses; plus, we need it
# to parse the server name out of our URL.
require 'uri'
+# Needed to download.. things.
+require 'net/http'
+
# This class keeps track of all its subclasses
# We use this to loop through every "website" in an
# attempt to determine to which site a URL belongs.
return uri.host
end
+
+
+ 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)
+ end
+
+ return response.body
+ end
+
+
public;
# of the video URL, but in some cases, subclasses will want
# to override this behavior.
def get_video_filename()
- # Use whatever comes after the final front slash.
- return get_video_url().split('/').pop()
+ # Use whatever comes after the final front slash.
+ file_and_params = get_video_url().split('/').pop()
+
+ # Unless it contains URL parameters. We don't want those.
+ return file_and_params unless file_and_params.include?('?')
+
+ # There must be some parameters. Strip them off.
+ param_start_idx = file_and_params.index('?')
+ return file_and_params[0...(param_start_idx)]
end
end