1
0
mirror of https://github.com/spl0k/supysonic.git synced 2024-12-22 08:56:17 +00:00

Implemented the last missing search type og getAlbumList

(and why the fuck did I use 'sum / count' rather than 'avg'?)
This commit is contained in:
spl0k 2013-06-14 13:02:43 +02:00
parent 32c9fb13a9
commit 5e466cbe98

View File

@ -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':