Esempio n. 1
0
 /**
  * getSimilarSongs
  * Returns a random collection of songs from the given artist and similar artists, using data from last.fm. Typically used for artist radio features.
  * Takes song/album/artist id in parameter with optional similar songs count.
  */
 public static function getsimilarsongs($input)
 {
     $id = self::check_parameter($input, 'id');
     $count = $input['count'] ?: 50;
     $songs = null;
     if (Subsonic_XML_Data::isArtist($id)) {
         // TODO: support similar songs for artists
     } elseif (Subsonic_XML_Data::isAlbum($id)) {
         // TODO: support similar songs for albums
     } elseif (Subsonic_XML_Data::isSong($id)) {
         if (AmpConfig::get('show_similar')) {
             $songs = Recommendation::get_songs_like(Subsonic_XML_Data::getAmpacheId($id));
         }
     }
     if ($songs === null) {
         $r = Subsonic_XML_Data::createError(Subsonic_XML_Data::SSERROR_DATA_NOTFOUND);
     } else {
         $r = Subsonic_XML_Data::createSuccessResponse();
         Subsonic_XML_Data::addSimilarSongs($r, $songs);
     }
     self::apiOutput($input, $r);
 }
Esempio n. 2
0
                     $object_ids[] = $similar['id'];
                 } else {
                     $missing_objects[] = $similar;
                 }
             }
         }
         ob_start();
         require_once AmpConfig::get('prefix') . UI::find_template('show_recommended_artists.inc.php');
         $results['similar_artist'] = ob_get_clean();
     }
     break;
 case 'similar_now_playing':
     $media_id = $_REQUEST['media_id'];
     if (AmpConfig::get('show_similar') && isset($media_id) && isset($_REQUEST['media_artist'])) {
         $artists = Recommendation::get_artists_like($_REQUEST['media_artist'], 3, false);
         $songs = Recommendation::get_songs_like($media_id, 3);
         ob_start();
         require_once AmpConfig::get('prefix') . UI::find_template('show_now_playing_similar.inc.php');
         $results['similar_items_' . $media_id] = ob_get_clean();
     }
     break;
 case 'concerts':
     if (AmpConfig::get('show_concerts') && isset($_REQUEST['artist'])) {
         $artist = new Artist($_REQUEST['artist']);
         $artist->format();
         if ($artist->id) {
             $up_concerts = Artist_Event::get_upcoming_events($artist);
             $past_concerts = Artist_Event::get_past_events($artist);
             $coming_concerts = array();
             $concerts = array();
             if ($up_concerts) {