/** * addTracksToPlaylist function. * * @access public * @param mixed $w * @param mixed $tracks * @param mixed $playlist_uri * @param mixed $playlist_name * @param bool $allow_duplicate (default: true) * @param bool $refreshLibrary (default: true) * @return void */ function addTracksToPlaylist($w, $tracks, $playlist_uri, $playlist_name, $allow_duplicate = true, $refreshLibrary = true) { // // Read settings from JSON // $settings = getSettings($w); $userid = $settings->userid; $tracks_with_no_dup = array(); if (!$allow_duplicate) { $playlist_tracks = getThePlaylistTracks($w, $playlist_uri); foreach ((array) $tracks as $track) { if (!checkIfDuplicate($playlist_tracks, $track)) { $tracks_with_no_dup[] = $track; } } $tracks = $tracks_with_no_dup; } if (count($tracks) != 0) { try { $api = getSpotifyWebAPI($w); $tmp = explode(':', $playlist_uri); // Note: max 100 Ids $offset = 0; $i = 0; do { $output = array_slice($tracks, $offset, 100); $offset += 100; if (count($output)) { // refresh api $api = getSpotifyWebAPI($w, $api); $api->addUserPlaylistTracks(urlencode($userid), $tmp[4], $output, array('position' => 0)); $i++; } /* if($i % 30 === 0) { sleep(60); echo "Info: Throttling in addTracksToPlaylist"; } */ } while (count($output) > 0); } catch (SpotifyWebAPI\SpotifyWebAPIException $e) { logMsg("Error(addTracksToPlaylist): (exception " . print_r($e) . ")"); handleSpotifyWebAPIException($w, $e); return false; } if ($refreshLibrary) { refreshLibrary($w); } } return count($tracks); }
$ret = addTracksToYourMusic($w, $tmp[2], false); if ($userid != 'vdesabou') { stathat_ez_count('AlfredSpotifyMiniPlayer', 'add_or_remove', 1); } if (is_numeric($ret) && $ret > 0) { displayNotificationWithArtwork('' . $track_name . ' added to Your Music', $track_artwork_path, 'Add Track to Your Music'); return; } else { if (is_numeric($ret) && $ret == 0) { displayNotificationWithArtwork('' . $track_name . ' is already in Your Music', './images/warning.png', 'Error!'); return; } } } elseif ($playlist_uri != '') { $playlist_artwork_path = getPlaylistArtwork($w, $playlist_uri, true, true); $ret = addTracksToYourMusic($w, getThePlaylistTracks($w, $playlist_uri), false); if ($userid != 'vdesabou') { stathat_ez_count('AlfredSpotifyMiniPlayer', 'add_or_remove', 1); } if (is_numeric($ret) && $ret > 0) { displayNotificationWithArtwork('Playlist ' . $playlist_name . ' added to Your Music', $playlist_artwork_path, 'Add Playlist to Your Music'); return; } else { if (is_numeric($ret) && $ret == 0) { displayNotificationWithArtwork('Playlist ' . $playlist_name . ' is already in Your Music', './images/warning.png', 'Error!'); return; } } } elseif ($album_uri != '') { $album_artwork_path = getTrackOrAlbumArtwork($w, $album_uri, true); $ret = addTracksToYourMusic($w, getTheAlbumTracks($w, $album_uri), false);