Compare commits

..

2 Commits
tmp ... master

Author SHA1 Message Date
876ccaf8d2 Pin pyyaml for #724 2023-08-01 21:24:14 -04:00
f287780bcd Fix track lookup 2022-06-12 12:36:27 -04:00
4 changed files with 5 additions and 13 deletions

View File

@ -13,7 +13,7 @@ license = "MIT"
python = "^3.7" python = "^3.7"
spotipy = "^2.18.0" spotipy = "^2.18.0"
spotify-model = {path = "../spotify_model", develop = true} spotify-model = {path = "../spotify_model", develop = true}
PyYAML = "^5.4.1" PyYAML = "=5.3.1"
[tool.poetry.dev-dependencies] [tool.poetry.dev-dependencies]
pre-commit = "^2.13.0" pre-commit = "^2.13.0"

View File

@ -13,24 +13,16 @@ from .util import exhaust
class Query: class Query:
"Query builder for Spotify search API" "Query builder for Spotify search API"
def __init__( def __init__(self, query: Optional[str] = None, artist: Optional[str] = None, label: Optional[str] = None) -> None:
self,
query: Optional[str] = None,
artist: Optional[str] = None,
label: Optional[str] = None,
year: Optional[int] = None,
) -> None:
self.query = query self.query = query
self.artist = artist self.artist = artist
self.label = label self.label = label
self.year = year
def __str__(self) -> str: def __str__(self) -> str:
query_items = [ query_items = [
self.query, self.query,
f'artist:"{self.artist}"' if self.artist is not None else None, f'artist:"{self.artist}"' if self.artist is not None else None,
f'label:"{self.label}"' if self.label is not None else None, f'label:"{self.label}"' if self.label is not None else None,
f"year:{self.year}" if self.year is not None else None,
] ]
return " ".join([i for i in query_items if i is not None]) return " ".join([i for i in query_items if i is not None])

View File

@ -21,7 +21,7 @@ def track_from_ids(
yield track if isinstance(track, str) else track.spotify_id yield track if isinstance(track, str) else track.spotify_id
for track_id_chunk in chunk(_to_id(), chunk_size): for track_id_chunk in chunk(_to_id(), chunk_size):
track_chunk = client.tracks(track_id_chunk) track_chunk = client.tracks(track_id_chunk)["tracks"]
for track in track_chunk: for track in track_chunk:
yield Track(**track) yield Track(**track)

View File

@ -32,13 +32,13 @@ def read_credentials_server(path: Path) -> Spotify:
return Spotify(client_credentials_manager=credentials_manager) return Spotify(client_credentials_manager=credentials_manager)
def read_credentials_oauth(path: Path, redirect_uri: str, scopes: List[str]) -> Spotify: def read_credentials_oauth(path: Path, redirect_uri: str, scopes: List[str], open_browser: bool = True) -> Spotify:
"Read credentials from a YAML file and authorize a user" "Read credentials from a YAML file and authorize a user"
with open(path, "r") as credentials_file: with open(path, "r") as credentials_file:
credentials = yaml.safe_load(credentials_file) credentials = yaml.safe_load(credentials_file)
credentials_manager = SpotifyOAuth( credentials_manager = SpotifyOAuth(
credentials["client_id"], credentials["client_secret"], redirect_uri, scope=scopes credentials["client_id"], credentials["client_secret"], redirect_uri, scope=scopes, open_browser=open_browser
) )
return Spotify(client_credentials_manager=credentials_manager) return Spotify(client_credentials_manager=credentials_manager)