diff --git a/pkgs/spotify-shortcuts/spotify_shortcuts/spotify_pl_add.py b/pkgs/spotify-shortcuts/spotify_shortcuts/spotify_pl_add.py new file mode 100644 index 0000000..8e32844 --- /dev/null +++ b/pkgs/spotify-shortcuts/spotify_shortcuts/spotify_pl_add.py @@ -0,0 +1,40 @@ +from spotify_shortcuts.spotify_auth import authenticated_session +from spotify_shortcuts.config import load_config +from desktop_notifier import DesktopNotifierSync + + +def main(): + cfg = load_config() + sp = authenticated_session(cfg) + + if (playback := sp.current_playback()) is None: + print("No current playback found.") + return + + if (track_uri := playback.get("item", {}).get("uri", None)) is None: + print("No track URI found in current playback.") + return + + if (context_uri := playback.get("context", {}).get("uri", None)) is None: + print("No context URI found in current playback.") + return + + sp.playlist_add_items(context_uri, items=[track_uri]) + + if cfg.notifications: + track_name = playback.get("item", {}).get("name", "") + artists = ", ".join( + a.get("name", "") + for a in playback.get("item", {}).get("artists", []) + ) + playlist_name = (sp.playlist(context_uri) or {}).get("name", "") + + dn = DesktopNotifierSync() + dn.send( + title="Track Added to Playlist", + message=f'Track "{track_name}" by "{artists}" has been added to {playlist_name}.', + ) + + +if __name__ == "__main__": + main()