return flask.redirect('/') @app.route('/play', methods=['POST']) def play_artist(): artist_id = flask.request.args['artist_id'] track = LIBRARY.data[artist_id]['tracks'][0] os.system('open "%s"' % track['path']) return flask.redirect('/') def validate_artist(artist): if artist not in GRAPH.get_artist_names(): raise ValidationError return artist def _is_valid_edge(artist_1, artist_2): return (validate_artist(artist_1) and validate_artist(artist_2) and artist_1 != artist_2) if __name__ == '__main__': LIBRARY = MusicLibrary.load() print("Loaded library of %d artists" % len(LIBRARY.data)) GRAPH = MusicGraph.load() print("Loaded graph with %d nodes and %d edges" % (GRAPH.number_of_nodes(), GRAPH.number_of_edges())) app.run(debug=True)
#!/usr/bin/env python from music_graph.apis.echonest import SimilarArtists from music_graph.library import MusicLibrary from music_graph.utils import progress lib = MusicLibrary.load() similar_artists = SimilarArtists() for mbid in progress(lib.data, total=len(lib.data)): similar_artists.add(mbid) similar_artists.save() similar_artists.fetch_mbids() similar_artists.save()