5 Commits

Author SHA1 Message Date
9bb8e8d3d7 Merge pull request 'Python 3.11 - Alpine + loop improvement' (#11) from wip into main
Reviewed-on: #11
2025-07-09 18:14:14 +02:00
66c4146223 Python 3.11 - Alpine + loop improvement 2025-07-09 16:13:12 +00:00
92edccd8d8 Merge pull request 'Multi GPU merge' (#10) from wip into main
Reviewed-on: #10
2025-07-08 19:15:29 +02:00
a2561a79b8 Fixed README 2025-07-08 16:58:26 +00:00
d4735e32b3 Fixed README 2025-07-08 16:57:49 +00:00
3 changed files with 10 additions and 15 deletions

View File

@ -1,22 +1,16 @@
# Utiliser une image de base légère de Python (ici Python 3.9)
FROM python:3.9-slim
FROM python:3.11-alpine
RUN apk add --no-cache ca-certificates
# Définir le répertoire de travail à l'intérieur du conteneur
WORKDIR /app
# Copier le script Python dans le répertoire de travail
COPY nvidia-stock-bot.py /app/
# Copier un éventuel fichier requirements.txt pour installer des dépendances
# Si des dépendances supplémentaires sont nécessaires, ajoutez-les dans requirements.txt
COPY requirements.txt /app/
# Installer les dépendances Python à partir de requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
# Définir les variables d'environnement par défaut (modifiable lors du lancement du conteneur)
ENV DISCORD_WEBHOOK_URL="https://example.com/webhook" \
REFRESH_TIME="30"
# Exposer un point de commande pour exécuter le script
CMD ["python", "nvidia-stock-bot.py"]

View File

@ -58,7 +58,6 @@ services:
- API_URL_SKU= # API listing the product
- API_URL_STOCK= # API providing stock data
- PRODUCT_URL= # GPU purchase URL
- PYTHONUNBUFFERED=1 # Enables real-time log output
command: python nvidia-stock-bot.py
```
@ -69,11 +68,11 @@ services:
|---------------------|-------------------------------------------------|------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------|
| `DISCORD_WEBHOOK_URL` | Your Discord webhook URL | A valid URL | |
| `PRODUCT_NAMES` | The exact GPU names you're searching for | `RTX 5080, RTX 5090` | |
| `DISCORD_ROLE>` | List of Discord roles ID in the same order than `PRODUCT_NAMES` values, found in your discord server settings (with user profile developer mode enabled) | `<@&12345><@&6789>` | @everyone |
| `DISCORD_ROLES` | List of Discord roles ID in the same order than `PRODUCT_NAMES` values, found in your discord server settings (with user profile developer mode enabled) | `<@&12345><@&6789>` | @everyone |
| `REFRESH_TIME` | Script refresh interval in seconds | `60`, `30`, etc. | `30` |
| `API_URL_SKU` | API listing the product | A URL. API url can change over time. For now, you can use the default one and change the `locale` parameter to yours (for exemple : `locale=en-gb`) | `https://api.nvidia.partners/edge/product/search?page=1&limit=100&locale=fr-fr&Manufacturer=Nvidia` |
| `API_URL_STOCK` | API providing stock data | A URL. API url can change over time. For now, you can use the default one and change the `locale` parameter to yours (for exemple : `locale=en-gb`) | `https://api.store.nvidia.com/partner/v1/feinventory?locale=fr-fr&skus=` |
| `PRODUCT_URL` | GPU purchase URL | A URL. API url can change over time. For now, you can use the default one and change the `locale` parameter to yours (for exemple : `/en-gb/`) | `https://marketplace.nvidia.com/fr-fr/consumer/graphics-cards/?locale=fr-fr&page=1&limit=12&manufacturer=NVIDIA` |
| `API_URL_SKU` | API listing the product | A URL. API url can change over time. For now, you can use the default one and change the `locale` parameter to yours (e.g. `locale=en-gb`) | `https://api.nvidia.partners/edge/product/search?page=1&limit=100&locale=fr-fr&Manufacturer=Nvidia` |
| `API_URL_STOCK` | API providing stock data | A URL. API url can change over time. For now, you can use the default one and change the `locale` parameter to yours (e.g. `locale=en-gb`) | `https://api.store.nvidia.com/partner/v1/feinventory?locale=fr-fr&skus=` |
| `PRODUCT_URL` | GPU purchase URL. There isn't any direct link workinf right now, so put the generic marketplace url listing all FE products | A URL. API url can change over time. For now, you can use the default one and change the locale parameter to yours (e.g. `/en-gb/`) | `https://marketplace.nvidia.com/fr-fr/consumer/graphics-cards/?locale=fr-fr&page=1&limit=12&manufacturer=NVIDIA` |
| `TEST_MODE` | For testing without sending notifications | `True`, `False` | `False` |
| `PYTHONUNBUFFERED` | Enables real-time log output | `1`, `0` | `1` |

View File

@ -350,8 +350,10 @@ def check_rtx_50_founders():
if __name__ == "__main__":
try:
while True:
start = time.time()
check_rtx_50_founders()
time.sleep(REFRESH_TIME)
elapsed = time.time() - start
time.sleep(max(0, REFRESH_TIME - elapsed))
# Gracefully shut down
except KeyboardInterrupt: