Skip to content

Commit 3b334ae

Browse files
committed
feat: Optimize artist activity sorting using heapq
1 parent 8c16135 commit 3b334ae

File tree

1 file changed

+2
-4
lines changed

1 file changed

+2
-4
lines changed

listenbrainz/webserver/views/stats_api.py

+2-4
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import listenbrainz.db.user as db_user
1010
import pycountry
1111
import requests
12+
import heapq
1213

1314
from data.model.common_stat import StatApi, StatisticsRange, StatRecordList
1415
from data.model.user_artist_map import UserArtistMapRecord, UserArtistMapArtist
@@ -434,10 +435,7 @@ def _get_artist_activity(release_groups_list):
434435
artist_data["name"] = artist_name
435436
artist_data["albums"] = list(artist_data["albums"].values())
436437

437-
sorted_data = sorted(result.values(), key=lambda x: x["listen_count"], reverse=True)
438-
count = 15
439-
N = min(count, len(sorted_data))
440-
return sorted_data[:N]
438+
return heapq.nlargest(15, result.values(), key=lambda x: x["listen_count"])
441439

442440
@stats_api_bp.get("/user/<user_name>/artist-activity")
443441
@crossdomain

0 commit comments

Comments
 (0)