Made the output filename the responsibility of the website subclass.
Added a factory method to the website class which creates the appropriate subclass based on the URL given to it.
Added a get_video_filename method to the website class.
Made two Website methods abstract via NotImplementedError, get_video_url and owns_url?.
Created a default implementation of get_video_filename in the Website class.
Made the site URL member data of the Website class.
Fixed a bug in the URL handling for Youtube.
Added output stating the filename for the download.
Replaced all code in the classes/tests to accommodate the other changes.
Fixed a bug in the Youtube class' parsing of the "t" parameter.
Modified the "t" parsing regex to catch non-alphanumeric characters, which from experience I now know are possible.
Added a test/fixture to expose the bug.
The whatever-dl executable now outputs "Fetching #{video_url}" before actually fetching the file.
Fixed a typo in the main executable which was causing a crash.
Added the progress bar tests back to the suite.
Added a Youtube class and the accompanying unit tests/fixtures.
Added independent (non-wget) file downloads via open-uri.
Removed a bad vimeo_remote_test require from the remote test suite.
Added the UriUtilities class and a bunch of tests for it.
Included the ProgressBar class in the vendor directory so that the UriUtilities class can display a progress bar during downloads.
Added the ProgressBar tests to the test suite.
Added error handling to the main whatever-dl script for newly-possible IO/connection errors.
Removed the wget exec() call in favor of the open-uri call.
mjo [Fri, 29 Aug 2008 21:37:30 +0000 (17:37 -0400)]
Added the ability to download Vimeo videos.
Created a Vimeo class.
Created a bunch of tests for the new Vimeo class.
Added a fixture for the Vimeo tests: an XML file containing the video data.
Added a GPLv3 notice to the top of any file which did not contain one.
Michael Orlitzky [Mon, 16 Jun 2008 03:43:00 +0000 (23:43 -0400)]
Added the Infoq site.
Added support for infoq.com by adding a new website class. Infoq
attempts to obscure their video URLs with Base64 encoding which is
easy enough to get around. I implemented this, and a couple of tests
for the new class.