diff --git a/spotify_to_ytmusic/setup.py b/spotify_to_ytmusic/setup.py index 1426c37..b33fd87 100644 --- a/spotify_to_ytmusic/setup.py +++ b/spotify_to_ytmusic/setup.py @@ -17,8 +17,9 @@ def setup(file: Optional[Path] = None): if not DEFAULT_PATH.is_file(): shutil.copy(EXAMPLE_PATH, DEFAULT_PATH) - choice = input("Choose which API to set up\n" "(1) Spotify\n" "(2) YouTube\n" "(3) both\n") - choices = ["1", "2", "3"] + choice = input("Choose which API to set up\n(1) Spotify\n(2) YouTube (oAuth)\n(3) Youtube (Browser)\n(4) both \n") + + choices = ["1", "2", "3", "4"] if choice not in choices: sys.exit("Invalid choice") @@ -27,6 +28,8 @@ def setup(file: Optional[Path] = None): elif choice == choices[1]: setup_youtube() elif choice == choices[2]: + setup_youtube_browser() + elif choice == choices[3]: setup_spotify() setup_youtube() @@ -37,6 +40,12 @@ def setup_youtube(): settings["youtube"]["headers"] = json.dumps(credentials.as_dict()) settings.save() +def setup_youtube_browser(): + settings = Settings() + credentials = ytmusicapi.setup() + settings["youtube"]["headers"] = credentials + settings.save + def setup_spotify(): settings = Settings() diff --git a/tests/test_cli.py b/tests/test_cli.py index 78d719f..98d34ff 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -60,7 +60,7 @@ def test_setup(self): tmp_path = DEFAULT_PATH.with_suffix(".tmp") with ( mock.patch("sys.argv", ["", "setup"]), - mock.patch("builtins.input", side_effect=["3", "a", "b", "yes", ""]), + mock.patch("builtins.input", side_effect=["4", "a", "b", "yes", ""]), mock.patch( "ytmusicapi.auth.oauth.credentials.OAuthCredentials.token_from_code", return_value=json.loads(Settings()["youtube"]["headers"]),