Thank’s to Nathaniel Brown for pointing this out.
A few days ago Flickr seemed to change their URL scheme for images served inside their RSS feed. The Mephisto plugin I wrote included the Flickr aggregation library from Typo. This does some regular expression parsing to determine the URL for other image sizes, but, because Flickr had changed their URL scheme, it broke.
Fortunately, the fix is pretty straightforward. Of course, first the test to show the new behaviour of Flickr:
12345678 |
def test_should_generate_correct_address_for_each_image_size pic = FlickrAggregation::Picture.new( :title => 'test', :description => 'http://farm1.static.flickr.com/my_image_m.jpg' ) assert_equal 'http://farm1.static.flickr.com/my_image_m.jpg', pic.image assert_equal 'http://farm1.static.flickr.com/my_image_d.jpg', pic.medium |
Running the test shows that we get an error - the regular expression fails to pick up the URL correctly:
NoMethodError: You have a nil object when you didn’t expect it!You might have expected an instance of Array.The error occurred while evaluating nil.first
So, we change our aggregation library to fix it as:
123 |
def image description.scan( /(http:\/\/.*(static|photos).*?\.jpg)/ ).first.firstend |
Run the test again and we’re green.
I’ve committed the changes into the Subversion repository. So feel free to get the update!
Incidentally, I wonder whether this is related to Ezra Zygmuntowicz’s post about speeding up page loads by serving images from cnames. Maybe it’s just coincidence.