diff --git a/pysonic/api.py b/pysonic/api.py index 32906bd..2d56944 100644 --- a/pysonic/api.py +++ b/pysonic/api.py @@ -1,3 +1,4 @@ +import os import logging import subprocess from time import time @@ -171,7 +172,7 @@ class PysonicSubsonicApi(object): maxBitRate = int(maxBitRate) assert maxBitRate >= 32 and maxBitRate <= 320 song = self.db.get_songs(id=int(id))[0] - fpath = song["_fullpath"] + fpath = os.path.join(song["root"], song["file"]) media_bitrate = song.get("bitrate") / 1024 if song.get("bitrate") else 320 to_bitrate = min(maxBitRate, self.options.max_bitrate, diff --git a/pysonic/database.py b/pysonic/database.py index c26e396..2f40414 100644 --- a/pysonic/database.py +++ b/pysonic/database.py @@ -312,12 +312,15 @@ class PysonicDatabase(object): q = """ SELECT s.*, + lib.path as root, alb.name as albumname, alb.coverid as albumcoverid, art.name as artistname, g.name as genrename, albdir.id as albumdir FROM songs as s + INNER JOIN libraries as lib + on s.library == lib.id INNER JOIN albums as alb on s.albumid == alb.id INNER JOIN dirs as albdir