nvidia-stock-bot/README.md
2025-03-14 10:55:41 +00:00

4.7 KiB

Nvidia Stock Bot - WIP

Par KevOut & Djeex

Ce robot :

  • Appelle l'API de Nvidia listant le produit (par défaut toutes les 60s)
  • Récupère le SKU du produit concerné
  • Appelle le stock lié à ce SKU
  • Si du stock est trouvé, envoie une notification discord via le webhook paramétré
  • Si le produit était déjà en stock, il n'envoie plus de notification
  • Si le produit était en stock mais ne l'est plus, envoie une notification discord signifiant la fin du stock
  • Si le SKU change, une notification est envoyée alertant de l'éventuelle imminence du drop

Trois modes d'installation :

Installation avec le dépot

Vous trouverez-ci dessous les instructions pour installer le dépot, compiler l'image docker, et lancer le conteneur. Avec cette solution, votre bot tournera tout seul tant que le conteneur est actif.

Pré-requis

  • Git
  • Docker

Cloner et paramétrer

Clonez le repo :

git clone https://git.djeex.fr/Djeex/nvidia-stock-bot.git

Rendez vous dans le dossier nvidia-stock-bot et compilez l'image docker :

docker build -t nvidia-stock-bot .

Rendez-vous dans le dossier nvidia-stock-bot/docker et éditez le fichier .env avec :

  • l'url de votre webhook discord
  • la fréquence de consultation des stock (par défaut 60s, attention à ne pas trop descendre sous peine de blocage de votre adresse IP par nVidia)

Lancer l'image

Rendez-vous dans le dossier nvidia-stock-bot/docker et lancez le conteneur :

docker compose up -d

Voir les logs pour vérifier le bon fonctionnement

docker logs -f nvidia-stock-bot

Installation sans le dépot avec docker compose

Vous trouverez-ci dessous les instructions pour configurer le conteneur avec notre image pré-compilée. Avec cette solution, votre bot tournera tout seul tant que le conteneur est actif.

Pré-requis

  • Docker

Configuration

version: "3.8"
services:
  nvidia-stock-bot:
    image: git.djeex.fr/djeex/nvidia-stock-bot:wip
    container_name: nvidia-stock-bot
    restart: always # Le conteneur redémarrera automatiquement en cas d'échec
    environment:
      - DISCORD_WEBHOOK_URL= # URL de votre webhook Discord
      - REFRESH_TIME= # Durée de rafraichissement du script en secondes
      - API_URL_SKU= # API listant le produit par exemple https://api.nvidia.partners/edge/product/search?page=1&limit=100&locale=fr-fr&Manufacturer=Nvidia&gpu=RTX%205090
      - API_URL_STOCK= # API appelant le stock sans préciser la valeur du sku, par exemple https://api.store.nvidia.com/partner/v1/feinventory?locale=fr-fr&skus=
      - PRODUCT_URL= # URL d'achat du GPU
      - PRODUCT_NAME= #Le nom du GPU qui s'affiche dans les notifications
      - TEST_MODE=  #true pour tester les notifications discord. false par défaut.
      - PYTHONUNBUFFERED=1 # Permet d'afficher les logs en temps réel
    command: python nvidia-stock-bot.py # Lance le script Python au démarrage du conteneur

Installation avec Python

Vous trouverez ci-dessous comment exécuter directement le script Python. Avec cette solution, le bot s'arretera si vous fermez votre terminal.

Pré-requis

  • Python 3.11 ou plus
  • requests : pip install requests

Configuration

  • Créez un environnement virtuel (exemple : python3 -m venv nom_de_l_environnement )

  • Créez un dossier et aller dedans

  • Téléchargez le script python :

    curl -o nvidia-stock-bot.py -# https://git.djeex.fr/Djeex/nvidia-stock-bot/raw/branch/main/nvidia-stock-bot.py
    
  • Exportez les variables d'environnement avec votre webhook discord et le temps de rafraichissement en secondes, par exemple :

    export DISCORD_WEBHOOK_URL="https://votre_url_discord"
    export REFRESH_TIME="60"
    export API_URL_SKU="https://api.nvidia.partners/edge/product/search?page=1&limit=100&locale=fr-fr&Manufacturer=Nvidia&gpu=RTX%205090"
    export API_URL_STOCK="https://api.store.nvidia.com/partner/v1/feinventory?locale=fr-fr&skus="
    export TEST_MODE=false
    
  • Lancez le script

    python nvidia-stock-bot.py