Public Access
Amélioration modules updater et sélection des IA suivant disponibilités
Build and Push Docker Image / build-and-push (push) Successful in 7m31s
Build and Push Docker Image / build-and-push (push) Successful in 7m31s
This commit is contained in:
1 parent
d36cb07ab1
commit
7cd6e1db6e
1 file changed
+18
-9
@@ -211,26 +211,35 @@ def obtenir_solde(utilisateur_nom: str) -> float:
|
|||||||
# --- SYNCHRONISATION DIRECTE POUR L'ADMINISTRATEUR PRINCIPAL ---
|
# --- SYNCHRONISATION DIRECTE POUR L'ADMINISTRATEUR PRINCIPAL ---
|
||||||
if utilisateur_nom.lower() in ["xavier"]:
|
if utilisateur_nom.lower() in ["xavier"]:
|
||||||
api_key = os.getenv("OPENROUTER_API_KEY")
|
api_key = os.getenv("OPENROUTER_API_KEY")
|
||||||
if api_key:
|
|
||||||
|
if not api_key:
|
||||||
|
log_event("CRITICAL", "BILLING", "Clé OPENROUTER_API_KEY introuvable dans l'environnement ! La synchronisation est impossible.")
|
||||||
|
else:
|
||||||
try:
|
try:
|
||||||
resp = requests.get("https://openrouter.ai/api/v1/auth/key", headers={"Authorization": f"Bearer {api_key}"}, timeout=3)
|
resp = requests.get("https://openrouter.ai/api/v1/auth/key", headers={"Authorization": f"Bearer {api_key}"}, timeout=5)
|
||||||
if resp.status_code == 200:
|
if resp.status_code == 200:
|
||||||
data = resp.json().get("data", {})
|
data = resp.json().get("data", {})
|
||||||
|
|
||||||
credit_total = data.get('usage', 0.0)
|
|
||||||
limite_restante = data.get('limit_remaining')
|
|
||||||
balance = data.get('balance', 0.0)
|
|
||||||
|
|
||||||
vrai_solde = float(limite_restante) if limite_restante is not None else float(balance)
|
usage = float(data.get('usage', 0.0))
|
||||||
|
limit = data.get('limit')
|
||||||
|
balance = data.get('balance')
|
||||||
|
|
||||||
if vrai_solde > 0 or limite_restante is not None:
|
vrai_solde = 0.0
|
||||||
|
if limit is not None:
|
||||||
|
vrai_solde = float(limit) - usage
|
||||||
|
elif balance is not None:
|
||||||
|
vrai_solde = float(balance)
|
||||||
|
|
||||||
|
if vrai_solde > 0 or (limit is not None) or (balance is not None):
|
||||||
soldes = charger_soldes()
|
soldes = charger_soldes()
|
||||||
soldes["cagnotte_commune_vip"] = vrai_solde
|
soldes["cagnotte_commune_vip"] = vrai_solde
|
||||||
soldes["xavier"] = vrai_solde
|
soldes["xavier"] = vrai_solde
|
||||||
sauvegarder_soldes(soldes)
|
sauvegarder_soldes(soldes)
|
||||||
return vrai_solde
|
return vrai_solde
|
||||||
|
else:
|
||||||
|
log_event("ERROR", "BILLING", f"Refus de l'API OpenRouter (Code {resp.status_code}) : {resp.text}")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log_event("WARNING", "BILLING", f"Échec de synchronisation OpenRouter : {e}")
|
log_event("WARNING", "BILLING", f"Échec réseau lors de la connexion à OpenRouter : {e}")
|
||||||
|
|
||||||
# --- COMPORTEMENT STANDARD POUR LES AUTRES UTILISATEURS ---
|
# --- COMPORTEMENT STANDARD POUR LES AUTRES UTILISATEURS ---
|
||||||
soldes = charger_soldes()
|
soldes = charger_soldes()
|
||||||
|
|||||||
Reference in new issue
Block a user