spotframework/generateplaylists.py

56 lines
1.8 KiB
Python
Raw Normal View History

import spotframework.net.const as const
import spotframework.net.network as network
import spotframework.net.user as user
import spotframework.log.log as log
import spotframework.io.json as json
import os
if __name__ == '__main__':
2019-05-14 22:58:15 +01:00
try:
if os.path.exists(os.path.join(const.config_path, 'playlists.json')):
2019-05-14 22:58:15 +01:00
data = json.loadJson(os.path.join(const.config_path, 'playlists.json'))
2019-05-14 22:58:15 +01:00
net = network.network(user.User())
playlists = net.getUserPlaylists()
2019-05-14 22:58:15 +01:00
for tomake in data['playlists']:
2019-05-14 22:58:15 +01:00
log.log("generatePlaylist", tomake['name'])
2019-05-14 22:58:15 +01:00
tracks = []
2019-05-14 22:58:15 +01:00
for part in tomake['playlists']:
2019-05-14 22:58:15 +01:00
play = next((i for i in playlists if i.name == part), None)
2019-05-14 22:58:15 +01:00
if play is not None:
2019-05-14 22:58:15 +01:00
if len(play.tracks) == 0:
log.log("pulling tracks for {}".format(play.name))
play.tracks = net.getPlaylistTracks(play.playlistid)
2019-05-14 22:58:15 +01:00
tracks += [i for i in play.tracks if i['track']['uri'] not in [j['track']['uri'] for j in tracks]]
2019-05-14 22:58:15 +01:00
else:
log.log("requested playlist {} not found".format(part))
2019-05-15 14:31:16 +01:00
if 'shuffle' in tomake:
if tomake['shuffle'] is True:
import random
random.shuffle(tracks)
else:
tracks.sort(key=lambda x: x['track']['album']['release_date'], reverse=True)
else:
tracks.sort(key=lambda x: x['track']['album']['release_date'], reverse=True)
2019-05-14 22:58:15 +01:00
net.replacePlaylistTracks(tomake['id'], [i['track']['uri'] for i in tracks])
else:
log.log("config json not found")
log.dumpLog()
except:
log.dumpLog()