| WebService-Audioscrobbler documentation | Contained in the WebService-Audioscrobbler distribution. |
WebService::Audioscrobbler::Track - An object-oriented interface to the Audioscrobbler WebService API
This module implements an object oriented abstraction of a track within the Audioscrobbler database.
use WebService::Audioscrobbler::Track;
my $ws = WebService::Audioscrobbler->new;
# get a track object for the track titled 'bar' by 'foo'
my $track = $ws->track('foo', 'bar');
# retrieves the track's tags
my @tags = $track->tags;
# prints url for viewing aditional tag info
print $track->url;
# prints the tag's artist name
print $track->artist->name;
This module inherits from WebService::Audioscrobbler::Base.
artistThe track's performing artist.
name
=head2 titleThe name (title) of a given track.
mbidMusicBrainz ID as provided by the Audioscrobbler database.
urlURL for aditional info about the track.
new($artist, $title, $data_fetcher)new(\%fields)Creates a new object using either the given $artist and $title or the
\%fields hashref. The data fetcher object is a mandatory parameter and must
be provided either as the second parameter or inside the \%fields hashref.
tagsresource_pathReturns the URL from which other URLs used for fetching track info will be derived from.
Nilson Santos Figueiredo Júnior, <nilsonsfj at cpan.org>
Copyright 2006-2007 Nilson Santos Figueiredo Júnior, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| WebService-Audioscrobbler documentation | Contained in the WebService-Audioscrobbler distribution. |
package WebService::Audioscrobbler::Track; use warnings; use strict; use CLASS; use base 'WebService::Audioscrobbler::Base';
our $VERSION = '0.07'; # postfix related accessors CLASS->mk_classaccessor("base_resource_path" => "track"); # requiring stuff CLASS->tags_class->require or die($@); # object accessors CLASS->mk_accessors(qw/artist name mbid url streamable/); *title = \&name;
sub new { my $class = shift; my ($artist_or_fields, $title, $data_fetcher) = @_; my $self = $class->SUPER::new( ref $artist_or_fields eq 'HASH' ? $artist_or_fields : { artist => $artist_or_fields, name => $title, data_fetcher => $data_fetcher } ); $class->croak("No data fetcher provided") unless $self->data_fetcher; return $self; }
sub tracks { shift->croak("Audioscrobbler doesn't provide data regarding tracks which are related to other tracks"); } sub artists { shift->croak("Audioscrobbler doesn't provide data regarding artists related to specific tracks"); }
sub resource_path { my $self = shift; $self->uri_builder( $self->artist->name, $self->name ); }
1; # End of WebService::Audioscrobbler::Track