Skip to content
Snippets Groups Projects
Commit 10faa169 authored by Benoît Harrault's avatar Benoît Harrault
Browse files

Merge branch '10-clean-some-code' into 'master'

Resolve "Clean some code"

Closes #10

See merge request !16
parents 88fc95c1 b19a61f9
No related branches found
No related tags found
1 merge request!16Resolve "Clean some code"
<?php
require '../spotify/spotify.php';
require '../spotify/lib.php';
if (isset($_GET['logout'])) {
$_SESSION['accessToken'] = '';
......@@ -104,22 +105,8 @@ if ($generatePlaylistFromPlaylist) {
$recommendedTrackIds = $filteredTrackIds;
}
$recommendedTrackIds = array_keys($recommendedTrackIds);
error_log('=> Got '.count($recommendedTrackIds).' unique recommendatations for this playlist.');
shuffle($recommendedTrackIds);
$pickedTrackIds = array_slice($recommendedTrackIds, 0, 50);
error_log('Keep '.count($pickedTrackIds).' tracks.');
$now = new DateTime();
$newPlaylistName = 'Fresh playlist ['.$now->format('Y-m-d H:i:s').']';
error_log('Create new playlist "'.$newPlaylistName.'".');
$newPlaylist = $api->createPlaylist([
'name' => $newPlaylistName,
]);
$api->replacePlaylistTracks($newPlaylist->id, $pickedTrackIds);
$playlistLink = '<a href="'.$newPlaylist->external_urls->spotify.'">'.$newPlaylistName.'</a>';
$templateData['infos'][] = 'Ok created new playlist with '.count($pickedTrackIds).' tracks: '.$playlistLink;
$newPlaylist = createPlaylistWithRandomTracks($api, $recommendedTrackIds);
$templateData['infos'][] = getCreatedPlaylistInformationMessage($api, $newPlaylist->id);
} elseif ($generatePlaylistFromArtists) {
$selectedArtists = $_GET['selected-artist'];
error_log('Will create new playlist with filterted recommendations from artists: '.join(', ', $selectedArtists).'".');
......@@ -151,22 +138,8 @@ if ($generatePlaylistFromPlaylist) {
}
}
$recommendedTrackIds = array_keys($recommendedTrackIds);
error_log('=> Got '.count($recommendedTrackIds).' unique recommendatations.');
shuffle($recommendedTrackIds);
$pickedTrackIds = array_slice($recommendedTrackIds, 0, 50);
error_log('Keep '.count($pickedTrackIds).' random tracks.');
$now = new DateTime();
$newPlaylistName = 'Fresh playlist ['.$now->format('Y-m-d H:i:s').']';
error_log('Create new playlist "'.$newPlaylistName.'".');
$newPlaylist = $api->createPlaylist([
'name' => $newPlaylistName,
]);
$api->replacePlaylistTracks($newPlaylist->id, $pickedTrackIds);
$playlistLink = '<a href="'.$newPlaylist->external_urls->spotify.'">'.$newPlaylistName.'</a>';
$templateData['infos'][] = 'Ok created new playlist with '.count($pickedTrackIds).' tracks: '.$playlistLink;
$newPlaylist = createPlaylistWithRandomTracks($api, $recommendedTrackIds);
$templateData['infos'][] = getCreatedPlaylistInformationMessage($api, $newPlaylist->id);
} else {
$templateData['topArtists'] = $api->getMyTop('artists', ['limit' => $topArtistsCount, 'time_range' => 'short_term'])->items;
$templateData['playlists'] = $api->getUserPlaylists($user->id, ['limit' => $playlistsCount])->items;
......
<?php
function generatePlaylistName() {
$now = new DateTime();
$name = 'Fresh playlist ['.$now->format('Y-m-d H:i:s').']';
return $name;
}
function createEmptyPlaylist($api) {
$name = generatePlaylistName();
error_log('Create new playlist "'.$name.'".');
$playlist = $api->createPlaylist([
'name' => $name,
]);
return $playlist;
}
function pickRandomTrackFromArray($recommendedTrackIds, $count = 50) {
$recommendedTrackIds = array_keys($recommendedTrackIds);
error_log('=> Got '.count($recommendedTrackIds).' unique recommendatations.');
shuffle($recommendedTrackIds);
$pickedTrackIds = array_slice($recommendedTrackIds, 0, 50);
error_log('Keep '.count($pickedTrackIds).' random tracks.');
return $pickedTrackIds;
}
function createPlaylistWithRandomTracks($api, $trackIds, $count = 50) {
$playlist = createEmptyPlaylist($api);
$pickedTrackIds = pickRandomTrackFromArray($trackIds);
$api->replacePlaylistTracks($playlist->id, $pickedTrackIds);
return $playlist;
}
function getCreatedPlaylistInformationMessage($api, $playlistId) {
$playlist = $api->getPlaylist($playlistId);
$link = '<a href="'.$playlist->external_urls->spotify.'">'.$playlist->name.'</a>';
$message = 'Ok created new playlist with '.count($playlist->tracks->items).' tracks: '.$link;
return $message;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment