Example #1
0
 /** Get an album chart for a group, for a given date range. If no date range is supplied, it will return the most recent album chart for this group.
  *
  * @param	string	$group	The last.fm group name to fetch the charts of. (Required)
  * @param	integer	$from	The date at which the chart should start from. See {@link de.felixbruns.lastfm.Group#getWeeklyChartList Group::getWeeklyChartList} for more. (Optional)
  * @param	integer	$to		The date at which the chart should end on. See {@link de.felixbruns.lastfm.Group#getWeeklyChartList Group::getWeeklyChartList} for more. (Optional)
  * @return	array			An array of Album objects.
  *
  * @static
  * @access	public
  * @throws	Error
  */
 public static function getWeeklyAlbumChart($group, $from = null, $to = null)
 {
     $xml = CallerFactory::getDefaultCaller()->call('group.getWeeklyAlbumChart', array('group' => $group, 'from' => $from, 'to' => $to));
     $albums = array();
     foreach ($xml->children() as $album) {
         $albums[] = Album::fromSimpleXMLElement($album);
     }
     return $albums;
 }
Example #2
0
 /** A paginated list of all the albums in a user's library, with play counts and tag counts.
  *
  * @param	string	$user	The user whose library you want to fetch. (Required)
  * @param	integer	$limit	Limit the amount of albums returned (maximum/default is 50). (Optional)
  * @param	integer	$page	The page number you wish to scan to. (Optional)
  * @return	PaginatedResult	A PaginatedResult object.
  *
  * @static
  * @access	public
  * @throws	Error
  */
 public static function getAlbums($user, $limit = null, $page = null)
 {
     $xml = CallerFactory::getDefaultCaller()->call('library.getAlbums', array('user' => $user, 'limit' => $limit, 'page' => $page));
     $albums = array();
     foreach ($xml->children() as $album) {
         $albums[] = Album::fromSimpleXMLElement($album);
     }
     $perPage = Util::toInteger($xml['perPage']);
     return new PaginatedResult(Util::toInteger($xml['totalPages']) * $perPage, (Util::toInteger($xml['page']) - 1) * $perPage, $perPage, $albums);
 }
Example #3
0
 /** Get the top albums tagged by this tag, ordered by tag count.
  *
  * @param	string	$tag	The tag name in question. (Required)
  * @return	array			An array of Album objects.
  *
  * @static
  * @access	public
  * @throws	Error
  */
 public static function getTopAlbums($tag)
 {
     $xml = CallerFactory::getDefaultCaller()->call('tag.getTopAlbums', array('tag' => $tag));
     $albums = array();
     foreach ($xml->children() as $album) {
         $albums[] = Album::fromSimpleXMLElement($album);
     }
     return $albums;
 }
Example #4
0
 /** Search for an album by name. Returns album matches sorted by relevance.
  *
  * @param	string	$album	The album name in question. (Required)
  * @param	integer	$limit	Limit the number of albums returned at one time. Default (maximum) is 30. (Optional)
  * @param	integer	$page	Scan into the results by specifying a page number. Defaults to first page. (Optional)
  * @return	PaginatedResult	A PaginatedResult object.
  * @see		PaginatedResult
  *
  * @static
  * @access	public
  * @throws	Error
  */
 public static function search($album, $limit = null, $page = null)
 {
     $xml = CallerFactory::getDefaultCaller()->call('album.search', array('album' => $album, 'limit' => $limit, 'page' => $page));
     $albums = array();
     foreach ($xml->albummatches->children() as $album) {
         $artists[] = Album::fromSimpleXMLElement($album);
     }
     $opensearch = $xml->children('http://a9.com/-/spec/opensearch/1.1/');
     return new PaginatedResult(Util::toInteger($opensearch->totalResults), Util::toInteger($opensearch->startIndex), Util::toInteger($opensearch->itemsPerPage), $albums);
 }