34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
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()
|