Initial commit
This commit is contained in:
29
last_fm.py
Normal file
29
last_fm.py
Normal file
@ -0,0 +1,29 @@
|
||||
import json
|
||||
from typing import List
|
||||
|
||||
class LastFm:
|
||||
def __init__(self, credentials_file):
|
||||
with open(credentials_file, 'r') as f:
|
||||
credentials = json.loads(f.read())
|
||||
|
||||
self.lastfm = pylast.LastFMNetwork(
|
||||
api_key=credentials['api_kay'],
|
||||
api_secret=credentials['api_secret']
|
||||
)
|
||||
|
||||
def get_recent_plays(self, username):
|
||||
self.lastfm.get_user(username).get_recent_tracks(limit=200)
|
||||
|
||||
def get_top_artists(self, username: str, min_scrobbles: int) -> List[pylast.TopItem]:
|
||||
artists = []
|
||||
page = 0
|
||||
|
||||
while True:
|
||||
artists_page = self.lastfm.get_user(username).get_top_artists()
|
||||
|
||||
for artist in artists_page:
|
||||
if (artist.weight > min_scrobbles):
|
||||
artists.append(artist)
|
||||
else:
|
||||
break
|
||||
|
||||
Reference in New Issue
Block a user