Skip to content

Commit d1cede8

Browse files
committed
fix: add all album columns to start page
1 parent bec8b54 commit d1cede8

1 file changed

Lines changed: 37 additions & 21 deletions

File tree

beetsstatistics.py

Lines changed: 37 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,22 @@ def close(self):
6363
if self.connection:
6464
self.connection.close()
6565

66+
def convert_row_to_album(self, album):
67+
return_album = Album()
68+
return_album.id = album["album_id"]
69+
return_album.mb_albumid = album["mb_albumid"]
70+
return_album.title = album["album"]
71+
return_album.tracks = album["tracks"]
72+
return_album.track_total = album["tracktotal"]
73+
return_album.complete_percentage = album["complete"]
74+
return_album.album_artist = album["albumartist"]
75+
return_album.genre = album["genre"]
76+
return_album.year = album["year"]
77+
return_album.original_year = album["original_year"]
78+
return_album.barcode = album["barcode"]
79+
# id |artpath|added |albumartist |albumartist_sort|albumartist_credit|albumartists|albumartists_sort |albumartists_credit|album |genre |style|discogs_albumid|discogs_artistid|discogs_labelid|year|month|day|disctotal|comp|mb_albumid|mb_albumartistid|albumtype|albumtypes|label |barcode |mb_releasegroupid |release_group_title |asin|catalognum|script|language|country|albumstatus|albumdisambig|releasegroupdisambig|rg_album_gain|rg_album_peak|r128_album_gain|original_year|original_month|original_day|
80+
return return_album
81+
6682
def get_albums_from_db(self, sort_by: AlbumSort = AlbumSort.ARTIST):
6783
connection = self.get_db_connection()
6884
cursor = connection.cursor()
@@ -92,19 +108,7 @@ def get_albums_from_db(self, sort_by: AlbumSort = AlbumSort.ARTIST):
92108

93109
result = []
94110
for album in albums:
95-
return_album = Album()
96-
return_album.id = album["album_id"]
97-
return_album.mb_albumid = album["mb_albumid"]
98-
return_album.title = album["album"]
99-
return_album.tracks = album["tracks"]
100-
return_album.track_total = album["tracktotal"]
101-
return_album.complete_percentage = album["complete"]
102-
return_album.album_artist = album["albumartist"]
103-
return_album.genre = album["genre"]
104-
return_album.year = album["year"]
105-
return_album.original_year = album["original_year"]
106-
return_album.barcode = album["barcode"]
107-
# id |artpath|added |albumartist |albumartist_sort|albumartist_credit|albumartists|albumartists_sort |albumartists_credit|album |genre |style|discogs_albumid|discogs_artistid|discogs_labelid|year|month|day|disctotal|comp|mb_albumid|mb_albumartistid|albumtype|albumtypes|label |barcode |mb_releasegroupid |release_group_title |asin|catalognum|script|language|country|albumstatus|albumdisambig|releasegroupdisambig|rg_album_gain|rg_album_peak|r128_album_gain|original_year|original_month|original_day|
111+
return_album = self.convert_row_to_album(album)
108112

109113
result.append(return_album)
110114
return result
@@ -406,19 +410,31 @@ def get_recently_added_albums(self):
406410
try:
407411
cursor = self.get_db_connection().cursor()
408412
query = """select
409-
a.id,
410-
a.album,
411-
a.albumartist,
412-
a.mb_albumid,
413-
a.year,
414-
a.genre
415-
from albums a order by a.added desc
413+
i.album_id,
414+
i.album,
415+
count(i.track) as tracks,
416+
max(i.tracktotal) as tracktotal,
417+
ifnull(round(count(i.track)/ cast(max(i.tracktotal) as float), 2) * 100, 0) as complete,
418+
a.*
419+
from
420+
albums a
421+
left join
422+
items i on
423+
i.album_id = a.id
424+
where
425+
album_id is not null
426+
group by
427+
i.album_id
428+
order by a.added desc
416429
limit 10;"""
417430
cursor.execute(query)
418431
results = cursor.fetchall()
419432

420433
cursor.close()
421-
return results
434+
435+
result_albums = [ self.convert_row_to_album(album) for album in results ]
436+
437+
return result_albums
422438
except sqlite3.Error as e:
423439
raise DBQueryError from e
424440

0 commit comments

Comments
 (0)