import pylast from libs.config import Config config = Config() api_key, api_secret, username, password = config.get_config_values() class Network: def __init__(self, network): self.network = network self.user = username @staticmethod def get_network(network_name): if network_name == "LastFM": network = pylast.LastFMNetwork( api_key=api_key, api_secret=api_secret, username=username, password_hash=pylast.md5(password) ) return network elif network_name == "LoneStar": network = pylast.LibreFMNetwork( api_key=api_key, api_secret=api_secret, username=username, password_hash=pylast.md5(password) ) return network else: raise ValueError("Unknown network name provided!") def get_tracks(self, number, first, last): tracks_list = (self.network.get_user(self.user) .get_recent_tracks(limit=number, time_from=first, time_to=last)) return tracks_list def get_track_mbid_duration(self, artist, title): net = self.get_network("LastFM") track = net.get_track(artist=artist, title=title) return track.get_mbid(), track.get_duration() def scrobble(self, artist, title, album, duration, timestamp, mbid): self.network.scrobble( artist=artist, title=title, album=album, duration=duration, timestamp=timestamp, mbid=mbid )