|
|
|
@ -191,7 +191,7 @@ class PysonicDatabase(object):
|
|
|
|
|
return libs |
|
|
|
|
|
|
|
|
|
@readcursor |
|
|
|
|
def get_artists(self, cursor, id=None, dirid=None, sortby=None, order=None): |
|
|
|
|
def get_artists(self, cursor, id=None, dirid=None, sortby="name", order=None): |
|
|
|
|
assert order in ["asc", "desc", None] |
|
|
|
|
artists = [] |
|
|
|
|
q = "SELECT * FROM artists" |
|
|
|
@ -213,14 +213,14 @@ class PysonicDatabase(object):
|
|
|
|
|
return artists |
|
|
|
|
|
|
|
|
|
@readcursor |
|
|
|
|
def get_albums(self, cursor, id=None, artist=None, sortby=None, order=None, limit=None): |
|
|
|
|
def get_albums(self, cursor, id=None, artist=None, sortby="name", order=None, limit=None): |
|
|
|
|
""" |
|
|
|
|
:param limit: int or tuple of int, int. translates directly to sql logic. |
|
|
|
|
""" |
|
|
|
|
if order: |
|
|
|
|
order = {"asc": "ASC", "desc": "DESC"}[order] |
|
|
|
|
|
|
|
|
|
if sortby and sortby == "random": |
|
|
|
|
if sortby == "random": |
|
|
|
|
sortby = "RANDOM()" |
|
|
|
|
|
|
|
|
|
albums = [] |
|
|
|
@ -263,13 +263,13 @@ class PysonicDatabase(object):
|
|
|
|
|
return albums |
|
|
|
|
|
|
|
|
|
@readcursor |
|
|
|
|
def get_songs(self, cursor, id=None, genre=None, sortby=None, order=None, limit=None): |
|
|
|
|
def get_songs(self, cursor, id=None, genre=None, sortby="title", order=None, limit=None): |
|
|
|
|
# TODO make this query massively uglier by joining albums and artists so that artistid etc can be a filter |
|
|
|
|
# or maybe lookup those IDs in the library layer? |
|
|
|
|
if order: |
|
|
|
|
order = {"asc": "ASC", "desc": "DESC"}[order] |
|
|
|
|
|
|
|
|
|
if sortby and sortby == "random": |
|
|
|
|
if sortby == "random": |
|
|
|
|
sortby = "RANDOM()" |
|
|
|
|
|
|
|
|
|
songs = [] |
|
|
|
@ -280,10 +280,13 @@ class PysonicDatabase(object):
|
|
|
|
|
alb.name as albumname, |
|
|
|
|
alb.coverid as albumcoverid, |
|
|
|
|
art.name as artistname, |
|
|
|
|
g.name as genrename |
|
|
|
|
g.name as genrename, |
|
|
|
|
albdir.id as albumdir |
|
|
|
|
FROM songs as s |
|
|
|
|
INNER JOIN albums as alb |
|
|
|
|
on s.albumid == alb.id |
|
|
|
|
INNER JOIN dirs as albdir |
|
|
|
|
on albdir.id = alb.dir |
|
|
|
|
INNER JOIN artists as art |
|
|
|
|
on alb.artistid = art.id |
|
|
|
|
LEFT JOIN genres as g |
|
|
|
|