Initial commit: homelab scripts (backup, system update, plex recap, cronmaster trim)
This commit is contained in:
Executable
+126
@@ -0,0 +1,126 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Script de test pour valider la configuration du récapitulatif Plex
|
||||
"""
|
||||
|
||||
import json
|
||||
import sys
|
||||
import os
|
||||
import requests
|
||||
|
||||
CONFIG_FILE = os.path.join(os.path.dirname(__file__), 'plex-recap-config.json')
|
||||
|
||||
def test_config():
|
||||
"""Teste la configuration"""
|
||||
print("🔍 Test de la configuration...\n")
|
||||
|
||||
# Charger la configuration
|
||||
try:
|
||||
with open(CONFIG_FILE, 'r', encoding='utf-8') as f:
|
||||
config = json.load(f)
|
||||
except FileNotFoundError:
|
||||
print(f"❌ Fichier de configuration non trouvé: {CONFIG_FILE}")
|
||||
return False
|
||||
except json.JSONDecodeError as e:
|
||||
print(f"❌ Erreur de parsing JSON: {e}")
|
||||
return False
|
||||
|
||||
print("✅ Fichier de configuration chargé\n")
|
||||
|
||||
# Test Discord webhook
|
||||
discord_config = config.get('discord', {})
|
||||
webhook_url = discord_config.get('webhook_url', '')
|
||||
if not webhook_url:
|
||||
print("⚠️ URL du webhook Discord non configurée")
|
||||
print(" Veuillez ajouter l'URL dans plex-recap-config.json\n")
|
||||
else:
|
||||
print(f"✅ Webhook Discord configuré: {webhook_url[:50]}...")
|
||||
# Test de connexion
|
||||
try:
|
||||
response = requests.get(webhook_url, timeout=5)
|
||||
print("✅ Webhook Discord accessible\n")
|
||||
except requests.exceptions.RequestException as e:
|
||||
print(f"⚠️ Impossible de tester le webhook: {e}\n")
|
||||
|
||||
# Test Jellyseerr
|
||||
jellyseerr_config = config.get('jellyseerr', {})
|
||||
jellyseerr_url = jellyseerr_config.get('url', '')
|
||||
jellyseerr_key = jellyseerr_config.get('api_key', '')
|
||||
|
||||
if not jellyseerr_key:
|
||||
print("⚠️ Clé API Jellyseerr non configurée\n")
|
||||
else:
|
||||
print(f"✅ Jellyseerr configuré: {jellyseerr_url}")
|
||||
try:
|
||||
headers = {'X-Api-Key': jellyseerr_key}
|
||||
response = requests.get(
|
||||
f"{jellyseerr_url}/api/v1/status",
|
||||
headers=headers,
|
||||
timeout=5
|
||||
)
|
||||
if response.status_code == 200:
|
||||
print("✅ Jellyseerr API accessible\n")
|
||||
else:
|
||||
print(f"⚠️ Jellyseerr API retourne le code: {response.status_code}\n")
|
||||
except requests.exceptions.RequestException as e:
|
||||
print(f"⚠️ Impossible d'accéder à Jellyseerr: {e}\n")
|
||||
|
||||
# Test Radarr
|
||||
radarr_config = config.get('radarr', {})
|
||||
radarr_host = radarr_config.get('hostname', '')
|
||||
radarr_port = radarr_config.get('port', 7878)
|
||||
radarr_key = radarr_config.get('api_key', '')
|
||||
use_ssl = radarr_config.get('use_ssl', False)
|
||||
|
||||
if not radarr_key:
|
||||
print("⚠️ Clé API Radarr non configurée\n")
|
||||
else:
|
||||
protocol = 'https' if use_ssl else 'http'
|
||||
radarr_url = f"{protocol}://{radarr_host}:{radarr_port}"
|
||||
print(f"✅ Radarr configuré: {radarr_url}")
|
||||
try:
|
||||
params = {'apikey': radarr_key}
|
||||
response = requests.get(
|
||||
f"{radarr_url}/api/v3/system/status",
|
||||
params=params,
|
||||
timeout=5
|
||||
)
|
||||
if response.status_code == 200:
|
||||
print("✅ Radarr API accessible\n")
|
||||
else:
|
||||
print(f"⚠️ Radarr API retourne le code: {response.status_code}\n")
|
||||
except requests.exceptions.RequestException as e:
|
||||
print(f"⚠️ Impossible d'accéder à Radarr: {e}\n")
|
||||
|
||||
# Test Sonarr
|
||||
sonarr_config = config.get('sonarr', {})
|
||||
sonarr_host = sonarr_config.get('hostname', '')
|
||||
sonarr_port = sonarr_config.get('port', 8989)
|
||||
sonarr_key = sonarr_config.get('api_key', '')
|
||||
use_ssl = sonarr_config.get('use_ssl', False)
|
||||
|
||||
if not sonarr_key:
|
||||
print("⚠️ Clé API Sonarr non configurée\n")
|
||||
else:
|
||||
protocol = 'https' if use_ssl else 'http'
|
||||
sonarr_url = f"{protocol}://{sonarr_host}:{sonarr_port}"
|
||||
print(f"✅ Sonarr configuré: {sonarr_url}")
|
||||
try:
|
||||
params = {'apikey': sonarr_key}
|
||||
response = requests.get(
|
||||
f"{sonarr_url}/api/v3/system/status",
|
||||
params=params,
|
||||
timeout=5
|
||||
)
|
||||
if response.status_code == 200:
|
||||
print("✅ Sonarr API accessible\n")
|
||||
else:
|
||||
print(f"⚠️ Sonarr API retourne le code: {response.status_code}\n")
|
||||
except requests.exceptions.RequestException as e:
|
||||
print(f"⚠️ Impossible d'accéder à Sonarr: {e}\n")
|
||||
|
||||
print("\n✅ Test de configuration terminé")
|
||||
return True
|
||||
|
||||
if __name__ == "__main__":
|
||||
test_config()
|
||||
Reference in New Issue
Block a user