Changing sort order of a playlist depending on the day of the week. #172
Answered
by
Chimildic
ladywhiskers
asked this question in
Помощь с ошибкой
-
|
I have a playlist that I want to refresh tracks every Monday (which is working), and then sort differently each day of the week (which doesn't seem to be working). Can someone see where I am going wrong? /**
* Collect favorite tracks that have not been listened to for a long time and added more than a month ago.
* Updates daily
*/
function updateHeardLikedandForgotten(){
let recentTracks = RecentTracks.get(10000);
let savedTracks = Source.getSavedTracks();
let bannedTracks = Source.getPlaylistTracks ('banned', '4Ep4JuDSqaIvd2OzraWRSt', '');
let playlistTracks = Source.getTracks([
{ name: 'heard,liked, then forgotten', id: '7BpAuAyoNGmEu3OLC65aCN'}
]);
if (Selector.isDayOfWeek('monday')) {
Filter.removeTracks(savedTracks, recentTracks);
let startDate = new Date('2006-01-01');
let endDate = Filter.getDateRel(30, 'endDay');
Filter.rangeDateAbs(savedTracks, startDate, endDate);
Selector.keepRandom(savedTracks, 200);
Order.sort(savedTracks, 'features.acousticness','desc');
Filter.removeTracks (savedTracks,bannedTracks)
Playlist.saveWithReplace({
id: '7BpAuAyoNGmEu3OLC65aCN',
name: 'heard, liked, then forgotten',
tracks: savedTracks,
})
} else {
if (Selector.isDayOfWeek('tuesday')) {
Order.sort(playlistTracks, 'features.danceability','asc');
} else if (Selector.isDayOfWeek('wednesday')) {
Order.sort(playlistTracks, 'features.valence', 'desc');
} else if (Selector.isDayOfWeek('thursday')) {
Order.sort(playlistTracks, 'features.tempo','asc');
} else if (Selector.isDayOfWeek('friday')) {
Order.sort(playlistTracks, 'features.key', 'desc');
} else if (Selector.isDayOfWeek('saturday')) {
Order.sort(playlistTracks, 'artist.populatrity','desc');
} else {
Order.sort(playlistTracks, 'features.danceability','asc');
}
Filter.removeTracks(playlistTracks,bannedTracks)
Playlist.saveWithReplace({
id: '7BpAuAyoNGmEu3OLC65aCN',
name: 'heard, liked, them forgotten',
tracks: playlistTracks,});
}}; |
Beta Was this translation helpful? Give feedback.
Answered by
Chimildic
Feb 17, 2022
Replies: 1 comment 3 replies
-
|
It was bug. Update your library code. And more readable example function updateHeardLikedandForgotten() {
const PLAYLIST_ID = '7BpAuAyoNGmEu3OLC65aCN';
let recentTracks = RecentTracks.get(10000);
let bannedTracks = Source.getPlaylistTracks('', '4Ep4JuDSqaIvd2OzraWRSt');
let tracks = Selector.isDayOfWeek('monday') ? findTracks() : reorderTracks();
Playlist.saveWithReplace({
id: PLAYLIST_ID,
name: 'heard, liked, them forgotten',
tracks: tracks,
});
function findTracks() {
let savedTracks = Cache.read('SavedTracks');
Filter.removeTracks(savedTracks, Combiner.push(recentTracks, bannedTracks));
let startDate = new Date('2006-01-01');
let endDate = Filter.getDateRel(30, 'endDay');
Filter.rangeDateAbs(savedTracks, startDate, endDate);
Selector.keepRandom(savedTracks, 200);
Order.sort(savedTracks, 'features.acousticness', 'desc');
return savedTracks;
}
function reorderTracks() {
let playlistTracks = Source.getPlaylistTracks('', PLAYLIST_ID);
Filter.removeTracks(playlistTracks, bannedTracks)
if (Selector.isDayOfWeek('tuesday')) {
Order.sort(playlistTracks, 'features.danceability', 'asc');
} else if (Selector.isDayOfWeek('wednesday')) {
Order.sort(playlistTracks, 'features.valence', 'desc');
} else if (Selector.isDayOfWeek('thursday')) {
Order.sort(playlistTracks, 'features.tempo', 'asc');
} else if (Selector.isDayOfWeek('friday')) {
Order.sort(playlistTracks, 'features.key', 'desc');
} else if (Selector.isDayOfWeek('saturday')) {
Order.sort(playlistTracks, 'artist.populatrity', 'desc');
} else {
Order.sort(playlistTracks, 'features.danceability', 'asc');
}
return playlistTracks;
}
} |
Beta Was this translation helpful? Give feedback.
3 replies
Answer selected by
ladywhiskers
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment

It was bug. Update your library code.
And more readable example