From 283f0febef371ee769fd25c24555382158c386f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20R=C3=B6ger?= Date: Sun, 27 Jul 2025 18:31:27 +0200 Subject: [PATCH] System Gen91 @ 2025-07-27-18:31:26 by jonas@monolith --- .../spotify_shortcuts/spotify_pl_add.py | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 pkgs/spotify-shortcuts/spotify_shortcuts/spotify_pl_add.py 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()