示例#1
0
文件: functions.php 项目: bycEEE/env
/**
 * 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);
}
示例#2
0
     $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);