diff --git a/api/albums_songs.py b/api/albums_songs.py index 99ef850..0e7c565 100755 --- a/api/albums_songs.py +++ b/api/albums_songs.py @@ -1,7 +1,7 @@ # coding: utf-8 from flask import request -from sqlalchemy import desc, func, cast, Float +from sqlalchemy import desc, func from sqlalchemy.orm import aliased import random import uuid @@ -62,9 +62,9 @@ def album_list(): elif ltype == 'newest': query = query.order_by(desc(Folder.created)) elif ltype == 'highest': - return request.error_formatter(0, 'Not implemented') + query = query.join(RatingFolder).group_by(Folder.id).order_by(desc(func.avg(RatingFolder.rating))) elif ltype == 'frequent': - query = query.join(Track, Folder.tracks).group_by(Folder.id).order_by(desc(cast(func.sum(Track.play_count), Float) / func.count())) + query = query.join(Track, Folder.tracks).group_by(Folder.id).order_by(desc(func.avg(Track.play_count))) elif ltype == 'recent': query = query.join(Track, Folder.tracks).group_by(Folder.id).order_by(desc(func.max(Track.last_play))) elif ltype == 'starred': @@ -103,7 +103,7 @@ def album_list_id3(): elif ltype == 'newest': query = query.join(Track, Album.tracks).group_by(Album.id).order_by(desc(func.min(Track.created))) elif ltype == 'frequent': - query = query.join(Track, Album.tracks).group_by(Album.id).order_by(desc(cast(func.sum(Track.play_count), Float) / func.count())) + query = query.join(Track, Album.tracks).group_by(Album.id).order_by(desc(func.avg(Track.play_count))) elif ltype == 'recent': query = query.join(Track, Album.tracks).group_by(Album.id).order_by(desc(func.max(Track.last_play))) elif ltype == 'starred':