From 95f8d5741ac79558686bd5f2002b1c8d7bba5e8a Mon Sep 17 00:00:00 2001 From: "Edgar P. Burkhart" Date: Wed, 10 Apr 2024 15:19:34 +0200 Subject: [PATCH] Add option to prevent saving youtube credentials --- README.md | 4 +++- musik/__main__.py | 8 +++++++- musik/youtube.py | 9 +++++---- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index b89bed2..bd41b1e 100644 --- a/README.md +++ b/README.md @@ -21,13 +21,15 @@ des joueurs. Lancer le script à l'aide de la commande `python -m musik`. ``` -usage: python -m musik [-h] [-a] [-b] [-n NUMBER] [--lists LISTS] [--blacklists BLACKLISTS] [--results RESULTS] [-v] +usage: python -m musik [-h] [-a] [-c] [-b] [-n NUMBER] [--lists LISTS] [--blacklists BLACKLISTS] [--results RESULTS] + [-v] Lancer une partie de Musik options: -h, --help show this help message and exit -a, --no-api Désactiver l'API Youtube ; affiche la liste des liens (default: False) + -c, --no-save-creds Désactiver l'enregistrement de la connexion Youtube (default: False) -b, --no-blacklist Désactiver le méchanisme de blacklist en lecture et écriture (default: False) -n NUMBER, --number NUMBER Modifier le nombre de musiques par joueur (default: 2) diff --git a/musik/__main__.py b/musik/__main__.py index 7060489..8547fdd 100644 --- a/musik/__main__.py +++ b/musik/__main__.py @@ -23,6 +23,12 @@ def main(): action="store_true", help="Désactiver l'API Youtube ; affiche la liste des liens", ) + parser.add_argument( + "-c", + "--no-save-creds", + action="store_true", + help="Désactiver l'enregistrement de la connexion Youtube", + ) parser.add_argument( "-b", "--no-blacklist", @@ -92,7 +98,7 @@ def main(): musik_list = generate_list(args) if not args.no_api: - create_playlist(musik_list) + create_playlist(musik_list, args) else: logger.info("Liste des musiques :") for _, musik in musik_list: diff --git a/musik/youtube.py b/musik/youtube.py index 00efe91..4c690e3 100644 --- a/musik/youtube.py +++ b/musik/youtube.py @@ -10,7 +10,7 @@ import googleapiclient.errors logger = logging.getLogger("musik.youtube") -def create_playlist(musik_list): +def create_playlist(musik_list, args): pickle_path = Path("./youtube.pickle") # Connexion à l'API youtube, obtention d'un jeton OAuth @@ -18,13 +18,14 @@ def create_playlist(musik_list): flow = google_auth_oauthlib.flow.InstalledAppFlow.from_client_secrets_file( "./secret.json", ["https://www.googleapis.com/auth/youtube.force-ssl"] ) - if pickle_path.is_file(): + if (not args.no_save_creds) and pickle_path.is_file(): with pickle_path.open("rb") as f: credentials = pickle.load(f) else: credentials = flow.run_local_server(port=0) - with pickle_path.open("wb") as f: - pickle.dump(credentials, f) + if not args.no_save_creds: + with pickle_path.open("wb") as f: + pickle.dump(credentials, f) youtube = googleapiclient.discovery.build("youtube", "v3", credentials=credentials)