import re from typing import Optional MARKER_START = "--- [prox-visualizer-metadata] ---" def extract_duplicate_id(description: Optional[str]) -> Optional[int]: """Extrait l'ID de doublon caché dans la note Proxmox via Regex.""" if not description: return None # Cherche la clé duplicate_id=chiffres match = re.search(r'duplicate_id=(\d+)', description) if match: return int(match.group(1)) return None def inject_duplicate_id(description: Optional[str], duplicate_id: int) -> str: """ Insère ou met à jour l'ID de doublon à la fin de la note existante, sans effacer les notes déjà écrites par l'utilisateur. """ clean_desc = "" if description: # Si un ancien bloc de métadonnées existe, on le retire pour repartir sur du propre if MARKER_START in description: clean_desc = description.split(MARKER_START)[0].strip() else: clean_desc = description.strip() # Génération du nouveau bloc de métadonnées metadata_block = f"\n\n{MARKER_START}\nduplicate_id={duplicate_id}" return f"{clean_desc}{metadata_block}".strip()