Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
spotify
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
web
spotify
Compare revisions
35e20a2fc8e99794cc2a6af5f7ec93b2113a6e74 to 509782a914ab2354845e0fe9ea3e09a5a07ab1c0
Compare revisions
Changes are shown as if the
source
revision was being merged into the
target
revision.
Learn more about comparing revisions.
Source
web/spotify
Select target project
No results found
509782a914ab2354845e0fe9ea3e09a5a07ab1c0
Select Git revision
Branches
11-improve-new-playlist-name-and-description
15-add-a-play-now-button-on-created-playlist-message
20-rename-playlist-with-artists-names
30-save-spotify-personal-token-for-external-use
37-batch-update-recently-played-tracks
40-add-more-default-playlists-in-quick-create-feature
58-create-api-for-main-routes
60-display-last-tracks-and-some-dump-metadata
master
9 results
Swap
Target
web/spotify
Select target project
web/spotify
1 result
35e20a2fc8e99794cc2a6af5f7ec93b2113a6e74
Select Git revision
Branches
11-improve-new-playlist-name-and-description
15-add-a-play-now-button-on-created-playlist-message
20-rename-playlist-with-artists-names
30-save-spotify-personal-token-for-external-use
37-batch-update-recently-played-tracks
40-add-more-default-playlists-in-quick-create-feature
58-create-api-for-main-routes
60-display-last-tracks-and-some-dump-metadata
master
9 results
Show changes
Only incoming changes from source
Include changes to target since source was created
Compare
Commits on Source (2)
Improve/fix/clean some code
· eb0b9b89
Benoît Harrault
authored
2 years ago
eb0b9b89
Merge branch '39-improve-clean-code' into 'master'
· 509782a9
Benoît Harrault
authored
2 years ago
Resolve "Improve/clean code" Closes
#39
See merge request
!36
509782a9
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
public/index.php
+157
-126
157 additions, 126 deletions
public/index.php
spotify/lib.php
+12
-7
12 additions, 7 deletions
spotify/lib.php
with
169 additions
and
133 deletions
public/index.php
View file @
509782a9
...
@@ -61,6 +61,9 @@ try {
...
@@ -61,6 +61,9 @@ try {
$topArtistsCount
=
40
;
$topArtistsCount
=
40
;
$playlistsCount
=
24
;
$playlistsCount
=
24
;
$tracksCountInShortPlaylist
=
50
;
$tracksCountInLongPlaylist
=
100
;
$templateData
=
[
$templateData
=
[
'user'
=>
$user
,
'user'
=>
$user
,
'playlists'
=>
[],
'playlists'
=>
[],
...
@@ -76,153 +79,181 @@ $generatePlaylistFromSelectedTopArtists = isset($_GET['generate-playlist-top-art
...
@@ -76,153 +79,181 @@ $generatePlaylistFromSelectedTopArtists = isset($_GET['generate-playlist-top-art
$generatePlaylistFromRandomTopArtists
=
isset
(
$_GET
[
'generate-playlist-random-top-artists'
]);
$generatePlaylistFromRandomTopArtists
=
isset
(
$_GET
[
'generate-playlist-random-top-artists'
]);
$showPlaylistContent
=
isset
(
$_GET
[
'show-playlist'
]);
$showPlaylistContent
=
isset
(
$_GET
[
'show-playlist'
]);
$action
=
''
;
if
(
$generatePlaylistFromPlaylist
)
{
if
(
$generatePlaylistFromPlaylist
)
{
$selectedPlaylists
=
$_GET
[
'selected-playlist'
];
$action
=
'generate-playlist-from-playlist'
;
printLog
(
'Will create new playlist with recommendations from playlists: '
.
join
(
', '
,
$selectedPlaylists
)
.
'".'
);
}
elseif
(
$generatePlaylistFromSelectedTopArtists
)
{
$recommendedTrackIds
=
[];
$action
=
'generate-playlist-from-selected-top-artists'
;
}
elseif
(
$generatePlaylistFromRandomTopArtists
)
{
$shouldFilterByArtists
=
isset
(
$_GET
[
'check-playlist-filter-artists'
]);
$action
=
'generate-playlist-from-random-top-artists'
;
printLog
(
'Filter by artists in source playlists: '
.
(
$shouldFilterByArtists
?
'yes'
:
'no'
));
}
elseif
(
$showPlaylistContent
)
{
$action
=
'show-playlist-content'
;
$generateLongPlaylist
=
isset
(
$_GET
[
'check-playlist-long-playlist'
]);
}
else
{
printLog
(
'Generate long playlist: '
.
(
$generateLongPlaylist
?
'yes'
:
'no'
));
}
$artistsInSourcePlaylists
=
[];
foreach
(
$selectedPlaylists
as
$selectedPlaylistId
)
{
$playlist
=
$api
->
getPlaylist
(
$selectedPlaylistId
);
printLog
(
'Will get recommendations from tracks in playlist "'
.
$playlist
->
name
.
'".'
);
$playlistTracks
=
$playlist
->
tracks
->
items
;
printLog
(
'Found '
.
count
(
$playlistTracks
)
.
' tracks.'
);
foreach
(
$playlistTracks
as
$track
)
{
$artists
=
[];
foreach
(
$track
->
track
->
artists
as
$artist
)
{
$artists
[]
=
$artist
->
name
;
$artistsInSourcePlaylists
[
$artist
->
id
]
=
1
;
}
printLog
(
'Track "'
.
$track
->
track
->
name
.
'" ('
.
join
(
', '
,
$artists
)
.
')'
);
$recommendations
=
$api
->
getRecommendations
([
switch
(
$action
)
{
'seed_tracks'
=>
[
$track
->
track
->
id
],
case
'generate-playlist-from-playlist'
:
'limit'
=>
(
$generateLongPlaylist
?
50
:
30
)
$selectedPlaylists
=
$_GET
[
'selected-playlist'
];
]);
printLog
(
'Will create new playlist with recommendations from playlists: '
.
join
(
', '
,
$selectedPlaylists
)
.
'".'
);
printLog
(
' -> Got '
.
count
(
$recommendations
->
tracks
)
.
' recommendatations.'
);
$recommendedTrackIds
=
[];
foreach
(
$recommendations
->
tracks
as
$recommendedTrack
)
{
$recommendedTrackIds
[
$recommendedTrack
->
id
]
=
$recommendedTrack
;
$shouldFilterByArtists
=
isset
(
$_GET
[
'check-playlist-filter-artists'
]);
}
printLog
(
'Filter by artists in source playlists: '
.
(
$shouldFilterByArtists
?
'yes'
:
'no'
));
}
}
$generateLongPlaylist
=
isset
(
$_GET
[
'check-playlist-long-playlist'
]);
printLog
(
'Generate long playlist: '
.
(
$generateLongPlaylist
?
'yes'
:
'no'
));
if
(
$shouldFilterByArtists
)
{
$artistsInSourcePlaylists
=
array_keys
(
$artistsInSourcePlaylists
);
$artistsInSourcePlaylists
=
[];
printLog
(
'Filter by artists found in source playlists ('
.
count
(
$artistsInSourcePlaylists
)
.
')'
);
foreach
(
$selectedPlaylists
as
$selectedPlaylistId
)
{
$filteredTrackIds
=
[];
$playlist
=
$api
->
getPlaylist
(
$selectedPlaylistId
);
foreach
(
$recommendedTrackIds
as
$trackId
=>
$track
)
{
printLog
(
'Will get recommendations from tracks in playlist "'
.
$playlist
->
name
.
'".'
);
$trackArtistInWantedArtists
=
false
;
$playlistTracks
=
$playlist
->
tracks
->
items
;
foreach
(
$track
->
artists
as
$trackArtist
)
{
printLog
(
'Found '
.
count
(
$playlistTracks
)
.
' tracks.'
);
if
(
\in_array
(
$trackArtist
->
id
,
$artistsInSourcePlaylists
))
{
foreach
(
$playlistTracks
as
$track
)
{
$filteredTrackIds
[
$track
->
id
]
=
1
;
$artists
=
[];
foreach
(
$track
->
track
->
artists
as
$artist
)
{
$artists
[]
=
$artist
->
name
;
$artistsInSourcePlaylists
[
$artist
->
id
]
=
1
;
}
printLog
(
'Track "'
.
$track
->
track
->
name
.
'" ('
.
join
(
', '
,
$artists
)
.
')'
);
$recommendations
=
$api
->
getRecommendations
([
'seed_tracks'
=>
[
$track
->
track
->
id
],
'limit'
=>
(
$generateLongPlaylist
?
50
:
30
)
]);
printLog
(
' -> Got '
.
count
(
$recommendations
->
tracks
)
.
' recommendatations.'
);
foreach
(
$recommendations
->
tracks
as
$recommendedTrack
)
{
$recommendedTrackIds
[
$recommendedTrack
->
id
]
=
$recommendedTrack
;
}
}
}
}
}
}
$recommendedTrackIds
=
$filteredTrackIds
;
}
$newPlaylist
=
createPlaylistWithRandomTracks
(
$api
,
$recommendedTrackIds
,
$generateLongPlaylist
?
100
:
50
);
$templateData
[
'infos'
][]
=
getCreatedPlaylistInformationMessage
(
$api
,
$newPlaylist
);
}
elseif
(
$generatePlaylistFromSelectedTopArtists
)
{
$selectedArtists
=
$_GET
[
'selected-artist'
];
printLog
(
'Will create new playlist with filterted recommendations from artists: '
.
join
(
', '
,
$selectedArtists
)
.
'".'
);
$recommendedTrackIds
=
[];
$shouldFilterByArtists
=
isset
(
$_GET
[
'check-top-artist-filter-artists'
]);
if
(
$shouldFilterByArtists
)
{
printLog
(
'Filter by artists in selection: '
.
(
$shouldFilterByArtists
?
'yes'
:
'no'
));
$artistsInSourcePlaylists
=
array_keys
(
$artistsInSourcePlaylists
);
printLog
(
'Filter by artists found in source playlists ('
.
count
(
$artistsInSourcePlaylists
)
.
')'
);
$generateLongPlaylist
=
isset
(
$_GET
[
'check-top-artist-long-playlist'
]);
$filteredTrackIds
=
[];
printLog
(
'Generate long playlist: '
.
(
$generateLongPlaylist
?
'yes'
:
'no'
));
foreach
(
$recommendedTrackIds
as
$trackId
=>
$track
)
{
foreach
(
$selectedArtists
as
$selectedArtist
)
{
printLog
(
'Get recommendations for artist '
.
$selectedArtist
.
''
);
$recommendations
=
$api
->
getRecommendations
([
'seed_artists'
=>
$selectedArtist
,
'limit'
=>
100
]);
printLog
(
' -> Got '
.
count
(
$recommendations
->
tracks
)
.
' recommendatations.'
);
// Filter by artist if requested, remove duplicates
foreach
(
$recommendations
->
tracks
as
$recommendedTrack
)
{
if
(
$shouldFilterByArtists
)
{
$trackArtistInWantedArtists
=
false
;
$trackArtistInWantedArtists
=
false
;
foreach
(
$
recommendedT
rack
->
artists
as
$trackArtist
)
{
foreach
(
$
t
rack
->
artists
as
$trackArtist
)
{
if
(
\in_array
(
$trackArtist
->
id
,
$
selectedArt
ists
))
{
if
(
\in_array
(
$trackArtist
->
id
,
$
artistsInSourcePlayl
ists
))
{
$
recommend
edTrackIds
[
$
recommendedT
rack
->
id
]
=
1
;
$
filter
edTrackIds
[
$
t
rack
->
id
]
=
1
;
}
}
}
}
}
else
{
$recommendedTrackIds
[
$recommendedTrack
->
id
]
=
1
;
}
}
$recommendedTrackIds
=
$filteredTrackIds
;
}
}
}
$newPlaylist
=
createPlaylistWithRandomTracks
(
$api
,
$recommendedTrackIds
,
$generateLongPlaylist
?
100
:
50
);
$templateData
[
'infos'
][]
=
getCreatedPlaylistInformationMessage
(
$api
,
$newPlaylist
);
}
elseif
(
$generatePlaylistFromRandomTopArtists
)
{
$newPlaylist
=
createPlaylistWithRandomTracks
(
$api
,
$recommendedTrackIds
,
$generateLongPlaylist
?
$tracksCountInLongPlaylist
:
$tracksCountInShortPlaylist
);
$templateData
[
'infos'
][]
=
getCreatedPlaylistInformationMessage
(
$api
,
$newPlaylist
);
break
;
case
'generate-playlist-from-selected-top-artists'
:
$selectedArtists
=
$_GET
[
'selected-artist'
];
printLog
(
'Will create new playlist with filterted recommendations from artists: '
.
join
(
', '
,
$selectedArtists
)
.
'".'
);
$recommendedTrackIds
=
[];
$shouldFilterByArtists
=
isset
(
$_GET
[
'check-top-artist-filter-artists'
]);
printLog
(
'Filter by artists in selection: '
.
(
$shouldFilterByArtists
?
'yes'
:
'no'
));
$generateLongPlaylist
=
isset
(
$_GET
[
'check-top-artist-long-playlist'
]);
printLog
(
'Generate long playlist: '
.
(
$generateLongPlaylist
?
'yes'
:
'no'
));
foreach
(
$selectedArtists
as
$selectedArtist
)
{
printLog
(
'Get recommendations for artist '
.
$selectedArtist
.
''
);
$recommendations
=
$api
->
getRecommendations
([
'seed_artists'
=>
$selectedArtist
,
'limit'
=>
100
]);
printLog
(
' -> Got '
.
count
(
$recommendations
->
tracks
)
.
' recommendatations.'
);
$countInTopArtists
=
random_int
(
4
,
6
);
// Filter by artist if requested, remove duplicates
$countInLessTopArtists
=
random_int
(
4
,
6
);
foreach
(
$recommendations
->
tracks
as
$recommendedTrack
)
{
$limitBetweenTopAndLessTop
=
$topArtistsCount
;
if
(
$shouldFilterByArtists
)
{
$selectedArtists
=
getRandomArtistsFromTopArtists
(
$api
,
$countInTopArtists
,
$countInLessTopArtists
,
$limitBetweenTopAndLessTop
);
$trackArtistInWantedArtists
=
false
;
printLog
(
'Will create new playlist with filterted recommendations from random artists: '
.
join
(
', '
,
$selectedArtists
)
.
'".'
);
foreach
(
$recommendedTrack
->
artists
as
$trackArtist
)
{
$recommendedTrackIds
=
[];
if
(
\in_array
(
$trackArtist
->
id
,
$selectedArtists
))
{
$recommendedTrackIds
[
$recommendedTrack
->
id
]
=
1
;
$shouldFilterByArtists
=
isset
(
$_GET
[
'check-top-artist-filter-artists'
]);
}
printLog
(
'Filter by artists in selection: '
.
(
$shouldFilterByArtists
?
'yes'
:
'no'
));
$generateLongPlaylist
=
isset
(
$_GET
[
'check-top-artist-long-playlist'
]);
printLog
(
'Generate long playlist: '
.
(
$generateLongPlaylist
?
'yes'
:
'no'
));
foreach
(
$selectedArtists
as
$selectedArtist
)
{
printLog
(
'Get recommendations for artist '
.
$selectedArtist
.
''
);
$recommendations
=
$api
->
getRecommendations
([
'seed_artists'
=>
$selectedArtist
,
'limit'
=>
100
]);
printLog
(
' -> Got '
.
count
(
$recommendations
->
tracks
)
.
' recommendatations.'
);
// Filter by artist if requested, remove duplicates
foreach
(
$recommendations
->
tracks
as
$recommendedTrack
)
{
if
(
$shouldFilterByArtists
)
{
$trackArtistInWantedArtists
=
false
;
foreach
(
$recommendedTrack
->
artists
as
$trackArtist
)
{
if
(
\in_array
(
$trackArtist
->
id
,
$selectedArtists
))
{
$recommendedTrackIds
[
$recommendedTrack
->
id
]
=
1
;
}
}
}
else
{
$recommendedTrackIds
[
$recommendedTrack
->
id
]
=
1
;
}
}
}
else
{
$recommendedTrackIds
[
$recommendedTrack
->
id
]
=
1
;
}
}
}
}
}
$newPlaylist
=
createPlaylistWithRandomTracks
(
$api
,
$recommendedTrackIds
,
$generateLongPlaylist
?
100
:
50
);
$templateData
[
'infos'
][]
=
getCreatedPlaylistInformationMessage
(
$api
,
$newPlaylist
);
}
elseif
(
$showPlaylistContent
)
{
$newPlaylist
=
createPlaylistWithRandomTracks
(
printLog
(
'Get content of playlist: '
.
(
$generateLongPlaylist
?
'yes'
:
'no'
));
$api
,
$recommendedTrackIds
,
$generateLongPlaylist
?
$tracksCountInLongPlaylist
:
$tracksCountInShortPlaylist
);
$templateData
[
'infos'
][]
=
getCreatedPlaylistInformationMessage
(
$api
,
$newPlaylist
);
break
;
case
'generate-playlist-from-random-top-artists'
:
$countInTopArtists
=
random_int
(
4
,
6
);
$countInLessTopArtists
=
random_int
(
4
,
6
);
$limitBetweenTopAndLessTop
=
$topArtistsCount
;
$selectedArtists
=
getRandomArtistsFromTopArtists
(
$api
,
$countInTopArtists
,
$countInLessTopArtists
,
$limitBetweenTopAndLessTop
);
printLog
(
'Will create new playlist with filterted recommendations from random artists: '
.
join
(
', '
,
$selectedArtists
)
.
'".'
);
$recommendedTrackIds
=
[];
$shouldFilterByArtists
=
isset
(
$_GET
[
'check-top-artist-filter-artists'
]);
printLog
(
'Filter by artists in selection: '
.
(
$shouldFilterByArtists
?
'yes'
:
'no'
));
$generateLongPlaylist
=
isset
(
$_GET
[
'check-top-artist-long-playlist'
]);
printLog
(
'Generate long playlist: '
.
(
$generateLongPlaylist
?
'yes'
:
'no'
));
foreach
(
$selectedArtists
as
$selectedArtist
)
{
printLog
(
'Get recommendations for artist '
.
$selectedArtist
.
''
);
$recommendations
=
$api
->
getRecommendations
([
'seed_artists'
=>
$selectedArtist
,
'limit'
=>
100
]);
printLog
(
' -> Got '
.
count
(
$recommendations
->
tracks
)
.
' recommendations.'
);
$playlistId
=
$_GET
[
'id'
];
// Filter by artist if requested, remove duplicates
$playlist
=
$api
->
getPlaylist
(
$playlistId
);
foreach
(
$recommendations
->
tracks
as
$recommendedTrack
)
{
$templateData
[
'infos'
][]
=
getPlaylistInformationMessage
(
$api
,
$playlist
);
if
(
$shouldFilterByArtists
)
{
$templateData
[
'playlist'
]
=
createDisplayablePlaylist
(
$playlist
);
$trackArtistInWantedArtists
=
false
;
foreach
(
$recommendedTrack
->
artists
as
$trackArtist
)
{
if
(
\in_array
(
$trackArtist
->
id
,
$selectedArtists
))
{
$recommendedTrackIds
[
$recommendedTrack
->
id
]
=
1
;
}
}
}
else
{
$recommendedTrackIds
[
$recommendedTrack
->
id
]
=
1
;
}
}
}
}
else
{
$newPlaylist
=
createPlaylistWithRandomTracks
(
$templateData
[
'topArtists'
]
=
$api
->
getMyTop
(
'artists'
,
[
'limit'
=>
$topArtistsCount
,
'time_range'
=>
'short_term'
])
->
items
;
$api
,
$templateData
[
'playlists'
]
=
$api
->
getUserPlaylists
(
$user
[
'id'
],
[
'limit'
=>
$playlistsCount
])
->
items
;
$recommendedTrackIds
,
$generateLongPlaylist
?
$tracksCountInLongPlaylist
:
$tracksCountInShortPlaylist
);
$templateData
[
'infos'
][]
=
getCreatedPlaylistInformationMessage
(
$api
,
$newPlaylist
);
break
;
case
'show-playlist-content'
:
printLog
(
'Get content of playlist'
);
$playlistId
=
$_GET
[
'id'
];
$playlist
=
$api
->
getPlaylist
(
$playlistId
);
$templateData
[
'infos'
][]
=
getPlaylistInformationMessage
(
$api
,
$playlist
);
$templateData
[
'playlist'
]
=
createDisplayablePlaylist
(
$playlist
);
break
;
default
:
$templateData
[
'topArtists'
]
=
$api
->
getMyTop
(
'artists'
,
[
'limit'
=>
$topArtistsCount
,
'time_range'
=>
'short_term'
])
->
items
;
$templateData
[
'playlists'
]
=
$api
->
getUserPlaylists
(
$user
[
'id'
],
[
'limit'
=>
$playlistsCount
])
->
items
;
break
;
}
}
require
'../template.php'
;
require
'../template.php'
;
This diff is collapsed.
Click to expand it.
spotify/lib.php
View file @
509782a9
...
@@ -11,17 +11,17 @@ function generateShowPlaylistUrl($playlistId) {
...
@@ -11,17 +11,17 @@ function generateShowPlaylistUrl($playlistId) {
return
'/view-playlist-'
.
$playlistId
;
return
'/view-playlist-'
.
$playlistId
;
}
}
function
generatePlaylistName
()
function
generatePlaylistName
(
$prefix
)
{
{
$now
=
new
DateTime
();
$now
=
new
DateTime
();
$name
=
'Fresh playlist
['
.
$now
->
format
(
'Y-m-d H:i:s'
)
.
']'
;
$name
=
$prefix
.
'
['
.
$now
->
format
(
'Y-m-d H:i:s'
)
.
']'
;
return
$name
;
return
$name
;
}
}
function
createEmptyPlaylist
(
$api
)
function
createEmptyPlaylist
(
$api
,
$playlistName
=
'Auto playlist'
)
{
{
$name
=
generatePlaylistName
();
$name
=
generatePlaylistName
(
$playlistName
);
printLog
(
'Create new playlist "'
.
$name
.
'".'
);
printLog
(
'Create new playlist "'
.
$name
.
'".'
);
$playlist
=
$api
->
createPlaylist
([
$playlist
=
$api
->
createPlaylist
([
'name'
=>
$name
,
'name'
=>
$name
,
...
@@ -30,11 +30,16 @@ function createEmptyPlaylist($api)
...
@@ -30,11 +30,16 @@ function createEmptyPlaylist($api)
return
$playlist
;
return
$playlist
;
}
}
function
pickRandomTracksFromArray
(
$recommendedTrackIds
,
$count
=
5
0
)
function
pickRandomTracksFromArray
(
$recommendedTrackIds
,
$count
=
0
)
{
{
$recommendedTrackIds
=
array_keys
(
$recommendedTrackIds
);
$recommendedTrackIds
=
array_keys
(
$recommendedTrackIds
);
printLog
(
'=> Got '
.
count
(
$recommendedTrackIds
)
.
' unique
recommendatation
s.'
);
printLog
(
'=> Got '
.
count
(
$recommendedTrackIds
)
.
' unique
track
s.'
);
shuffle
(
$recommendedTrackIds
);
shuffle
(
$recommendedTrackIds
);
if
(
!
$count
)
{
return
$recommendedTrackIds
;
}
$pickedTrackIds
=
array_slice
(
$recommendedTrackIds
,
0
,
$count
);
$pickedTrackIds
=
array_slice
(
$recommendedTrackIds
,
0
,
$count
);
printLog
(
'Keep '
.
count
(
$pickedTrackIds
)
.
' random tracks.'
);
printLog
(
'Keep '
.
count
(
$pickedTrackIds
)
.
' random tracks.'
);
...
@@ -77,7 +82,7 @@ function getRandomArtistsFromTopArtists($api, $countInTopArtists, $countInLessTo
...
@@ -77,7 +82,7 @@ function getRandomArtistsFromTopArtists($api, $countInTopArtists, $countInLessTo
function
createPlaylistWithRandomTracks
(
$api
,
$trackIds
,
$count
=
50
)
function
createPlaylistWithRandomTracks
(
$api
,
$trackIds
,
$count
=
50
)
{
{
$playlist
=
createEmptyPlaylist
(
$api
);
$playlist
=
createEmptyPlaylist
(
$api
,
'Fresh playlist'
);
$pickedTrackIds
=
pickRandomTracksFromArray
(
$trackIds
,
$count
);
$pickedTrackIds
=
pickRandomTracksFromArray
(
$trackIds
,
$count
);
$api
->
replacePlaylistTracks
(
$playlist
->
id
,
$pickedTrackIds
);
$api
->
replacePlaylistTracks
(
$playlist
->
id
,
$pickedTrackIds
);
...
...
This diff is collapsed.
Click to expand it.