def list_studios(): studio_serializer = JSONSerializer(Studio) query = Studio.query.limit(request.args.get('limit')).order_by(Studio.slug) squack() return jsonify(sanitize(studio_serializer.serialize(query)))
def list_medias(): media_serializer = JSONSerializer(Media) query = Media.query if request.args.get('fulltext'): fulltext = request.args.get('fulltext') wrapped_fulltext = u'%{}%'.format(fulltext) query = query.filter(or_(Media.title.ilike(wrapped_fulltext), Media.artist.ilike(wrapped_fulltext), Media.album.ilike(wrapped_fulltext), Media.filename.ilike(wrapped_fulltext))) sort = request.args.get('sort', 'title') desc = sort[0] == "-" sort = sort.lstrip('-') column = getattr(Media, sort, None) if column: if desc: query = query.order_by(column.desc().nullslast()) else: query = query.order_by(column.asc().nullslast()) else: return jsonify({"error": "bad_argument"}), 400 if request.args.get('limit'): query = query.limit(int(request.args.get('limit'))) else: query = query.limit(10) if request.args.get('offset'): query = query.offset(int(request.args.get('offset'))) return jsonify(sanitize(media_serializer.serialize(query)))
def show_medias(media_id): media_serializer = JSONSerializer(Media) media = Media.query.get(media_id) if media: return jsonify(sanitize(media_serializer.serialize(media))) else: return jsonify({"error": "not_found"}), 404
def show_studio(studio_id): studio_serializer = JSONSerializer(Studio) studio = Studio.query.get(studio_id) if studio: return jsonify(sanitize(studio_serializer.serialize(studio))) else: return jsonify({"error": "not_found"}), 404
def show_actions(action_id): action_serializer = JSONSerializer(Action) action = Action.query.get(action_id) if action: return jsonify(sanitize(action_serializer.serialize(action))) else: return jsonify({"error": "not_found"}), 404
def show_playlist(playlist_id): playlist_serializer = JSONSerializer(Playlist) playlist = Playlist.query.get(playlist_id) if playlist is not None: sideloaded = ["elements", "elements.media", "elements.action"] return jsonify(sanitize(playlist_serializer.serialize(playlist, include=sideloaded))) else: return jsonify({"error": "not_found"}), 404
def show_playlist(playlist_id): playlist_serializer = JSONSerializer(Playlist) playlist = Playlist.query.get(playlist_id) if playlist is not None: sideloaded = ["elements", "elements.media", "elements.action"] return jsonify( sanitize( playlist_serializer.serialize(playlist, include=sideloaded))) else: return jsonify({"error": "not_found"}), 404
def list_medias(): media_serializer = JSONSerializer(Media) query = Media.query if request.args.get('fulltext'): fulltext = request.args.get('fulltext') wrapped_fulltext = u'%{}%'.format(fulltext) query = query.filter( or_(Media.title.ilike(wrapped_fulltext), Media.artist.ilike(wrapped_fulltext), Media.album.ilike(wrapped_fulltext), Media.filename.ilike(wrapped_fulltext))) sort = request.args.get('sort', 'title') desc = sort[0] == "-" sort = sort.lstrip('-') column = getattr(Media, sort, None) if column: if desc: query = query.order_by(column.desc().nullslast()) else: query = query.order_by(column.asc().nullslast()) else: return jsonify({"error": "bad_argument"}), 400 if request.args.get('limit'): query = query.limit(int(request.args.get('limit'))) else: query = query.limit(10) if request.args.get('offset'): query = query.offset(int(request.args.get('offset'))) return jsonify(sanitize(media_serializer.serialize(query)))
def list_playlists(): playlist_serializer = JSONSerializer(Playlist) query = Playlist.query.limit(request.args.get('limit')) return jsonify(sanitize(playlist_serializer.serialize(query, include=[])))
def list_actions(): action_serializer = JSONSerializer(Action) query = Action.query.limit(request.args.get('limit')) return jsonify(sanitize(action_serializer.serialize(query)))
def list_playlist_element(): playlist_element_serializer = JSONSerializer(PlaylistElement) query = PlaylistElement.query.limit(request.args.get('limit')) return jsonify(sanitize(playlist_element_serializer.serialize(query)))