WebService::BBC::MusicCharts - Retrieve and return UK music chart listings
use WebService::BBC::MusicCharts; my $chart = WebService::BBC::MusicCharts->new( chart => 'album' ); my $count = 1; foreach my $title ($chart->titles) { print "At $count we have $title\n"; $count++; }
The WebService::BBC::MusicCharts module provides access to some of the BBCs online music charts via a simple object-oriented interface.
It currently supports the singles chart, album chart and downloaded music charts.
use WebService::BBC::MusicCharts; my $albums = WebService::BBC::MusicCharts->new( chart => 'album' ); foreach my $chart_position (1..40) { my $details = $albums->number($chart_position); print "$chart_position: ", $details->{title}; print " by ", $details->{artist},"\n"; }
This is the constructor for a new WebService::BBC::MusicCharts object. The chart argument is required (and can currently be 'album', 'download' or 'singles') and the module will die if it is either missing or passed an invalid value.
chart
die
The constructor also does the actual page fetch, which may also die if the get fails. Wrapping the new invocation in an eval isn't a bad idea.
get
new
eval
Returns the type of chart that this instance represents. Mostly used when I was debugging the module.
Returns an array containing all the titles from the chart this instance represents.
Returns an array containing all the artists from the chart this instance represents.
The number method must be called with a valid integer (it accepts any between 1 and 40), it then returns a hash ref containing the details for the song/album at that chart position.
The fields returned are: artist - the name of the artist title - the title of the single or album label - the owning record label this_week - the current chart position of the song/album last_week - The position this song/album was at last week. This will either be a number, NEW or RE (re-entry) weeks_in_chart - the number of weeks it's been in the chart
artist
title
label
this_week
last_week
weeks_in_chart
If called without an argument, or with one that's not between 1 and 40, it will return undef.
WebService::BBC::MusicCharts requires the following modules:
LWP::Simple
Template::Extract
Copyright (C) 2006 Dean Wilson. All Rights Reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Dean Wilson <dean.wilson@gmail.com>
To install WebService::BBC::MusicCharts, copy and paste the appropriate command in to your terminal.
cpanm
cpanm WebService::BBC::MusicCharts
CPAN shell
perl -MCPAN -e shell install WebService::BBC::MusicCharts
For more information on module installation, please visit the detailed CPAN module installation guide.