def get_album( self, album_property: Optional[list] = None, music_property: Optional[list] = None, smw_id: Optional[int] = None, album_name: Optional[str] = None ) -> Optional[Tuple[Album, List[Song]]]: params = {} params["m"] = "ga" params["d"] = "kv" params["f"] = " ".join(allowed_album_property) params["p"] = " ".join(allowed_music_property) if smw_id: params["a"] = str(smw_id) if album_name: params["t"] = album_name r = requests.get(self.base_url, params=params) try: return_json = r.json() except: return None, None if len(return_json) == 2: album = Album.from_params(return_json[0]) songs = [] for string_smw_id, song_params in return_json[1].items(): songs.append(Song.from_params(string_smw_id, song_params)) return album, songs
def get_track(self, music_property: Optional[list] = None, smw_id: Optional[int] = None) -> Optional[Song]: params = {} params["m"] = "gt" params["d"] = "kv" params["p"] = " ".join(allowed_music_property) if smw_id: params["i"] = str(smw_id) r = requests.get(self.base_url, params=params) try: return_json = r.json() except: return None if len(return_json) == 1: string_smw_id = list(return_json.keys())[0] song = Song.from_params(string_smw_id, return_json[string_smw_id]) return song