import ovh import os from dotenv import load_dotenv from datetime import datetime from pathlib import Path load_dotenv() # Dictionnaire des numéros par site PHONE_NUMBERS_BY_SITE = { 'Saclay': os.getenv('PHONE_SACLAY', '').split(','), 'Meudon': os.getenv('PHONE_MEUDON', '').split(','), # ajoute d'autres sites ici } # Dossier de logs log_dir = Path("/home/debian/Gestion_sondes/Logs") if os.name != "nt" else Path.cwd() / "Logs" log_dir.mkdir(parents=True, exist_ok=True) log_file = log_dir / "journal_sms.csv" def journaliser_sms(message, site, phone_number): timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") lignes = [f"{timestamp};{site};{num};{message}" for num in phone_number] with open(log_file, "a", encoding="utf-8") as f: for ligne in lignes: f.write(ligne + "\n") def envoyer_sms_ovh(message, site): phone_numbers = PHONE_NUMBERS_BY_SITE.get(site) if not phone_numbers or phone_numbers == ['']: print(f"[!] Aucun numéro défini pour le site {site}. SMS non envoyé.") return None client = ovh.Client( endpoint=os.getenv("OVH_ENDPOINT"), application_key=os.getenv("OVH_APP_KEY"), application_secret=os.getenv("OVH_APP_SECRET"), consumer_key=os.getenv("OVH_CONSUMER_KEY"), ) account = os.getenv("OVH_SMS_ACCOUNT") try: sender = os.getenv("OVH_SMS_SENDER") result = client.post(f'/sms/{account}/jobs', sender=sender, message=message, receivers=phone_numbers, priority='high', noStopClause=True, ) print(f"[✓] SMS envoyé pour {site} à {phone_numbers}") journaliser_sms(message, site, phone_numbers) return result except Exception as e: print(f"[!] Erreur envoi SMS OVH : {e}") return None