From 4d6d6a259e0cf8be4d68f303da353dbba3304a6a Mon Sep 17 00:00:00 2001 From: Djeex Date: Wed, 23 Apr 2025 12:46:14 +0000 Subject: [PATCH 1/2] =?UTF-8?q?Recherche=20du=20SKU/UPC=20avec=20le=20PROD?= =?UTF-8?q?UCT=5FNAME=20suite=20=C3=A0=20maj=20de=20l'API=20de=20nvidia=20?= =?UTF-8?q?qui=20ne=20filtre=20plus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nvidia-stock-bot.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/nvidia-stock-bot.py b/nvidia-stock-bot.py index 6ee3165..a3bfe51 100644 --- a/nvidia-stock-bot.py +++ b/nvidia-stock-bot.py @@ -237,8 +237,24 @@ def check_rtx_50_founders(): logging.error(f"Erreur API SKU : {e}") return - product_details = data['searchedProducts']['productDetails'][0] + # Recherche dynamique basée sur PRODUCT_NAME (ex: "RTX 5080") + product_details = next( + (p for p in data['searchedProducts']['productDetails'] + if PRODUCT_NAME.lower() in p.get("gpu", "").lower()), + None + ) + + if not product_details: + logging.warning(f"⚠️ Aucun produit ne correspond à '{PRODUCT_NAME}' dans les résultats de l'API SKU.") + return + product_sku = product_details['productSKU'] + product_upc = product_details.get('productUPC', "") + + # S'assurer que product_upc est une liste + if not isinstance(product_upc, list): + product_upc = [product_upc] + product_sku = product_details['productSKU'] # Vérifier si c'est la première exécution if last_sku is not None and product_sku != last_sku: From 43518d7d86d5694a855ff63dbf93f1724919be19 Mon Sep 17 00:00:00 2001 From: Djeex Date: Wed, 23 Apr 2025 13:47:24 +0000 Subject: [PATCH 2/2] Correction sur le stockage des variables --- nvidia-stock-bot.py | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/nvidia-stock-bot.py b/nvidia-stock-bot.py index a3bfe51..5d22c9d 100644 --- a/nvidia-stock-bot.py +++ b/nvidia-stock-bot.py @@ -237,24 +237,25 @@ def check_rtx_50_founders(): logging.error(f"Erreur API SKU : {e}") return - # Recherche dynamique basée sur PRODUCT_NAME (ex: "RTX 5080") - product_details = next( - (p for p in data['searchedProducts']['productDetails'] - if PRODUCT_NAME.lower() in p.get("gpu", "").lower()), - None - ) + # Recherche du produit dont le GPU correspond à PRODUCT_NAME + product_details = None + + for p in data['searchedProducts']['productDetails']: + gpu_name = p.get("gpu", "").strip() + + # Si le GPU correspond exactement à PRODUCT_NAME + if gpu_name == PRODUCT_NAME.strip(): + product_details = p + break # Sortir dès qu'on trouve le bon produit if not product_details: - logging.warning(f"⚠️ Aucun produit ne correspond à '{PRODUCT_NAME}' dans les résultats de l'API SKU.") + logging.warning(f"⚠️ Aucun produit avec le GPU '{PRODUCT_NAME}' trouvé.") return + # Récupérer le SKU pour le GPU trouvé product_sku = product_details['productSKU'] product_upc = product_details.get('productUPC', "") - # S'assurer que product_upc est une liste - if not isinstance(product_upc, list): - product_upc = [product_upc] - product_sku = product_details['productSKU'] # Vérifier si c'est la première exécution if last_sku is not None and product_sku != last_sku: @@ -267,9 +268,6 @@ def check_rtx_50_founders(): last_sku = product_sku first_run = False # Désactive la protection après la première exécution - product_details = data['searchedProducts']['productDetails'][0] - product_sku = product_details['productSKU'] - product_upc = product_details.get('productUPC', "") if not isinstance(product_upc, list): product_upc = [product_upc]