Bienvenue sur CFTPfr.fr › Forums › scripts › mira_ia.py
- Ce sujet est vide.
Affichage de 1 message (sur 1 au total)
-
AuteurMessages
-
25.07.2026 à 21h55 #211
Mario Da Conceicao
Maître des clésSauvegarde de travail — version du 25/07/2026. ⚠️ Contient une gestion des mots de passe en clair, à corriger (voir Tome 2) en s’alignant sur interface_demarrage.py.
import json import os import shutil from datetime import datetime class MiraIA: def __init__(self, version_actuelle="0.3"): self.version_actuelle = version_actuelle self.fichier_mises_a_jour = "D:\\MIRA_Project\\mira_ai\\mises_a_jour.json" self.fichier_ameliorations = "D:\\MIRA_Project\\mira_ai\\ameliorations.txt" self.fichier_propositions = "D:\\MIRA_Project\\mira_ai\\propositions_ia.json" self.fichier_logs = "D:\\MIRA_Project\\mira_ai\\logs.txt" self.fichier_utilisateurs = "D:\\MIRA_Project\\mira_ai\\utilisateurs.json" self.fichier_connaissances = "D:\\MIRA_Project\\mira_ai\\connaissances.json" if not os.path.exists(self.fichier_ameliorations): open(self.fichier_ameliorations, "w", encoding="utf-8").close() if not os.path.exists(self.fichier_propositions): with open(self.fichier_propositions, "w", encoding="utf-8") as f: json.dump([], f) if not os.path.exists(self.fichier_logs): open(self.fichier_logs, "w", encoding="utf-8").close() if not os.path.exists(self.fichier_utilisateurs): with open(self.fichier_utilisateurs, "w", encoding="utf-8") as f: json.dump({"utilisateurs": []}, f) if not os.path.exists(self.fichier_connaissances): with open(self.fichier_connaissances, "w", encoding="utf-8") as f: json.dump({}, f) def verifier_mises_a_jour(self): if os.path.exists(self.fichier_mises_a_jour): with open(self.fichier_mises_a_jour, "r", encoding="utf-8") as f: mises_a_jour = json.load(f) if mises_a_jour["version"] > self.version_actuelle: return mises_a_jour return None def appliquer_mise_a_jour(self, mise_a_jour): print(f"Application de la mise à jour vers la version {mise_a_jour['version']}...") for fichier in mise_a_jour["fichiers"]: chemin_source = fichier["chemin_source"] chemin_destination = fichier["chemin_destination"] shutil.copy2(chemin_source, chemin_destination) print(f"Fichier {fichier['nom']} mis à jour.") print("Mise à jour terminée !") def proposer_amelioration(self, suggestion): with open(self.fichier_ameliorations, "a", encoding="utf-8") as f: f.write(f"{datetime.now()} - Suggestion: {suggestion}\n") print(f"Suggestion enregistrée : {suggestion}") self.analyser_suggestions() def analyser_suggestions(self): if not os.path.exists(self.fichier_ameliorations): return with open(self.fichier_ameliorations, "r", encoding="utf-8") as f: suggestions = f.readlines() propositions_existantes = [] if os.path.exists(self.fichier_propositions): with open(self.fichier_propositions, "r", encoding="utf-8") as f: propositions_existantes = json.load(f) descriptions_existantes = [prop["description"] for prop in propositions_existantes] nouvelles_propositions = [] for suggestion in suggestions: suggestion_nettoyee = suggestion.split("Suggestion: ")[-1].strip() proposition = None if "clavier" in suggestion_nettoyee.lower() or "virtuel" in suggestion_nettoyee.lower(): proposition = { "type": "nouvelle_fonctionnalite", "description": "Ajouter un module de clavier virtuel pour faciliter la saisie.", "fichiers_a_modifier": ["mira_os.py"], "explication": "Un clavier virtuel pourrait aider les utilisateurs à entrer des commandes ou du texte plus facilement.", "date": str(datetime.now()) } elif "jeu" in suggestion_nettoyee.lower(): proposition = { "type": "nouvelle_fonctionnalite", "description": "Ajouter un module 'Jeux' avec un jeu de devinette.", "fichiers_a_modifier": ["mira_os.py"], "explication": "Beaucoup d'utilisateurs demandent des jeux.", "date": str(datetime.now()) } elif "bug" in suggestion_nettoyee.lower() or "erreur" in suggestion_nettoyee.lower(): proposition = { "type": "correction", "description": "Corriger les bugs dans la calculatrice.", "fichiers_a_modifier": ["mira_os.py"], "explication": "Des vérifications supplémentaires pourraient être ajoutées.", "date": str(datetime.now()) } elif "calculatrice" in suggestion_nettoyee.lower(): proposition = { "type": "amelioration", "description": "Ajouter des fonctions avancées à la calculatrice (racine carrée, puissance).", "fichiers_a_modifier": ["mira_os.py"], "explication": "La calculatrice pourrait être améliorée avec des fonctions mathématiques avancées.", "date": str(datetime.now()) } if proposition and proposition["description"] not in descriptions_existantes: nouvelles_propositions.append(proposition) descriptions_existantes.append(proposition["description"]) toutes_propositions = propositions_existantes + nouvelles_propositions with open(self.fichier_propositions, "w", encoding="utf-8") as f: json.dump(toutes_propositions, f, indent=4, ensure_ascii=False) def get_propositions(self): if os.path.exists(self.fichier_propositions): with open(self.fichier_propositions, "r", encoding="utf-8") as f: return json.load(f) return [] def verifier_utilisateur(self, nom, mot_de_passe): if not os.path.exists(self.fichier_utilisateurs): return False with open(self.fichier_utilisateurs, "r", encoding="utf-8") as f: data = json.load(f) for utilisateur in data.get("utilisateurs", []): if utilisateur["nom"] == nom and utilisateur["mot_de_passe"] == mot_de_passe: return True return False def ajouter_utilisateur(self, nom, mot_de_passe, role="utilisateur"): if not os.path.exists(self.fichier_utilisateurs): data = {"utilisateurs": []} else: with open(self.fichier_utilisateurs, "r", encoding="utf-8") as f: data = json.load(f) data["utilisateurs"].append({ "nom": nom, "mot_de_passe": mot_de_passe, "role": role }) with open(self.fichier_utilisateurs, "w", encoding="utf-8") as f: json.dump(data, f, indent=4) def log_action(self, action): with open(self.fichier_logs, "a", encoding="utf-8") as f: f.write(f"{datetime.now()} - {action}\n") -
AuteurMessages
Affichage de 1 message (sur 1 au total)
- Vous devez être connecté pour répondre à ce sujet.