Merge pull request 'Better default env var' (#19) from wip into main

Reviewed-on: #19
This commit is contained in:
2025-07-12 13:20:50 +02:00
3 changed files with 9 additions and 4 deletions

View File

@ -8,7 +8,4 @@ COPY /app/ /app/
RUN pip install --no-cache-dir -r requirements.txt
ENV DISCORD_WEBHOOK_URL="https://example.com/webhook" \
REFRESH_TIME="30"
CMD ["python", "main.py"]

View File

@ -17,7 +17,7 @@ try:
DISCORD_SERVER_NAME = os.environ.get('DISCORD_SERVER_NAME', 'Shared for free')
API_URL_SKU = os.environ.get('API_URL_SKU', 'https://api.nvidia.partners/edge/product/search?page=1&limit=100&locale=fr-fr&Manufacturer=Nvidia')
API_URL_STOCK = os.environ.get('API_URL_STOCK', 'https://api.store.nvidia.com/partner/v1/feinventory?locale=fr-fr&skus=')
REFRESH_TIME = int(os.environ['REFRESH_TIME'])
REFRESH_TIME = int(os.environ.get('REFRESH_TIME', 30))
TEST_MODE = os.environ.get('TEST_MODE', 'False').lower() == 'true'
PRODUCT_URL = os.environ.get('PRODUCT_URL', 'https://marketplace.nvidia.com/fr-fr/consumer/graphics-cards/?locale=fr-fr&page=1&limit=12&manufacturer=NVIDIA')
DISCORD_ROLES = os.environ.get('DISCORD_ROLES')
@ -67,6 +67,10 @@ if match:
else:
wh_masked_url = "[Invalid webhook URL]"
# Test mode
if TEST_MODE:
logging.warning("🚧 Test mode is active. No real alerts will be sent.")
# HTTP headers
HEADERS = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) "
@ -128,6 +132,7 @@ footer = loc["footer"]
sku_description = loc["sku_description"]
imminent_drop = loc["imminent_drop"]
# Logging
logging.info(f"GPU: {PRODUCT_NAMES}")
logging.info(f"Discord Webhook URL: {wh_masked_url}")
logging.info(f"Discord Role Mention: {DISCORD_ROLES}")

View File

@ -10,6 +10,7 @@ from env_config import (
AVATAR = "https://git.djeex.fr/Djeex/nvidia-stock-bot/raw/branch/main/assets/img/ds_wh_pp.jpg"
THUMBNAIL = "https://git.djeex.fr/Djeex/nvidia-stock-bot/raw/branch/main/assets/img/RTX5000.jpg"
# In stock
def send_discord_notification(gpu_name, product_link, products_price):
timestamp = int(time.time())
if TEST_MODE:
@ -45,6 +46,7 @@ def send_discord_notification(gpu_name, product_link, products_price):
except Exception as e:
logging.error(f"🚨 Error sending webhook: {e}")
# Out of stock
def send_out_of_stock_notification(gpu_name, product_link, products_price):
timestamp = int(time.time())
if TEST_MODE:
@ -76,6 +78,7 @@ def send_out_of_stock_notification(gpu_name, product_link, products_price):
except Exception as e:
logging.error(f"🚨 Error sending webhook: {e}")
# SKU change
def send_sku_change_notification(gpu_name, old_sku, new_sku, product_link):
timestamp = int(time.time())
if TEST_MODE: