import json from flask import Flask, request, jsonify import stream_predictor app = Flask(__name__) class BadRequest(Exception): pass @app.route("/", methods=['POST']) def serve(): try: data = request.get_json(force=True) assert 'tracks' in data except Exception as e: raise BadRequest("Not valid json sent {}".format(e)) results = {} for track in data['tracks']: if not track.get('spyid') or not track.get('pop5') or not isinstance(track.get('playlists'), dict): raise BadRequest("Invalid track sent, {}".format(track)) for playlist_id, position in track['playlists'].items(): if not isinstance(playlist_id, str) or not isinstance(position, int) or position < 0: raise BadRequest("Invalid playlist object, {}, {} in {}".format(playlist_id, position, track)) results[track['spyid']] = stream_predictor.streams(track['pop5'], track['playlists']) return jsonify(results) if __name__ == '__main__': app.run(debug=False, threaded=True, host='0.0.0.0', port=5555) #http_server = WSGIServer(('0.0.0.0', 5000), application) #http_server.serve_forever()