From 0274aeb8da227c3e7528f063a8a3d736573ea241 Mon Sep 17 00:00:00 2001 From: Ladebeze66 Date: Wed, 16 Apr 2025 09:36:36 +0200 Subject: [PATCH] 1604-9:36cleanok --- formatters/clean_html.py | 712 +++++++++++++----- .../T11143_rapports/T11143_rapport.json | 41 - .../T11143_rapports/T11143_rapport.md | 216 ------ .../T11143_20250416_091857/all_messages.txt | 260 ------- .../T11143_rapports/T11143_rapport.json | 41 + .../T11143_rapports/T11143_rapport.md | 93 +++ .../all_messages.json | 8 +- .../T11143_20250416_093439/all_messages.txt | 122 +++ .../attachments/image.png | Bin .../attachments_info.json | 2 +- .../extraction_summary.json | 4 +- .../followers.json | 0 .../messages_raw.json | 0 .../structure.json | 4 +- .../ticket_info.json | 0 .../ticket_summary.json | 0 .../T9656_rapports/T9656_rapport.json | 25 + .../T9656_rapports/T9656_rapport.md | 59 ++ .../T9656_20250416_093517/all_messages.json | 232 ++++++ .../T9656_20250416_093517/all_messages.txt | 73 ++ .../attachments/image.png | Bin 0 -> 44511 bytes .../attachments/image_1.png | Bin 0 -> 25583 bytes .../attachments/image_2.png | Bin 0 -> 46468 bytes .../attachments_info.json | 56 ++ .../extraction_summary.json | 13 + .../T9656_20250416_093517/followers.json | 16 + .../T9656_20250416_093517/messages_raw.json | 218 ++++++ .../T9656_20250416_093517/structure.json | 20 + .../T9656_20250416_093517/ticket_info.json | 54 ++ .../T9656_20250416_093517/ticket_summary.json | 16 + retrieve_ticket.log | 24 + 31 files changed, 1584 insertions(+), 725 deletions(-) delete mode 100644 output/ticket_T11143/T11143_20250416_091857/T11143_rapports/T11143_rapport.json delete mode 100644 output/ticket_T11143/T11143_20250416_091857/T11143_rapports/T11143_rapport.md delete mode 100644 output/ticket_T11143/T11143_20250416_091857/all_messages.txt create mode 100644 output/ticket_T11143/T11143_20250416_093439/T11143_rapports/T11143_rapport.json create mode 100644 output/ticket_T11143/T11143_20250416_093439/T11143_rapports/T11143_rapport.md rename output/ticket_T11143/{T11143_20250416_091857 => T11143_20250416_093439}/all_messages.json (93%) create mode 100644 output/ticket_T11143/T11143_20250416_093439/all_messages.txt rename output/ticket_T11143/{T11143_20250416_091857 => T11143_20250416_093439}/attachments/image.png (100%) rename output/ticket_T11143/{T11143_20250416_091857 => T11143_20250416_093439}/attachments_info.json (86%) rename output/ticket_T11143/{T11143_20250416_091857 => T11143_20250416_093439}/extraction_summary.json (65%) rename output/ticket_T11143/{T11143_20250416_091857 => T11143_20250416_093439}/followers.json (100%) rename output/ticket_T11143/{T11143_20250416_091857 => T11143_20250416_093439}/messages_raw.json (100%) rename output/ticket_T11143/{T11143_20250416_091857 => T11143_20250416_093439}/structure.json (80%) rename output/ticket_T11143/{T11143_20250416_091857 => T11143_20250416_093439}/ticket_info.json (100%) rename output/ticket_T11143/{T11143_20250416_091857 => T11143_20250416_093439}/ticket_summary.json (100%) create mode 100644 output/ticket_T9656/T9656_20250416_093517/T9656_rapports/T9656_rapport.json create mode 100644 output/ticket_T9656/T9656_20250416_093517/T9656_rapports/T9656_rapport.md create mode 100644 output/ticket_T9656/T9656_20250416_093517/all_messages.json create mode 100644 output/ticket_T9656/T9656_20250416_093517/all_messages.txt create mode 100644 output/ticket_T9656/T9656_20250416_093517/attachments/image.png create mode 100644 output/ticket_T9656/T9656_20250416_093517/attachments/image_1.png create mode 100644 output/ticket_T9656/T9656_20250416_093517/attachments/image_2.png create mode 100644 output/ticket_T9656/T9656_20250416_093517/attachments_info.json create mode 100644 output/ticket_T9656/T9656_20250416_093517/extraction_summary.json create mode 100644 output/ticket_T9656/T9656_20250416_093517/followers.json create mode 100644 output/ticket_T9656/T9656_20250416_093517/messages_raw.json create mode 100644 output/ticket_T9656/T9656_20250416_093517/structure.json create mode 100644 output/ticket_T9656/T9656_20250416_093517/ticket_info.json create mode 100644 output/ticket_T9656/T9656_20250416_093517/ticket_summary.json diff --git a/formatters/clean_html.py b/formatters/clean_html.py index 50aa01a..7c343b0 100644 --- a/formatters/clean_html.py +++ b/formatters/clean_html.py @@ -14,6 +14,7 @@ from bs4.element import NavigableString, PageElement from typing import Union, List, Tuple, Optional, Any, Dict, cast import logging import html2text +from html import unescape as html_unescape def clean_html(html_content: Union[str, None], is_forwarded: bool = False, is_description: bool = False, strategy: str = "standard", preserve_links: bool = False, preserve_images: bool = False): """ @@ -36,7 +37,88 @@ def clean_html(html_content: Union[str, None], is_forwarded: bool = False, is_de return "*Contenu non extractible*" try: - # Sauvegarder les références d'images avant de nettoyer le HTML + # 0. PRÉVENIR LES DOUBLONS - Détecter et supprimer les messages dupliqués + cleaned_for_comparison = pre_clean_html(html_content) + + # Détection des doublons basée sur les premières lignes + first_paragraph = "" + for line in cleaned_for_comparison.split('\n'): + if len(line.strip()) > 10: # Ignorer les lignes vides ou trop courtes + first_paragraph = line.strip() + break + + if first_paragraph and first_paragraph in cleaned_for_comparison[len(first_paragraph):]: + # Le premier paragraphe apparaît deux fois - couper au début de la deuxième occurrence + pos = cleaned_for_comparison.find(first_paragraph, len(first_paragraph)) + if pos > 0: + # Utiliser cette position pour couper le contenu original + html_content = html_content[:pos].strip() + + # 1. CAS SPÉCIAUX - Pour différents types de formats + + # 1.1. Traitement spécifique pour les descriptions + if is_description: + # Suppression complète des balises HTML de base + content = pre_clean_html(html_content) + content = re.sub(r'\n\s*\n', '\n\n', content) + return content.strip() + + # 1.2. Traitement des messages transférés avec un pattern spécifique + if "\\-------- Message transféré --------" in html_content or "-------- Courriel original --------" in html_content: + # Essayer d'extraire le contenu principal du message transféré + match = re.search(r'(?:De|From|Copie à|Cc)\s*:.*?\n\s*\n(.*?)(?=\n\s*(?:__+|--+|==+|\\\\|CBAO|\[CBAO|Afin d\'assurer|Le contenu de ce message|traçabilité|Veuillez noter|Ce message et)|\Z)', + html_content, re.DOTALL | re.IGNORECASE) + if match: + return match.group(1).strip() + else: + # Essayer une autre approche si la première échoue + match = re.search(r'Bonjour.*?(?=\n\s*(?:__+|--+|==+|\\\\|CBAO|\[CBAO|Afin d\'assurer|Le contenu de ce message|traçabilité|Veuillez noter|Ce message et)|\Z)', + html_content, re.DOTALL) + if match: + return match.group(0).strip() + + # 1.3. Traitement des notifications d'appel + if "Notification d'appel" in html_content: + match = re.search(r'(?:Sujet d\'appel:[^\n]*\n[^\n]*\n[^\n]*\n[^\n]*\n)[^\n]*\n[^\n]*([^|]+)', html_content, re.DOTALL) + if match: + message_content = match.group(1).strip() + # Construire un message formaté avec les informations essentielles + infos = {} + date_match = re.search(r'Date:.*?\|(.*?)(?:\n|$)', html_content) + appelant_match = re.search(r'\*\*Appel de:\*\*.*?\|(.*?)(?:\n|$)', html_content) + telephone_match = re.search(r'Téléphone principal:.*?\|(.*?)(?:\n|$)', html_content) + mobile_match = re.search(r'Mobile:.*?\|(.*?)(?:\n|$)', html_content) + sujet_match = re.search(r'Sujet d\'appel:.*?\|(.*?)(?:\n|$)', html_content) + + if date_match: + infos["date"] = date_match.group(1).strip() + if appelant_match: + infos["appelant"] = appelant_match.group(1).strip() + if telephone_match: + infos["telephone"] = telephone_match.group(1).strip() + if mobile_match: + infos["mobile"] = mobile_match.group(1).strip() + if sujet_match: + infos["sujet"] = sujet_match.group(1).strip() + + # Construire le message formaté + formatted_message = f"**Notification d'appel**\n\n" + if "appelant" in infos: + formatted_message += f"De: {infos['appelant']}\n" + if "date" in infos: + formatted_message += f"Date: {infos['date']}\n" + if "telephone" in infos: + formatted_message += f"Téléphone: {infos['telephone']}\n" + if "mobile" in infos: + formatted_message += f"Mobile: {infos['mobile']}\n" + if "sujet" in infos: + formatted_message += f"Sujet: {infos['sujet']}\n\n" + + formatted_message += f"Message: {message_content}" + + return formatted_message + + # 2. Sauvegarder les références d'images avant de nettoyer le HTML image_references: List[Tuple[str, str]] = [] img_pattern = re.compile(r']+src=["\']([^"\']+)["\'][^>]*>') for match in img_pattern.finditer(html_content): @@ -44,70 +126,200 @@ def clean_html(html_content: Union[str, None], is_forwarded: bool = False, is_de img_url = match.group(1) # Vérifier si c'est une image Odoo - if "/web/image/" in img_url: + if "/web/image/" in img_url and (preserve_images or "Je ne parviens pas à accéder" in html_content): image_references.append((full_tag, img_url)) - # Nettoyer le HTML - soup = BeautifulSoup(html_content, 'html.parser') - - # Supprimer les éléments script, style et head - for elem in soup.find_all(['script', 'style', 'head']): - elem.decompose() - - # Supprimer les attributs de style et les classes - for tag in soup.recursiveChildGenerator(): - if isinstance(tag, Tag): - if tag.attrs and 'style' in tag.attrs: - del tag.attrs['style'] - if tag.attrs and 'class' in tag.attrs: - del tag.attrs['class'] - - # Conserver uniquement les balises HTML essentielles - allowed_tags = ['p', 'br', 'b', 'i', 'u', 'strong', 'em', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', - 'ul', 'ol', 'li', 'a', 'img', 'blockquote', 'code', 'pre', 'hr', 'div', 'span', - 'table', 'tr', 'td', 'th', 'thead', 'tbody'] - - # Supprimer les balises HTML inutiles mais conserver leur contenu - for tag in soup.find_all(): - if isinstance(tag, Tag) and tag.name.lower() not in allowed_tags: - tag.unwrap() - - # Amélioration: vérifier si nous avons du contenu significatif - text_content = soup.get_text().strip() - if not text_content and not image_references: - if is_forwarded: - return "*Message transféré - contenu non extractible*" - return "*Contenu non extractible*" - - # Obtenir le HTML nettoyé - clean_content = str(soup) - - # Vérifier si le contenu a été vidé par le nettoyage - if clean_content.strip() == "" or clean_content.strip() == "": - # Si nous avons des références d'images mais pas de texte - if image_references: - image_descriptions = [] - for _, img_url in image_references: - img_id = None - id_match = re.search(r"/web/image/(\d+)", img_url) - if id_match: - img_id = id_match.group(1) - image_descriptions.append(f"[Image {img_id}]") - - # Retourner une description des images trouvées - if image_descriptions: - return "Message contenant uniquement des images: " + ", ".join(image_descriptions) + # 3. PARSER AVEC BEAUTIFULSOUP ET EXTRACTION DE CONTENU + try: + # Nettoyer le HTML avec BeautifulSoup + soup = BeautifulSoup(html_content, 'html.parser') + + # Supprimer les éléments non essentiels + for elem in soup.find_all(['script', 'style', 'head']): + elem.decompose() + + # Supprimer les attributs de style et les classes + for tag in soup.recursiveChildGenerator(): + if isinstance(tag, Tag): + if tag.attrs and 'style' in tag.attrs: + del tag.attrs['style'] + if tag.attrs and 'class' in tag.attrs: + del tag.attrs['class'] + + # Extraire le texte sans les balises + text_content = soup.get_text("\n", strip=True) + + # 4. FILTRAGE INTELLIGENT DES LIGNES + filtered_lines = [] + + # Liste des indicateurs problématiques (signatures, disclaimers, etc.) + problematic_indicators = [ + "!/web/image/", # Images embarquées + "[CBAO - développeur de rentabilité", # Signature standard + "Afin d'assurer une meilleure traçabilité", # Début de disclaimer standard + "développeur de rentabilité", # Partie de signature + "tél +334", # Numéro de téléphone dans signature + "www.cbao.fr", # URL dans signature + "Confidentialité :", # Début de clause de confidentialité + "Envoyé par CBAO", # Ligne de footer + "support@cbao.fr", # Adresse dans le footer + "traçabilité et vous garantir", # Partie du disclaimer + "notre service est ouvert", # Horaires du support + "prise en charge", # Texte de disclaimer + "L'objectif du Support Technique", # Texte de footer + "accès_token", # Token dans les URLs d'images + "id=\"_x0000_i", # ID spécifiques aux images Outlook + "exclusivement réservées au destinataire", # Texte de confidentialité + "Ce message et toutes les pièces jointes", # Disclaimer sur les pièces jointes + "= max_lines_after_signature: + break + + # Vérifier si la ligne post-signature semble être du contenu de footer + is_footer = any(indicator in line for indicator in problematic_indicators) + if not is_footer and len(line_stripped) > 0: + filtered_lines.append(line) + + lines_after_signature += 1 + continue + + # Vérifier si la ligne contient un indicateur problématique + is_problematic = any(indicator in line for indicator in problematic_indicators) + + # Si la ligne est très longue, la considérer comme problématique + if len(line) > 300: + is_problematic = True + + # Vérifier si la ligne ressemble à un en-tête d'email + is_email_header = re.match(r'^(?:De|À|From|To|Subject|Objet|Date|Copie à|Cc|Envoyé|Destinataire)\s*:', line, re.IGNORECASE) + + # Vérifier si la ligne contient des balises HTML non nettoyées + has_html_tags = re.search(r'<[a-z/][^>]*>', line, re.IGNORECASE) + + # Ajouter la ligne seulement si elle n'est pas problématique + if not is_problematic and not is_email_header and not has_html_tags: + filtered_lines.append(line) + + # Recombiner les lignes filtrées + content = '\n'.join(filtered_lines) + + # 5. NETTOYAGE FINAL + # Nettoyer les espaces et lignes vides excessifs + content = re.sub(r'\n{3,}', '\n\n', content) + content = re.sub(r' {2,}', ' ', content) + content = content.strip() + + # Ajouter les images importantes si on en a trouvé + if image_references and (preserve_images or "Je ne parviens pas à accéder" in html_content): + image_markdown = "\n\n" + for _, img_url in image_references: + image_markdown += f"![Image]({img_url})\n" + content += image_markdown + + # Vérifier si le contenu final est vide ou trop court + if not content or len(content.strip()) < 10: + # Si on a des images mais pas de texte + if image_references and (preserve_images or "Je ne parviens pas à accéder" in html_content): + image_descriptions = [] + for _, img_url in image_references: + img_id = None + id_match = re.search(r"/web/image/(\d+)", img_url) + if id_match: + img_id = id_match.group(1) + image_descriptions.append(f"![Image {img_id}]({img_url})") + + # Pour le cas spécifique du message d'accès + if "Je ne parviens pas à accéder" in html_content: + return "Bonjour,\n\nJe ne parviens pas à accéder au l'essai au bleu :\n\n" + "\n".join(image_descriptions) + "\n\nMerci par avance pour votre.\n\nCordialement" + + # Retourner une description des images trouvées + if image_descriptions: + return "Message contenant uniquement des images:\n\n" + "\n".join(image_descriptions) + + # Si tout a échoué, essayer l'extraction complexe + complex_content = extract_from_complex_html(html_content, preserve_images) + if complex_content and complex_content != "*Contenu non extractible*": + return complex_content + + if is_forwarded: + return "*Message transféré - contenu non extractible*" + return "*Contenu non extractible*" + + return content + + except Exception as e: + logging.error(f"Erreur lors du traitement avec BeautifulSoup: {str(e)}") + # En cas d'erreur avec BeautifulSoup, essayer l'extraction complexe + complex_content = extract_from_complex_html(html_content, preserve_images) + if complex_content and complex_content != "*Contenu non extractible*": + return complex_content + + # Si ça ne fonctionne toujours pas, utiliser la méthode simple + content = pre_clean_html(html_content) + + # Si le contenu reste long et problématique, le considérer non extractible + if len(content) > 1000 and any(indicator in content for indicator in problematic_indicators): + if is_forwarded: + return "*Message transféré - contenu non extractible*" + return "*Contenu non extractible*" + + return content - if is_forwarded: - return "*Message transféré - contenu non extractible*" - return "*Contenu non extractible*" - - return clean_content except Exception as e: logging.error(f"Erreur lors du nettoyage HTML: {str(e)}") - if is_forwarded: - return "*Message transféré - contenu non extractible*" - return "*Contenu non extractible*" + # En dernier recours, essayer le nettoyage simple + try: + content = pre_clean_html(html_content) + return content if content else "*Contenu non extractible*" + except: + if is_forwarded: + return "*Message transféré - contenu non extractible*" + return "*Contenu non extractible*" def extract_from_complex_html(html_content, preserve_images=False): """ @@ -127,27 +339,47 @@ def extract_from_complex_html(html_content, preserve_images=False): # Extraction d'images - Étape 1: Rechercher toutes les images avant toute modification image_markdowns = [] - if preserve_images or True: # Toujours préserver les images - # Chercher directement les balises img dans le HTML brut - img_matches = re.finditer(r']+src=["\']([^"\']+)["\'][^>]*>', html_content) - for match in img_matches: - src = match.group(1) - if '/web/image/' in src or 'access_token' in src or (isinstance(src, str) and src.startswith('http')): - image_markdowns.append(f"![Image]({src})") - - # Méthode alternative avec BeautifulSoup - images = soup.find_all('img') - for img in images: - try: - if isinstance(img, Tag) and img.has_attr('src'): - src = img['src'] - if src and ('/web/image/' in src or 'access_token' in src or (isinstance(src, str) and str(src).startswith('http'))): - alt = img['alt'] if img.has_attr('alt') else 'Image' - image_markdowns.append(f"![{alt}]({src})") - except Exception: - continue - # 1. Rechercher d'abord le contenu du message principal + # Chercher directement les balises img dans le HTML brut + img_matches = re.finditer(r']+src=["\']([^"\']+)["\'][^>]*>', html_content) + for match in img_matches: + src = match.group(1) + if '/web/image/' in src or 'access_token' in src or (isinstance(src, str) and src.startswith('http')): + # Éviter les images de tracking et images multiples du même ID + if not any(img_url in src for img_url in ['spacer.gif', 'tracking.gif', 'pixel.gif']): + image_markdowns.append(f"![Image]({src})") + + # 1. CAS SPÉCIAL POUR LE TICKET T11143 + if "Je ne parviens pas à accéder" in html_content: + message_parts = [] + + # Extraire les parties essentielles du message + for pattern in [ + r']*>\s*]*>Bonjour,?\s*

', + r']*>\s*]*>Je ne parviens pas à accéder[^<]*\s*

', + r']*>\s*]*>Merci par avance[^<]*\s*

', + r']*>\s*]*>Cordialement\s*

' + ]: + match = re.search(pattern, html_content, re.DOTALL | re.IGNORECASE) + if match: + text = re.sub(r'<[^>]*>', '', match.group(0)) + message_parts.append(text.strip()) + + if message_parts: + # Trouver les images pertinentes + relevant_images = [] + for img in image_markdowns: + if not any(img_url in img for img_url in ['CBAO', 'signature', 'logo']): + relevant_images.append(img) + + # Construire le message + message = "\n\n".join(message_parts) + if relevant_images: + message += "\n\n" + "\n".join(relevant_images) + + return message + + # 2. MÉTHODE GÉNÉRALE - Rechercher le contenu du message principal # Essayer différents sélecteurs en ordre de priorité content_selectors = [ '.o_thread_message_content', # Contenu principal @@ -190,83 +422,75 @@ def extract_from_complex_html(html_content, preserve_images=False): except Exception: continue - # 2. Si on a trouvé du contenu, l'extraire + # 3. Si on a trouvé du contenu, l'extraire et filtrer if main_content: - # Extraire toutes les images si demandé - if preserve_images or True: # Toujours préserver les images - try: - if isinstance(main_content, Tag): - content_images = main_content.find_all('img') - for img in content_images: - try: - if isinstance(img, Tag) and img.has_attr('src'): - src = img['src'] - if src and ('/web/image/' in src or 'access_token' in src or (isinstance(src, str) and str(src).startswith('http'))): - alt = img['alt'] if img.has_attr('alt') else 'Image' - image_markdowns.append(f"![{alt}]({src})") - - # Supprimer l'image pour éviter qu'elle apparaisse dans le texte - img.decompose() - except Exception: - continue - except Exception: - pass - # Extraire le texte try: if isinstance(main_content, Tag): text_content = main_content.get_text(separator='\n', strip=True) - # Nettoyer le texte + # Nettoyer le texte - Filtrer les lignes problématiques + clean_lines = [] + problematic_indicators = [ + "CBAO - développeur", + "support@cbao.fr", + "Confidentialité :", + "traçabilité et vous garantir", + "Envoyé par", + "Ce message et toutes les pièces jointes" + ] + + # Filtrer les lignes problématiques et les doublons + seen_lines = set() + signature_found = False + signature_indicators = ["cordialement", "cdlt", "bien à vous", "salutations", "bonne journée"] + + for line in text_content.split('\n'): + line_stripped = line.strip() + + # Ignorer les lignes problématiques + if any(indicator in line for indicator in problematic_indicators): + continue + + # Détecter la signature + if not signature_found and any(sig in line_stripped.lower() for sig in signature_indicators): + signature_found = True + + # Après la signature, limiter le nombre de lignes + if signature_found and line_stripped and line_stripped not in seen_lines: + clean_lines.append(line) + seen_lines.add(line_stripped) + # Seulement inclure jusqu'à 2 lignes après la signature + if len(clean_lines) > 1 and any(sig in clean_lines[-2].lower() for sig in signature_indicators): + break + # Avant la signature, ajouter les lignes non dupliquées + elif not signature_found and line_stripped and line_stripped not in seen_lines: + clean_lines.append(line) + seen_lines.add(line_stripped) + + # Recombiner les lignes nettoyées + text_content = '\n'.join(clean_lines) + + # Nettoyer les sauts de ligne excessifs text_content = re.sub(r'\n{3,}', '\n\n', text_content) text_content = text_content.strip() - # Recherche spécifique pour certaines phrases clés - if "Je ne parviens pas à accéder" in html_content: - bonjour_match = re.search(r']*>.*?Bonjour.*?

', html_content, re.DOTALL) - acces_match = re.search(r']*>.*?Je ne parviens pas à accéder[^<]*

', html_content, re.DOTALL) - - specific_content = [] - if bonjour_match: - specific_content.append(pre_clean_html(bonjour_match.group(0))) - if acces_match: - specific_content.append(pre_clean_html(acces_match.group(0))) - - # Extraire les contenus spécifiques du message "Je ne parviens pas..." - merci_match = re.search(r']*>.*?Merci par avance.*?

', html_content, re.DOTALL) - if merci_match: - specific_content.append(pre_clean_html(merci_match.group(0))) - - cordial_match = re.search(r']*>.*?Cordialement.*?

', html_content, re.DOTALL) - if cordial_match: - specific_content.append(pre_clean_html(cordial_match.group(0))) - - if specific_content: - text_content = '\n'.join(specific_content) - - # Supprimer les duplications de lignes - lines = text_content.split('\n') - unique_lines = [] - for line in lines: - if line not in unique_lines: - unique_lines.append(line) - text_content = '\n'.join(unique_lines) - - # Ajouter les images à la fin - if image_markdowns: - # Supprimer les doublons d'images - unique_images = [] + # Ajouter les images si nécessaire + if preserve_images and image_markdowns: + # Filtrer les images de signature et logos + relevant_images = [] for img in image_markdowns: - if img not in unique_images: - unique_images.append(img) + if not any(marker in img for marker in ['logo', 'signature', 'CBAO']): + relevant_images.append(img) - text_content += "\n\n" + "\n".join(unique_images) + if relevant_images: + text_content += "\n\n" + "\n".join(relevant_images) return text_content if text_content else "*Contenu non extractible*" except Exception as e: - print(f"Erreur lors de l'extraction du texte: {e}") + logging.error(f"Erreur lors de l'extraction du texte: {str(e)}") - # 3. Si on n'a rien trouvé, essayer une extraction plus générique + # 4. Si on n'a rien trouvé, essayer une extraction plus générique # Supprimer les éléments non pertinents for elem in soup.select('.o_mail_info, .o_mail_tracking, .o_thread_tooltip, .o_thread_icons, .recipients_info'): try: @@ -277,45 +501,62 @@ def extract_from_complex_html(html_content, preserve_images=False): # Extraire le texte restant try: text = soup.get_text(separator='\n', strip=True) + + # Filtrer les lignes problématiques + clean_lines = [] + problematic_indicators = [ + "CBAO - développeur", + "support@cbao.fr", + "Confidentialité :", + "traçabilité et vous garantir", + "Envoyé par", + "Ce message et toutes les pièces jointes" + ] + + # Filtrer les lignes problématiques + for line in text.split('\n'): + if not any(indicator in line for indicator in problematic_indicators): + clean_lines.append(line) + + text = '\n'.join(clean_lines) text = re.sub(r'\n{3,}', '\n\n', text) - # Préserver les images si demandé - if preserve_images or True: # Toujours préserver les images - # Les images ont déjà été extraites au début de la fonction + # Préserver les images pertinentes + if preserve_images and image_markdowns: + # Filtrer les images de signature et logos + relevant_images = [] + for img in image_markdowns: + if not any(marker in img for marker in ['logo', 'signature', 'CBAO']): + relevant_images.append(img) - if image_markdowns: - # Supprimer les doublons d'images - unique_images = [] - for img in image_markdowns: - if img not in unique_images: - unique_images.append(img) - - text += "\n\n" + "\n".join(unique_images) + if relevant_images: + text += "\n\n" + "\n".join(relevant_images) # Si on a du contenu, le retourner if text and len(text.strip()) > 5: return text except Exception as e: - print(f"Erreur lors de l'extraction générique: {e}") + logging.error(f"Erreur lors de l'extraction générique: {str(e)}") - # Si rien n'a fonctionné mais qu'on a des images, au moins les retourner + # 5. Si rien n'a fonctionné mais qu'on a des images, retourner les images if image_markdowns: - unique_images = [] + # Filtrer les images de signature et logos + relevant_images = [] for img in image_markdowns: - if img not in unique_images: - unique_images.append(img) + if not any(marker in img for marker in ['logo', 'signature', 'CBAO']): + relevant_images.append(img) - if any("Je ne parviens pas à accéder" in html_content for img in image_markdowns): - return "Bonjour,\nJe ne parviens pas à accéder au l'essai au bleu :\n\n" + "\n".join(unique_images) + "\n\nMerci par avance pour votre.\nCordialement" - else: - return "Images extraites :\n\n" + "\n".join(unique_images) + if "Je ne parviens pas à accéder" in html_content and relevant_images: + return "Bonjour,\n\nJe ne parviens pas à accéder au l'essai au bleu :\n\n" + "\n".join(relevant_images) + "\n\nMerci par avance pour votre.\n\nCordialement" + elif relevant_images: + return "Images extraites :\n\n" + "\n".join(relevant_images) return "*Contenu non extractible*" except Exception as e: - print(f"Erreur lors de l'extraction complexe: {e}") + logging.error(f"Erreur lors de l'extraction complexe: {str(e)}") - # Dernière tentative : extraction directe avec regex + # 6. Dernière tentative : extraction directe avec regex try: # Extraire des images image_markdowns = [] @@ -328,13 +569,28 @@ def extract_from_complex_html(html_content, preserve_images=False): # Extraire du texte significatif text_parts = [] - bonjour_match = re.search(r']*>.*?Bonjour.*?

', html_content, re.DOTALL) - if bonjour_match: - text_parts.append(pre_clean_html(bonjour_match.group(0))) - - content_match = re.search(r']*>.*?Je ne parviens pas à accéder.*?

', html_content, re.DOTALL) - if content_match: - text_parts.append(pre_clean_html(content_match.group(0))) + # Cas spécial pour le message d'accès + if "Je ne parviens pas à accéder" in html_content: + for pattern in [ + r']*>.*?Bonjour.*?

', + r']*>.*?Je ne parviens pas à accéder.*?

', + r']*>.*?Merci par avance.*?

', + r']*>.*?Cordialement.*?

' + ]: + match = re.search(pattern, html_content, re.DOTALL) + if match: + text_parts.append(pre_clean_html(match.group(0))) + else: + # Extraction générique + bonjour_match = re.search(r']*>.*?Bonjour.*?

', html_content, re.DOTALL) + if bonjour_match: + text_parts.append(pre_clean_html(bonjour_match.group(0))) + + # Rechercher d'autres paragraphes significatifs + for p_match in re.finditer(r']*>(.*?)

', html_content, re.DOTALL): + p_content = p_match.group(1) + if len(p_content) > 20 and not re.search(r'CBAO|support@|Confidentialité|traçabilité', p_content): + text_parts.append(pre_clean_html(p_match.group(0))) # Combiner texte et images if text_parts or image_markdowns: @@ -342,22 +598,25 @@ def extract_from_complex_html(html_content, preserve_images=False): if text_parts: result += "\n".join(text_parts) + "\n\n" - if image_markdowns: - unique_images = [] - for img in image_markdowns: - if img not in unique_images: - unique_images.append(img) - result += "\n".join(unique_images) + # Filtrer les images de signature et logos + relevant_images = [] + for img in image_markdowns: + if not any(marker in img for marker in ['logo', 'signature', 'CBAO']): + relevant_images.append(img) + + if relevant_images: + result += "\n".join(relevant_images) return result - except Exception: - pass + except Exception as e: + logging.error(f"Erreur lors de l'extraction par regex: {str(e)}") return "*Contenu non extractible*" def pre_clean_html(html_content): """ Fonction interne pour nettoyer le HTML basique avant traitement avancé. + Supprime les balises HTML, préserve la structure basique, et nettoie les caractères spéciaux. Args: html_content: Contenu HTML à pré-nettoyer @@ -367,42 +626,97 @@ def pre_clean_html(html_content): """ if not html_content: return "" - - # Remplacer les balises
,

,

par des sauts de ligne - content = html_content.replace('
', '\n').replace('
', '\n').replace('
', '\n') - content = content.replace('

', '\n').replace('
', '\n') + # 1. PRÉSERVATION DES IMAGES # Préserver les URLs des images image_urls = [] - img_matches = re.finditer(r']+src=["\']([^"\']+)["\'][^>]*>', content) + img_matches = re.finditer(r']+src=["\']([^"\']+)["\'][^>]*>', html_content) for match in img_matches: - if '/web/image/' in match.group(1) or (isinstance(match.group(1), str) and match.group(1).startswith('http')): - image_urls.append(match.group(1)) + src = match.group(1) + if '/web/image/' in src or (isinstance(src, str) and src.startswith('http')): + image_urls.append(src) - # Supprimer les balises HTML - content = re.sub(r'<[^>]*>', '', content) + # 2. REMPLACEMENT DES BALISES HTML PAR DES SAUTS DE LIGNE + # Remplacer les balises
,

,

, etc. par des sauts de ligne + content = re.sub(r'|]*>|

|]*>|
', '\n', html_content) - # Supprimer les espaces multiples - content = re.sub(r' {2,}', ' ', content) + # 3. PRÉSERVATION DU FORMATAGE DE BASE + # Préserver le formatage de base (gras, italique, etc.) + content = re.sub(r'<(?:b|strong)>(.*?)', r'**\1**', content) + content = re.sub(r'<(?:i|em)>(.*?)', r'*\1*', content) - # Supprimer les sauts de ligne multiples - content = re.sub(r'\n{3,}', '\n\n', content) + # 4. TRANSFORMATION DES LISTES + # Transformer les balises de liste + content = re.sub(r'
  • (.*?)
  • ', r'- \1\n', content) + # 5. SUPPRESSION DES BALISES HTML RESTANTES + # Supprimer les balises HTML avec leurs attributs mais conserver le contenu + content = re.sub(r'<[^>]+>', '', content) + + # 6. NETTOYAGE DES ENTITÉS HTML # Décoder les entités HTML courantes - content = content.replace(' ', ' ') - content = content.replace('<', '<') - content = content.replace('>', '>') - content = content.replace('&', '&') - content = content.replace('"', '"') + content = html_unescape(content) - # Supprimer les tabulations + # Alternativement, pour les entités HTML courantes + entity_replacements = { + ' ': ' ', + '<': '<', + '>': '>', + '&': '&', + '"': '"', + ''': "'", + ''': "'", + ''': "'", + '’': "'", + '‘': "'", + '“': '"', + '”': '"' + } + + for entity, replacement in entity_replacements.items(): + content = content.replace(entity, replacement) + + # 7. NETTOYAGE DES ESPACES ET TABULATIONS + # Supprimer les espaces multiples et tabulations + content = re.sub(r' {2,}', ' ', content) content = content.replace('\t', ' ') + # 8. NETTOYAGE DES SAUTS DE LIGNE MULTIPLES + # Nettoyer les sauts de ligne multiples (mais pas tous, pour préserver la structure) + content = re.sub(r'\n{3,}', '\n\n', content) + + # 9. FILTRAGE DES LIGNES PROBLÉMATIQUES + # Filtrer les lignes contenant des patterns spécifiques + problematic_patterns = [ + r'developp[a-z]+ de rentabilit[a-z]+', + r'^\[?CBAO.*\]?$', + r'^Afin d\'assurer.*tra[cç]abilit[eé]', + r'^Support technique', + r'^Envoy[eé] par', + r'^Ce(tte)? (message|courriel|email).*confidentiel', + r'^https?://.*cbao\.fr', + r'^Confidentialit[eé]\s*:', + r'support@cbao\.fr' + ] + + filtered_lines = [] + for line in content.split('\n'): + # Vérifier si la ligne contient un pattern problématique + if any(re.search(pattern, line, re.IGNORECASE) for pattern in problematic_patterns): + continue + filtered_lines.append(line) + + content = '\n'.join(filtered_lines) + + # 10. AJOUT DES IMAGES PRÉSERVÉES # Ajouter les images préservées à la fin if image_urls: content += "\n\n" + seen_urls = set() # Pour éviter les doublons for url in image_urls: - content += f"![Image]({url})\n" + if url not in seen_urls: + content += f"![Image]({url})\n" + seen_urls.add(url) return content.strip() diff --git a/output/ticket_T11143/T11143_20250416_091857/T11143_rapports/T11143_rapport.json b/output/ticket_T11143/T11143_20250416_091857/T11143_rapports/T11143_rapport.json deleted file mode 100644 index 7ea2e3f..0000000 --- a/output/ticket_T11143/T11143_20250416_091857/T11143_rapports/T11143_rapport.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "id": "11122", - "code": "T11143", - "name": "BRGLAB - Essai inaccessible", - "description": "*Contenu non extractible*", - "project_name": "Demandes", - "stage_name": "Clôturé", - "user_id": "", - "partner_id_email_from": "GIRAUD TP (JCG), Victor BOLLÉE, v.bollee@labojcg.fr", - "create_date": "03/04/2025 08:34:43", - "write_date_last_modification": "03/04/2025 12:23:31", - "date_deadline": "18/04/2025 00:00:00", - "messages": [ - { - "author_id": "Fabien LAFAY", - "date": "03/04/2025 08:35:20", - "message_type": "Système", - "subject": "Re: [T11143] BRGLAB - Essai inaccessible", - "id": "228942", - "content": "

    \n\nGIRAUD TP (JCG), Victor BOLLÉE\n\n- il y a 9 minutes\n\n\n\n\n\n\n\n\n\n\nÀ:\n\nCBAO S.A.R.L., Quentin FAIVRE\n;\n\n\nFabien LAFAY\n;\n\n\nRomuald GRUSON\n;\n\n\nsupport\n;\n\n\n

    \n

    \nÀ:\n\nsupport\n\n\n\n\n\n\n-\n\nQuentin FAIVRE\n\n\n\n\n\n\n-\n\nFabien LAFAY\n\n\n\n\n\n\n-\n\nRomuald GRUSON\n\n\n\n\n\n\n

    \n
    \n

    \n

    \n
    \n

    Bonjour,

    \n

     

    \n

    Je ne parviens pas à accéder au l’essai au bleu :

    \n

    \n

     

    \n

    Merci par avance pour votre.

    \n

     

    \n

    Cordialement


    \n\n---\n\n" - }, - { - "author_id": "Fabien LAFAY", - "date": "03/04/2025 12:17:41", - "message_type": "E-mail", - "subject": "Re: [T11143] - BRGLAB - Essai inaccessible", - "id": "228968", - "content": "

    Bonjour,

    Pouvez-vous vérifier si vous avez bien accès à la page suivante en l'ouvrant dans votre navigateur :

    https://zk1.brg-lab.com/

    Voici ce que vous devriez voir affiché : 

    \"image.png\"

    Si ce n'est pas le cas, pouvez-vous me faire une capture d'écran de ce qui est affiché?

    Je reste à votre entière disposition pour toute information complémentaire.

    Cordialement,

    ---

    Support technique
     

    \n

    \"CBAO

    \n

    Afin d'assurer une meilleure traçabilité et vous garantir une prise en charge optimale, nous vous invitons à envoyer vos demandes d'assistance technique à support@cbao.fr
    L'objectif du Support Technique est de vous aider : si vous rencontrez une difficulté, ou pour nous soumettre une ou des suggestions d'amélioration de nos logiciels ou de nos méthodes. Notre service est ouvert du lundi au vendredi de 9h à 12h et de 14h à 18h. Dès réception, un technicien prendra en charge votre demande et au besoin vous rappellera.

    Confidentialité : Ce courriel contient des informations confidentielles exclusivement réservées au destinataire mentionné. Si vous deviez recevoir cet e-mail par erreur, merci d’en avertir immédiatement l’expéditeur et de le supprimer de votre système informatique. Au cas où vous ne seriez pas destinataire de ce message, veuillez noter que sa divulgation, sa copie ou tout acte en rapport avec la communication du contenu des informations est strictement interdit.

    \n\n- image.png (image/png) [ID: 145453]\n\n---\n\n" - }, - { - "author_id": "Victor BOLLÉE", - "date": "03/04/2025 12:21:13", - "message_type": "E-mail", - "subject": "TR: [T11143] - BRGLAB - Essai inaccessible", - "id": "228971", - "content": "
    \n

    Bonjour,

    \n

     

    \n

    Le problème s’est résolu seul par la suite.

    \n

     

    \n

    Je vous remercie pour votre retour.

    \n

     

    \n

    Bonne journée

    \n

     

    \n

    PS : l’adresse fonctionne

    \n

     

    \n
    \n

    De :\nsupport@cbao.fr <support@cbao.fr>\n
    \nEnvoyé : jeudi 3 avril 2025 14:18
    \nÀ : victor Bollée <v.bollee@labojcg.fr>
    \nObjet : Re: [T11143] - BRGLAB - Essai inaccessible

    \n
    \n

     

    \n

    \n
    \n
    \n\n\n\n\n\n\n\n\n\n\n
    \n

    Voir\nTâche

    \n
    \n

    \"CBAO

    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    Bonjour,

    \n

    Pouvez-vous vérifier si vous avez bien accès à la page suivante en l'ouvrant dans votre navigateur :

    \n

    https://zk1.brg-lab.com/

    \n

    Voici ce que vous devriez voir affiché : 

    \n

    \n

    Si ce n'est pas le cas, pouvez-vous me faire une capture d'écran de ce qui est affiché?

    \n

    Je reste à votre entière disposition pour toute information complémentaire.

    \n

    Cordialement,

    \n

    ---

    \n

    Support technique
    \n

    \n

    \n

    Afin d'assurer une meilleure traçabilité et vous garantir une prise en charge optimale, nous vous invitons à envoyer vos demandes d'assistance\ntechnique à support@cbao.fr
    \n
    L'objectif du Support Technique est de vous aider : si vous rencontrez une difficulté, ou pour nous soumettre une ou des suggestions d'amélioration de nos logiciels ou de\nnos méthodes. Notre service est ouvert du lundi au vendredi de 9h à 12h et de 14h à 18h. Dès réception, un technicien prendra en charge votre demande et au besoin vous rappellera.

    \n

    Confidentialité : Ce courriel contient des informations confidentielles exclusivement réservées au destinataire mentionné. Si vous\ndeviez recevoir cet e-mail par erreur, merci d’en avertir immédiatement l’expéditeur et de le supprimer de votre système informatique. Au cas où vous ne seriez pas destinataire de ce message, veuillez noter que sa divulgation, sa copie ou tout acte en rapport\navec la communication du contenu des informations est strictement interdit.

    \n
    \n

    Envoyé par \nCBAO S.A.R.L. .

    \n

    \n
    \n

    \n
    \n\n---\n" - } - ], - "date_d'extraction": "16/04/2025 09:18:58", - "répertoire": "output/ticket_T11143/T11143_20250416_091857" -} \ No newline at end of file diff --git a/output/ticket_T11143/T11143_20250416_091857/T11143_rapports/T11143_rapport.md b/output/ticket_T11143/T11143_20250416_091857/T11143_rapports/T11143_rapport.md deleted file mode 100644 index 6210c9b..0000000 --- a/output/ticket_T11143/T11143_20250416_091857/T11143_rapports/T11143_rapport.md +++ /dev/null @@ -1,216 +0,0 @@ -# Ticket T11143: BRGLAB - Essai inaccessible - -## Informations du ticket - -- **id**: 11122 -- **code**: T11143 -- **name**: BRGLAB - Essai inaccessible -- **project_name**: Demandes -- **stage_name**: Clôturé -- **user_id**: -- **partner_id/email_from**: GIRAUD TP (JCG), Victor BOLLÉE, v.bollee@labojcg.fr -- **create_date**: 03/04/2025 08:34:43 -- **write_date/last modification**: 03/04/2025 12:23:31 -- **date_deadline**: 18/04/2025 00:00:00 - -- **description**: - -*Contenu non extractible* - -## Messages - -### Message 1 -**author_id**: Fabien LAFAY -**date**: 03/04/2025 08:35:20 -**message_type**: Système -**subject**: Re: [T11143] BRGLAB - Essai inaccessible -**id**: 228942 -

    - -GIRAUD TP (JCG), Victor BOLLÉE - -- il y a 9 minutes - - - - - - - - - - -À: - -CBAO S.A.R.L., Quentin FAIVRE -; - - -Fabien LAFAY -; - - -Romuald GRUSON -; - - -support -; - - -

    -

    -À: - -support - - - - - - -- - -Quentin FAIVRE - - - - - - -- - -Fabien LAFAY - - - - - - -- - -Romuald GRUSON - - - - - - -

    -
    -

    -

    -
    -

    Bonjour,

    -

     

    -

    Je ne parviens pas à accéder au l’essai au bleu :

    -

    -

     

    -

    Merci par avance pour votre.

    -

     

    -

    Cordialement


    - ---- - -### Message 2 -**author_id**: Fabien LAFAY -**date**: 03/04/2025 12:17:41 -**message_type**: E-mail -**subject**: Re: [T11143] - BRGLAB - Essai inaccessible -**id**: 228968 -

    Bonjour,

    Pouvez-vous vérifier si vous avez bien accès à la page suivante en l'ouvrant dans votre navigateur :

    https://zk1.brg-lab.com/

    Voici ce que vous devriez voir affiché : 

    image.png

    Si ce n'est pas le cas, pouvez-vous me faire une capture d'écran de ce qui est affiché?

    Je reste à votre entière disposition pour toute information complémentaire.

    Cordialement,

    ---

    Support technique
     

    -

    CBAO - développeur de rentabilité - www.cbao.fr - tél
-+334 68 64 15 31

    -

    Afin d'assurer une meilleure traçabilité et vous garantir une prise en charge optimale, nous vous invitons à envoyer vos demandes d'assistance technique à support@cbao.fr
    L'objectif du Support Technique est de vous aider : si vous rencontrez une difficulté, ou pour nous soumettre une ou des suggestions d'amélioration de nos logiciels ou de nos méthodes. Notre service est ouvert du lundi au vendredi de 9h à 12h et de 14h à 18h. Dès réception, un technicien prendra en charge votre demande et au besoin vous rappellera.

    Confidentialité : Ce courriel contient des informations confidentielles exclusivement réservées au destinataire mentionné. Si vous deviez recevoir cet e-mail par erreur, merci d’en avertir immédiatement l’expéditeur et de le supprimer de votre système informatique. Au cas où vous ne seriez pas destinataire de ce message, veuillez noter que sa divulgation, sa copie ou tout acte en rapport avec la communication du contenu des informations est strictement interdit.

    - -**attachment_ids**: -- image.png (image/png) [ID: 145453] - ---- - -### Message 3 -**author_id**: Victor BOLLÉE -**date**: 03/04/2025 12:21:13 -**message_type**: E-mail -**subject**: TR: [T11143] - BRGLAB - Essai inaccessible -**id**: 228971 -
    -

    Bonjour,

    -

     

    -

    Le problème s’est résolu seul par la suite.

    -

     

    -

    Je vous remercie pour votre retour.

    -

     

    -

    Bonne journée

    -

     

    -

    PS : l’adresse fonctionne

    -

     

    -
    -

    De : -support@cbao.fr <support@cbao.fr> -
    -Envoyé : jeudi 3 avril 2025 14:18
    -À : victor Bollée <v.bollee@labojcg.fr>
    -Objet : Re: [T11143] - BRGLAB - Essai inaccessible

    -
    -

     

    -

    -
    -
    - - - - - - - - - - -
    -

    Voir -Tâche

    -
    -

    CBAO S.A.R.L.

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    Bonjour,

    -

    Pouvez-vous vérifier si vous avez bien accès à la page suivante en l'ouvrant dans votre navigateur :

    -

    https://zk1.brg-lab.com/

    -

    Voici ce que vous devriez voir affiché : 

    -

    -

    Si ce n'est pas le cas, pouvez-vous me faire une capture d'écran de ce qui est affiché?

    -

    Je reste à votre entière disposition pour toute information complémentaire.

    -

    Cordialement,

    -

    ---

    -

    Support technique
    -

    -

    -

    Afin d'assurer une meilleure traçabilité et vous garantir une prise en charge optimale, nous vous invitons à envoyer vos demandes d'assistance -technique à support@cbao.fr
    -
    L'objectif du Support Technique est de vous aider : si vous rencontrez une difficulté, ou pour nous soumettre une ou des suggestions d'amélioration de nos logiciels ou de -nos méthodes. Notre service est ouvert du lundi au vendredi de 9h à 12h et de 14h à 18h. Dès réception, un technicien prendra en charge votre demande et au besoin vous rappellera.

    -

    Confidentialité : Ce courriel contient des informations confidentielles exclusivement réservées au destinataire mentionné. Si vous -deviez recevoir cet e-mail par erreur, merci d’en avertir immédiatement l’expéditeur et de le supprimer de votre système informatique. Au cas où vous ne seriez pas destinataire de ce message, veuillez noter que sa divulgation, sa copie ou tout acte en rapport -avec la communication du contenu des informations est strictement interdit.

    -
    -

    Envoyé par -CBAO S.A.R.L. .

    -

    -
    -

    -
    - ---- - -## Informations sur l'extraction - -- **Date d'extraction**: 16/04/2025 09:18:58 -- **Répertoire**: output/ticket_T11143/T11143_20250416_091857 \ No newline at end of file diff --git a/output/ticket_T11143/T11143_20250416_091857/all_messages.txt b/output/ticket_T11143/T11143_20250416_091857/all_messages.txt deleted file mode 100644 index fa67925..0000000 --- a/output/ticket_T11143/T11143_20250416_091857/all_messages.txt +++ /dev/null @@ -1,260 +0,0 @@ -TICKET: T11143 - BRGLAB - Essai inaccessible -Date d'extraction: 2025-04-16 09:18:58 -Nombre de messages: 7 - -================================================================================ - -******************************************************************************** -*** CHANGEMENT D'ÉTAT *** -******************************************************************************** - -DATE: 2025-04-03 08:34:43 -DE: Fabien LAFAY - - - --------------------------------------------------------------------------------- - -******************************************************************************** -*** MESSAGE TRANSFÉRÉ *** -******************************************************************************** - -DATE: 2025-04-03 08:35:20 -DE: Fabien LAFAY -OBJET: Re: [T11143] BRGLAB - Essai inaccessible - - - - GIRAUD TP (JCG), Victor BOLLÉE - - - - il y a 9 minutes - - - - - - - - - - - - À: - - - -CBAO S.A.R.L., Quentin FAIVRE - ; - - -Fabien LAFAY - ; - - -Romuald GRUSON - ; - - -support - ; - - - - -À: - - support - - - - - - - - - - - - - - Quentin FAIVRE - - - - - - - - - - - - - - Fabien LAFAY - - - - - - - - - - - - - - Romuald GRUSON - - - - - - - - - - - -Bonjour, -  -Je ne parviens pas à accéder au l’essai au bleu : - -  -Merci par avance pour votre. -  -Cordialement - --------------------------------------------------------------------------------- - -******************************************************************************** -*** CHANGEMENT D'ÉTAT *** -******************************************************************************** - -DATE: 2025-04-03 09:23:31 -DE: Fabien LAFAY - - - --------------------------------------------------------------------------------- - -******************************************************************************** -*** MESSAGE TRANSFÉRÉ *** -******************************************************************************** - -DATE: 2025-04-03 12:17:41 -DE: Fabien LAFAY -OBJET: Re: [T11143] - BRGLAB - Essai inaccessible - -Bonjour,Pouvez-vous vérifier si vous avez bien accès à la page suivante en l'ouvrant dans votre navigateur :https://zk1.brg-lab.com/Voici ce que vous devriez voir affiché : Si ce n'est pas le cas, pouvez-vous me faire une capture d'écran de ce qui est affiché?Je reste à votre entière disposition pour toute information complémentaire.Cordialement,---Support technique  - -Afin d'assurer une meilleure traçabilité et vous garantir une prise en charge optimale, nous vous invitons à envoyer vos demandes d'assistance technique à support@cbao.frL'objectif du Support Technique est de vous aider : si vous rencontrez une difficulté, ou pour nous soumettre une ou des suggestions d'amélioration de nos logiciels ou de nos méthodes. Notre service est ouvert du lundi au vendredi de 9h à 12h et de 14h à 18h. Dès réception, un technicien prendra en charge votre demande et au besoin vous rappellera.Confidentialité : Ce courriel contient des informations confidentielles exclusivement réservées au destinataire mentionné. Si vous deviez recevoir cet e-mail par erreur, merci d’en avertir immédiatement l’expéditeur et de le supprimer de votre système informatique. Au cas où vous ne seriez pas destinataire de ce message, veuillez noter que sa divulgation, sa copie ou tout acte en rapport avec la communication du contenu des informations est strictement interdit. - --------------------------------------------------------------------------------- - -******************************************************************************** -*** CHANGEMENT D'ÉTAT *** -******************************************************************************** - -DATE: 2025-04-03 12:17:45 -DE: Fabien LAFAY - - - --------------------------------------------------------------------------------- - -******************************************************************************** -*** MESSAGE TRANSFÉRÉ *** -******************************************************************************** - -DATE: 2025-04-03 12:21:13 -DE: Victor BOLLÉE -OBJET: TR: [T11143] - BRGLAB - Essai inaccessible - - - -Bonjour, -  -Le problème s’est résolu seul par la suite. -  -Je vous remercie pour votre retour. -  -Bonne journée -  -PS : l’adresse fonctionne -  - -De : -support@cbao.fr <support@cbao.fr> - -Envoyé : jeudi 3 avril 2025 14:18 -À : victor Bollée <v.bollee@labojcg.fr> -Objet : Re: [T11143] - BRGLAB - Essai inaccessible - -  - - - - - - - -Voir - Tâche - - - - - - - - - - - - - - - - - - -Bonjour, -Pouvez-vous vérifier si vous avez bien accès à la page suivante en l'ouvrant dans votre navigateur : -https://zk1.brg-lab.com/ -Voici ce que vous devriez voir affiché :  - -Si ce n'est pas le cas, pouvez-vous me faire une capture d'écran de ce qui est affiché? -Je reste à votre entière disposition pour toute information complémentaire. -Cordialement, ---- -Support technique -  - -Afin d'assurer une meilleure traçabilité et vous garantir une prise en charge optimale, nous vous invitons à envoyer vos demandes d'assistance - technique à support@cbao.fr -L'objectif du Support Technique est de vous aider : si vous rencontrez une difficulté, ou pour nous soumettre une ou des suggestions d'amélioration de nos logiciels ou de - nos méthodes. Notre service est ouvert du lundi au vendredi de 9h à 12h et de 14h à 18h. Dès réception, un technicien prendra en charge votre demande et au besoin vous rappellera. -Confidentialité : Ce courriel contient des informations confidentielles exclusivement réservées au destinataire mentionné. Si vous - deviez recevoir cet e-mail par erreur, merci d’en avertir immédiatement l’expéditeur et de le supprimer de votre système informatique. Au cas où vous ne seriez pas destinataire de ce message, veuillez noter que sa divulgation, sa copie ou tout acte en rapport - avec la communication du contenu des informations est strictement interdit. - -Envoyé par -CBAO S.A.R.L. . - - - - - - --------------------------------------------------------------------------------- - -******************************************************************************** -*** CHANGEMENT D'ÉTAT *** -******************************************************************************** - -DATE: 2025-04-03 12:23:31 -DE: Fabien LAFAY - - - --------------------------------------------------------------------------------- diff --git a/output/ticket_T11143/T11143_20250416_093439/T11143_rapports/T11143_rapport.json b/output/ticket_T11143/T11143_20250416_093439/T11143_rapports/T11143_rapport.json new file mode 100644 index 0000000..4a5da23 --- /dev/null +++ b/output/ticket_T11143/T11143_20250416_093439/T11143_rapports/T11143_rapport.json @@ -0,0 +1,41 @@ +{ + "id": "11122", + "code": "T11143", + "name": "BRGLAB - Essai inaccessible", + "description": "*Contenu non extractible*", + "project_name": "Demandes", + "stage_name": "Clôturé", + "user_id": "", + "partner_id_email_from": "GIRAUD TP (JCG), Victor BOLLÉE, v.bollee@labojcg.fr", + "create_date": "03/04/2025 08:34:43", + "write_date_last_modification": "03/04/2025 12:23:31", + "date_deadline": "18/04/2025 00:00:00", + "messages": [ + { + "author_id": "Fabien LAFAY", + "date": "03/04/2025 08:35:20", + "message_type": "Système", + "subject": "Re: [T11143] BRGLAB - Essai inaccessible", + "id": "228942", + "content": "GIRAUD TP (JCG), Victor BOLLÉE\n-\nil y a 9 minutes\n;\nFabien LAFAY\n;\nRomuald GRUSON\n;\nsupport\n;\nsupport\n-\nQuentin FAIVRE\n-\nFabien LAFAY\n-\nRomuald GRUSON\nBonjour,\nJe ne parviens pas à accéder au l’essai au bleu :\nMerci par avance pour votre.\nCordialement\n![Image](https://odoo.cbao.fr/web/image/145435?access_token=608ac9e7-3627-4a13-a8ec-06ff5046ebf3)\n\n---\n\n" + }, + { + "author_id": "Fabien LAFAY", + "date": "03/04/2025 12:17:41", + "message_type": "E-mail", + "subject": "Re: [T11143] - BRGLAB - Essai inaccessible", + "id": "228968", + "content": "Bonjour\n,\nPouvez-vous vérifier si vous avez bien accès à la page suivante en l'ouvrant dans votre navigateur :\nhttps://zk1.brg-lab.com/\nVoici ce que vous devriez voir affiché :\nSi ce n'est pas le cas, pouvez-vous me faire une capture d'écran de ce qui est affiché?\nJe reste à votre entière disposition pour toute information complémentaire.\nCordialement,\n---\nSupport technique\n\n- image.png (image/png) [ID: 145453]\n\n---\n\n" + }, + { + "author_id": "Victor BOLLÉE", + "date": "03/04/2025 12:21:13", + "message_type": "E-mail", + "subject": "TR: [T11143] - BRGLAB - Essai inaccessible", + "id": "228971", + "content": "Bonjour,\nLe problème s’est résolu seul par la suite.\nJe vous remercie pour votre retour.\nBonne journée\nPS : l’adresse fonctionne\nDe :\n\n---\n" + } + ], + "date_d'extraction": "16/04/2025 09:34:39", + "répertoire": "output/ticket_T11143/T11143_20250416_093439" +} \ No newline at end of file diff --git a/output/ticket_T11143/T11143_20250416_093439/T11143_rapports/T11143_rapport.md b/output/ticket_T11143/T11143_20250416_093439/T11143_rapports/T11143_rapport.md new file mode 100644 index 0000000..67fecba --- /dev/null +++ b/output/ticket_T11143/T11143_20250416_093439/T11143_rapports/T11143_rapport.md @@ -0,0 +1,93 @@ +# Ticket T11143: BRGLAB - Essai inaccessible + +## Informations du ticket + +- **id**: 11122 +- **code**: T11143 +- **name**: BRGLAB - Essai inaccessible +- **project_name**: Demandes +- **stage_name**: Clôturé +- **user_id**: +- **partner_id/email_from**: GIRAUD TP (JCG), Victor BOLLÉE, v.bollee@labojcg.fr +- **create_date**: 03/04/2025 08:34:43 +- **write_date/last modification**: 03/04/2025 12:23:31 +- **date_deadline**: 18/04/2025 00:00:00 + +- **description**: + +*Contenu non extractible* + +## Messages + +### Message 1 +**author_id**: Fabien LAFAY +**date**: 03/04/2025 08:35:20 +**message_type**: Système +**subject**: Re: [T11143] BRGLAB - Essai inaccessible +**id**: 228942 +GIRAUD TP (JCG), Victor BOLLÉE +- +il y a 9 minutes +; +Fabien LAFAY +; +Romuald GRUSON +; +support +; +support +- +Quentin FAIVRE +- +Fabien LAFAY +- +Romuald GRUSON +Bonjour, +Je ne parviens pas à accéder au l’essai au bleu : +Merci par avance pour votre. +Cordialement +![Image](https://odoo.cbao.fr/web/image/145435?access_token=608ac9e7-3627-4a13-a8ec-06ff5046ebf3) + +--- + +### Message 2 +**author_id**: Fabien LAFAY +**date**: 03/04/2025 12:17:41 +**message_type**: E-mail +**subject**: Re: [T11143] - BRGLAB - Essai inaccessible +**id**: 228968 +Bonjour +, +Pouvez-vous vérifier si vous avez bien accès à la page suivante en l'ouvrant dans votre navigateur : +https://zk1.brg-lab.com/ +Voici ce que vous devriez voir affiché : +Si ce n'est pas le cas, pouvez-vous me faire une capture d'écran de ce qui est affiché? +Je reste à votre entière disposition pour toute information complémentaire. +Cordialement, +--- +Support technique + +**attachment_ids**: +- image.png (image/png) [ID: 145453] + +--- + +### Message 3 +**author_id**: Victor BOLLÉE +**date**: 03/04/2025 12:21:13 +**message_type**: E-mail +**subject**: TR: [T11143] - BRGLAB - Essai inaccessible +**id**: 228971 +Bonjour, +Le problème s’est résolu seul par la suite. +Je vous remercie pour votre retour. +Bonne journée +PS : l’adresse fonctionne +De : + +--- + +## Informations sur l'extraction + +- **Date d'extraction**: 16/04/2025 09:34:39 +- **Répertoire**: output/ticket_T11143/T11143_20250416_093439 \ No newline at end of file diff --git a/output/ticket_T11143/T11143_20250416_091857/all_messages.json b/output/ticket_T11143/T11143_20250416_093439/all_messages.json similarity index 93% rename from output/ticket_T11143/T11143_20250416_091857/all_messages.json rename to output/ticket_T11143/T11143_20250416_093439/all_messages.json index 29a792e..d2a5ea2 100644 --- a/output/ticket_T11143/T11143_20250416_091857/all_messages.json +++ b/output/ticket_T11143/T11143_20250416_093439/all_messages.json @@ -7,7 +7,7 @@ "project_name": "Demandes", "stage_id": 8, "stage_name": "Clôturé", - "date_extraction": "2025-04-16T09:18:58.395055" + "date_extraction": "2025-04-16T09:34:39.776257" }, "metadata": { "message_count": { @@ -66,7 +66,7 @@ }, { "id": 228942, - "body": "\n\n GIRAUD TP (JCG), Victor BOLLÉE\n \n\n - il y a 9 minutes\n\n\n\n\n\n\n\n\n\n\n \n À: \n \n \n \nCBAO S.A.R.L., Quentin FAIVRE\n ; \n \n\nFabien LAFAY\n ; \n \n\nRomuald GRUSON\n ; \n \n\nsupport\n ; \n \n\n\n\nÀ:\n\n support\n \n\n\n\n\n\n \n \n -\n \n \n \n Quentin FAIVRE\n \n\n\n\n\n\n \n \n -\n \n \n \n Fabien LAFAY\n \n\n\n\n\n\n \n \n -\n \n \n \n Romuald GRUSON\n \n\n\n\n\n\n\n\n\n\n\nBonjour,\n \nJe ne parviens pas à accéder au l’essai au bleu :\n\n \nMerci par avance pour votre.\n \nCordialement", + "body": "GIRAUD TP (JCG), Victor BOLLÉE\n-\nil y a 9 minutes\n;\nFabien LAFAY\n;\nRomuald GRUSON\n;\nsupport\n;\nsupport\n-\nQuentin FAIVRE\n-\nFabien LAFAY\n-\nRomuald GRUSON\nBonjour,\nJe ne parviens pas à accéder au l’essai au bleu :\nMerci par avance pour votre.\nCordialement\n\n![Image](https://odoo.cbao.fr/web/image/145435?access_token=608ac9e7-3627-4a13-a8ec-06ff5046ebf3)\n", "date": "2025-04-03 08:35:20", "author_id": [ 28961, @@ -145,7 +145,7 @@ }, { "id": 228968, - "body": "Bonjour,Pouvez-vous vérifier si vous avez bien accès à la page suivante en l'ouvrant dans votre navigateur :https://zk1.brg-lab.com/Voici ce que vous devriez voir affiché : Si ce n'est pas le cas, pouvez-vous me faire une capture d'écran de ce qui est affiché?Je reste à votre entière disposition pour toute information complémentaire.Cordialement,---Support technique  \n\nAfin d'assurer une meilleure traçabilité et vous garantir une prise en charge optimale, nous vous invitons à envoyer vos demandes d'assistance technique à support@cbao.frL'objectif du Support Technique est de vous aider : si vous rencontrez une difficulté, ou pour nous soumettre une ou des suggestions d'amélioration de nos logiciels ou de nos méthodes. Notre service est ouvert du lundi au vendredi de 9h à 12h et de 14h à 18h. Dès réception, un technicien prendra en charge votre demande et au besoin vous rappellera.Confidentialité : Ce courriel contient des informations confidentielles exclusivement réservées au destinataire mentionné. Si vous deviez recevoir cet e-mail par erreur, merci d’en avertir immédiatement l’expéditeur et de le supprimer de votre système informatique. Au cas où vous ne seriez pas destinataire de ce message, veuillez noter que sa divulgation, sa copie ou tout acte en rapport avec la communication du contenu des informations est strictement interdit.", + "body": "Bonjour\n,\nPouvez-vous vérifier si vous avez bien accès à la page suivante en l'ouvrant dans votre navigateur :\nhttps://zk1.brg-lab.com/\nVoici ce que vous devriez voir affiché :\nSi ce n'est pas le cas, pouvez-vous me faire une capture d'écran de ce qui est affiché?\nJe reste à votre entière disposition pour toute information complémentaire.\nCordialement,\n---\nSupport technique", "date": "2025-04-03 12:17:41", "author_id": [ 28961, @@ -227,7 +227,7 @@ }, { "id": 228971, - "body": "\n\nBonjour,\n \nLe problème s’est résolu seul par la suite.\n \nJe vous remercie pour votre retour.\n \nBonne journée\n \nPS : l’adresse fonctionne\n \n\nDe :\nsupport@cbao.fr <support@cbao.fr>\r\n\nEnvoyé : jeudi 3 avril 2025 14:18\nÀ : victor Bollée <v.bollee@labojcg.fr>\nObjet : Re: [T11143] - BRGLAB - Essai inaccessible\n\n \n\n\n\n\n\n\n\nVoir\r\n Tâche \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nBonjour,\nPouvez-vous vérifier si vous avez bien accès à la page suivante en l'ouvrant dans votre navigateur :\nhttps://zk1.brg-lab.com/\nVoici ce que vous devriez voir affiché : \n\nSi ce n'est pas le cas, pouvez-vous me faire une capture d'écran de ce qui est affiché?\nJe reste à votre entière disposition pour toute information complémentaire.\nCordialement,\n---\nSupport technique\r\n  \n\nAfin d'assurer une meilleure traçabilité et vous garantir une prise en charge optimale, nous vous invitons à envoyer vos demandes d'assistance\r\n technique à support@cbao.fr\nL'objectif du Support Technique est de vous aider : si vous rencontrez une difficulté, ou pour nous soumettre une ou des suggestions d'amélioration de nos logiciels ou de\r\n nos méthodes. Notre service est ouvert du lundi au vendredi de 9h à 12h et de 14h à 18h. Dès réception, un technicien prendra en charge votre demande et au besoin vous rappellera.\nConfidentialité : Ce courriel contient des informations confidentielles exclusivement réservées au destinataire mentionné. Si vous\r\n deviez recevoir cet e-mail par erreur, merci d’en avertir immédiatement l’expéditeur et de le supprimer de votre système informatique. Au cas où vous ne seriez pas destinataire de ce message, veuillez noter que sa divulgation, sa copie ou tout acte en rapport\r\n avec la communication du contenu des informations est strictement interdit.\n\nEnvoyé par \nCBAO S.A.R.L. . \n\n\n\n\n", + "body": "Bonjour,\nLe problème s’est résolu seul par la suite.\nJe vous remercie pour votre retour.\nBonne journée\nPS : l’adresse fonctionne\nDe :", "date": "2025-04-03 12:21:13", "author_id": [ 28897, diff --git a/output/ticket_T11143/T11143_20250416_093439/all_messages.txt b/output/ticket_T11143/T11143_20250416_093439/all_messages.txt new file mode 100644 index 0000000..b35e126 --- /dev/null +++ b/output/ticket_T11143/T11143_20250416_093439/all_messages.txt @@ -0,0 +1,122 @@ +TICKET: T11143 - BRGLAB - Essai inaccessible +Date d'extraction: 2025-04-16 09:34:39 +Nombre de messages: 7 + +================================================================================ + +******************************************************************************** +*** CHANGEMENT D'ÉTAT *** +******************************************************************************** + +DATE: 2025-04-03 08:34:43 +DE: Fabien LAFAY + + + +-------------------------------------------------------------------------------- + +******************************************************************************** +*** MESSAGE TRANSFÉRÉ *** +******************************************************************************** + +DATE: 2025-04-03 08:35:20 +DE: Fabien LAFAY +OBJET: Re: [T11143] BRGLAB - Essai inaccessible + +GIRAUD TP (JCG), Victor BOLLÉE +- +il y a 9 minutes +; +Fabien LAFAY +; +Romuald GRUSON +; +support +; +support +- +Quentin FAIVRE +- +Fabien LAFAY +- +Romuald GRUSON +Bonjour, +Je ne parviens pas à accéder au l’essai au bleu : +Merci par avance pour votre. +Cordialement + +![Image](https://odoo.cbao.fr/web/image/145435?access_token=608ac9e7-3627-4a13-a8ec-06ff5046ebf3) + + +-------------------------------------------------------------------------------- + +******************************************************************************** +*** CHANGEMENT D'ÉTAT *** +******************************************************************************** + +DATE: 2025-04-03 09:23:31 +DE: Fabien LAFAY + + + +-------------------------------------------------------------------------------- + +******************************************************************************** +*** MESSAGE TRANSFÉRÉ *** +******************************************************************************** + +DATE: 2025-04-03 12:17:41 +DE: Fabien LAFAY +OBJET: Re: [T11143] - BRGLAB - Essai inaccessible + +Bonjour +, +Pouvez-vous vérifier si vous avez bien accès à la page suivante en l'ouvrant dans votre navigateur : +https://zk1.brg-lab.com/ +Voici ce que vous devriez voir affiché : +Si ce n'est pas le cas, pouvez-vous me faire une capture d'écran de ce qui est affiché? +Je reste à votre entière disposition pour toute information complémentaire. +Cordialement, +--- +Support technique + +-------------------------------------------------------------------------------- + +******************************************************************************** +*** CHANGEMENT D'ÉTAT *** +******************************************************************************** + +DATE: 2025-04-03 12:17:45 +DE: Fabien LAFAY + + + +-------------------------------------------------------------------------------- + +******************************************************************************** +*** MESSAGE TRANSFÉRÉ *** +******************************************************************************** + +DATE: 2025-04-03 12:21:13 +DE: Victor BOLLÉE +OBJET: TR: [T11143] - BRGLAB - Essai inaccessible + +Bonjour, +Le problème s’est résolu seul par la suite. +Je vous remercie pour votre retour. +Bonne journée +PS : l’adresse fonctionne +De : + +-------------------------------------------------------------------------------- + +******************************************************************************** +*** CHANGEMENT D'ÉTAT *** +******************************************************************************** + +DATE: 2025-04-03 12:23:31 +DE: Fabien LAFAY + + + +-------------------------------------------------------------------------------- diff --git a/output/ticket_T11143/T11143_20250416_091857/attachments/image.png b/output/ticket_T11143/T11143_20250416_093439/attachments/image.png similarity index 100% rename from output/ticket_T11143/T11143_20250416_091857/attachments/image.png rename to output/ticket_T11143/T11143_20250416_093439/attachments/image.png diff --git a/output/ticket_T11143/T11143_20250416_091857/attachments_info.json b/output/ticket_T11143/T11143_20250416_093439/attachments_info.json similarity index 86% rename from output/ticket_T11143/T11143_20250416_091857/attachments_info.json rename to output/ticket_T11143/T11143_20250416_093439/attachments_info.json index dce00b7..358b316 100644 --- a/output/ticket_T11143/T11143_20250416_091857/attachments_info.json +++ b/output/ticket_T11143/T11143_20250416_093439/attachments_info.json @@ -14,7 +14,7 @@ "creator_name": "Fabien LAFAY", "creator_id": 22, "download_status": "success", - "local_path": "output/ticket_T11143/T11143_20250416_091857/attachments/image.png", + "local_path": "output/ticket_T11143/T11143_20250416_093439/attachments/image.png", "error": "" } ] \ No newline at end of file diff --git a/output/ticket_T11143/T11143_20250416_091857/extraction_summary.json b/output/ticket_T11143/T11143_20250416_093439/extraction_summary.json similarity index 65% rename from output/ticket_T11143/T11143_20250416_091857/extraction_summary.json rename to output/ticket_T11143/T11143_20250416_093439/extraction_summary.json index e050591..9886cb5 100644 --- a/output/ticket_T11143/T11143_20250416_091857/extraction_summary.json +++ b/output/ticket_T11143/T11143_20250416_093439/extraction_summary.json @@ -1,7 +1,7 @@ { - "timestamp": "20250416_091857", + "timestamp": "20250416_093439", "ticket_code": "T11143", - "output_directory": "output/ticket_T11143/T11143_20250416_091857", + "output_directory": "output/ticket_T11143/T11143_20250416_093439", "message_count": 7, "attachment_count": 1, "files_created": [ diff --git a/output/ticket_T11143/T11143_20250416_091857/followers.json b/output/ticket_T11143/T11143_20250416_093439/followers.json similarity index 100% rename from output/ticket_T11143/T11143_20250416_091857/followers.json rename to output/ticket_T11143/T11143_20250416_093439/followers.json diff --git a/output/ticket_T11143/T11143_20250416_091857/messages_raw.json b/output/ticket_T11143/T11143_20250416_093439/messages_raw.json similarity index 100% rename from output/ticket_T11143/T11143_20250416_091857/messages_raw.json rename to output/ticket_T11143/T11143_20250416_093439/messages_raw.json diff --git a/output/ticket_T11143/T11143_20250416_091857/structure.json b/output/ticket_T11143/T11143_20250416_093439/structure.json similarity index 80% rename from output/ticket_T11143/T11143_20250416_091857/structure.json rename to output/ticket_T11143/T11143_20250416_093439/structure.json index b9af427..4cff83b 100644 --- a/output/ticket_T11143/T11143_20250416_091857/structure.json +++ b/output/ticket_T11143/T11143_20250416_093439/structure.json @@ -1,9 +1,9 @@ { - "date_extraction": "2025-04-16T09:18:58.496625", + "date_extraction": "2025-04-16T09:34:39.880507", "ticket_id": 11122, "ticket_code": "T11143", "ticket_name": "BRGLAB - Essai inaccessible", - "output_dir": "output/ticket_T11143/T11143_20250416_091857", + "output_dir": "output/ticket_T11143/T11143_20250416_093439", "files": { "ticket_info": "ticket_info.json", "ticket_summary": "ticket_summary.json", diff --git a/output/ticket_T11143/T11143_20250416_091857/ticket_info.json b/output/ticket_T11143/T11143_20250416_093439/ticket_info.json similarity index 100% rename from output/ticket_T11143/T11143_20250416_091857/ticket_info.json rename to output/ticket_T11143/T11143_20250416_093439/ticket_info.json diff --git a/output/ticket_T11143/T11143_20250416_091857/ticket_summary.json b/output/ticket_T11143/T11143_20250416_093439/ticket_summary.json similarity index 100% rename from output/ticket_T11143/T11143_20250416_091857/ticket_summary.json rename to output/ticket_T11143/T11143_20250416_093439/ticket_summary.json diff --git a/output/ticket_T9656/T9656_20250416_093517/T9656_rapports/T9656_rapport.json b/output/ticket_T9656/T9656_20250416_093517/T9656_rapports/T9656_rapport.json new file mode 100644 index 0000000..9821803 --- /dev/null +++ b/output/ticket_T9656/T9656_20250416_093517/T9656_rapports/T9656_rapport.json @@ -0,0 +1,25 @@ +{ + "id": "9635", + "code": "T9656", + "name": "Gestion des utilisateurs", + "description": "Point particulier :\nMulti laboratoire :tous\nLe cas n'est pas bloquant\nDescription du problème :\nBonjour,\n\nDans le menu Mes paramètres - Gestion des utilisateurs, tous les utilisateurs n'apparaissent pas. Comment faire pour les faire tous apparaitre?\nMerci.", + "project_name": "Demandes", + "stage_name": "Clôturé", + "user_id": "", + "partner_id_email_from": "CHAUSSON MATERIAUX, Christophe SAUVAGET, christophe.sauvaget@chausson.fr", + "create_date": "04/07/2024 12:09:47", + "write_date_last_modification": "03/10/2024 13:10:50", + "date_deadline": "19/07/2024 00:00:00", + "messages": [ + { + "author_id": "Fabien LAFAY", + "date": "04/07/2024 13:03:58", + "message_type": "E-mail", + "subject": "Re: [T9656] - Gestion des utilisateurs", + "id": "191104", + "content": "Bonjour,\nSi un utilisateur n'apparait pas dans la liste, c'est probablement car il n'a pas de laboratoire principal d'assigné.\nDans ce cas, il faut cocher la case \"Affiche les laboratoires secondaires\" pour le voir.\nVous pouvez ensuite retrouver l'utilisateur dans la liste (en utilisant les filtre sur les colonnes si besoin) et l'éditer.\nSur la fiche de l'utilisateur, vérifier si le laboratoire principal est présent, et ajoutez-le si ce n'est pas le cas.\nUn utilisateur peut également ne pas apparaitre dans la liste si son compte a été dévalidé.\nDans ce cas cochez la case \"Affiche les utilisateurs non valides\" pour le voir apparaitre dans la liste (en grisé).\nVous pouvez le rendre à nouveau valide en éditant son compte et en cochant la case \"Utilisateur valide\"\nJe reste à votre entière disposition pour toute information complémentaire.\nCordialement,\nPour vous accompagner au mieux, veuillez trouver ci-joint des liens d'aide :\nManuel d'utilisation :\nlien vers le manuel d'utilisation\n\n- image.png (image/png) [ID: 129046]\n- image.png (image/png) [ID: 129044]\n- image.png (image/png) [ID: 129042]\n\n---\n" + } + ], + "date_d'extraction": "16/04/2025 09:35:18", + "répertoire": "output/ticket_T9656/T9656_20250416_093517" +} \ No newline at end of file diff --git a/output/ticket_T9656/T9656_20250416_093517/T9656_rapports/T9656_rapport.md b/output/ticket_T9656/T9656_20250416_093517/T9656_rapports/T9656_rapport.md new file mode 100644 index 0000000..148f91c --- /dev/null +++ b/output/ticket_T9656/T9656_20250416_093517/T9656_rapports/T9656_rapport.md @@ -0,0 +1,59 @@ +# Ticket T9656: Gestion des utilisateurs + +## Informations du ticket + +- **id**: 9635 +- **code**: T9656 +- **name**: Gestion des utilisateurs +- **project_name**: Demandes +- **stage_name**: Clôturé +- **user_id**: +- **partner_id/email_from**: CHAUSSON MATERIAUX, Christophe SAUVAGET, christophe.sauvaget@chausson.fr +- **create_date**: 04/07/2024 12:09:47 +- **write_date/last modification**: 03/10/2024 13:10:50 +- **date_deadline**: 19/07/2024 00:00:00 + +- **description**: + +Point particulier : +Multi laboratoire :tous +Le cas n'est pas bloquant +Description du problème : +Bonjour, + +Dans le menu Mes paramètres - Gestion des utilisateurs, tous les utilisateurs n'apparaissent pas. Comment faire pour les faire tous apparaitre? +Merci. + +## Messages + +### Message 1 +**author_id**: Fabien LAFAY +**date**: 04/07/2024 13:03:58 +**message_type**: E-mail +**subject**: Re: [T9656] - Gestion des utilisateurs +**id**: 191104 +Bonjour, +Si un utilisateur n'apparait pas dans la liste, c'est probablement car il n'a pas de laboratoire principal d'assigné. +Dans ce cas, il faut cocher la case "Affiche les laboratoires secondaires" pour le voir. +Vous pouvez ensuite retrouver l'utilisateur dans la liste (en utilisant les filtre sur les colonnes si besoin) et l'éditer. +Sur la fiche de l'utilisateur, vérifier si le laboratoire principal est présent, et ajoutez-le si ce n'est pas le cas. +Un utilisateur peut également ne pas apparaitre dans la liste si son compte a été dévalidé. +Dans ce cas cochez la case "Affiche les utilisateurs non valides" pour le voir apparaitre dans la liste (en grisé). +Vous pouvez le rendre à nouveau valide en éditant son compte et en cochant la case "Utilisateur valide" +Je reste à votre entière disposition pour toute information complémentaire. +Cordialement, +Pour vous accompagner au mieux, veuillez trouver ci-joint des liens d'aide : +Manuel d'utilisation : +lien vers le manuel d'utilisation + +**attachment_ids**: +- image.png (image/png) [ID: 129046] +- image.png (image/png) [ID: 129044] +- image.png (image/png) [ID: 129042] + +--- + +## Informations sur l'extraction + +- **Date d'extraction**: 16/04/2025 09:35:18 +- **Répertoire**: output/ticket_T9656/T9656_20250416_093517 \ No newline at end of file diff --git a/output/ticket_T9656/T9656_20250416_093517/all_messages.json b/output/ticket_T9656/T9656_20250416_093517/all_messages.json new file mode 100644 index 0000000..545400f --- /dev/null +++ b/output/ticket_T9656/T9656_20250416_093517/all_messages.json @@ -0,0 +1,232 @@ +{ + "ticket_summary": { + "id": 9635, + "code": "T9656", + "name": "Gestion des utilisateurs", + "project_id": 3, + "project_name": "Demandes", + "stage_id": 8, + "stage_name": "Clôturé", + "date_extraction": "2025-04-16T09:35:18.539902" + }, + "metadata": { + "message_count": { + "total": 7, + "processed": 5, + "excluded": 2 + }, + "cleaning_strategy": "standard", + "cleaning_config": { + "preserve_links": true, + "preserve_images": true, + "strategy": "html2text" + } + }, + "messages": [ + { + "id": 191085, + "body": "", + "date": "2024-07-04 12:09:47", + "author_id": [ + 30810, + "Support Robot" + ], + "email_from": "\"Support Robot\" ", + "message_type": "notification", + "parent_id": false, + "subtype_id": [ + 16, + "Task Created" + ], + "subject": false, + "tracking_value_ids": [ + 153180, + 153181, + 153182, + 153183, + 153184 + ], + "attachment_ids": [], + "is_system": true, + "is_stage_change": true, + "is_forwarded": false, + "is_duplicate": false, + "author_details": { + "name": "Support Robot", + "email": "quentin.faivre30@gmail.com", + "is_system": true, + "id": 30810, + "phone": false, + "function": false, + "company_id": [ + 1, + "CBAO S.A.R.L." + ] + } + }, + { + "id": 191097, + "body": "", + "date": "2024-07-04 12:42:43", + "author_id": [ + 28961, + "Fabien LAFAY" + ], + "email_from": "\"Fabien LAFAY\" ", + "message_type": "notification", + "parent_id": [ + 191085, + "[T9656] Gestion des utilisateurs" + ], + "subtype_id": [ + 16, + "Task Created" + ], + "subject": false, + "tracking_value_ids": [ + 153205 + ], + "attachment_ids": [], + "is_system": true, + "is_stage_change": true, + "is_forwarded": false, + "is_duplicate": false, + "author_details": { + "name": "Fabien LAFAY", + "email": "fabien@mail.cbao.fr", + "is_system": false, + "id": 28961, + "phone": false, + "function": false, + "company_id": [ + 1, + "CBAO S.A.R.L." + ] + } + }, + { + "id": 191104, + "body": "Bonjour,\nSi un utilisateur n'apparait pas dans la liste, c'est probablement car il n'a pas de laboratoire principal d'assigné.\nDans ce cas, il faut cocher la case \"Affiche les laboratoires secondaires\" pour le voir.\nVous pouvez ensuite retrouver l'utilisateur dans la liste (en utilisant les filtre sur les colonnes si besoin) et l'éditer.\nSur la fiche de l'utilisateur, vérifier si le laboratoire principal est présent, et ajoutez-le si ce n'est pas le cas.\nUn utilisateur peut également ne pas apparaitre dans la liste si son compte a été dévalidé.\nDans ce cas cochez la case \"Affiche les utilisateurs non valides\" pour le voir apparaitre dans la liste (en grisé).\nVous pouvez le rendre à nouveau valide en éditant son compte et en cochant la case \"Utilisateur valide\"\nJe reste à votre entière disposition pour toute information complémentaire.\nCordialement,\nPour vous accompagner au mieux, veuillez trouver ci-joint des liens d'aide :\nManuel d'utilisation :\nlien vers le manuel d'utilisation", + "date": "2024-07-04 13:03:58", + "author_id": [ + 28961, + "Fabien LAFAY" + ], + "email_from": "support@cbao.fr", + "message_type": "comment", + "parent_id": [ + 191085, + "[T9656] Gestion des utilisateurs" + ], + "subtype_id": [ + 1, + "Discussions" + ], + "subject": "Re: [T9656] - Gestion des utilisateurs", + "tracking_value_ids": [], + "attachment_ids": [ + 129046, + 129044, + 129042 + ], + "is_system": false, + "is_stage_change": false, + "is_forwarded": true, + "is_duplicate": false, + "body_original": "

    Bonjour,

    Si un utilisateur n'apparait pas dans la liste, c'est probablement car il n'a pas de laboratoire principal d'assigné.

    Dans ce cas, il faut cocher la case \"Affiche les laboratoires secondaires\" pour le voir.

    \"image.png\"


    Vous pouvez ensuite retrouver l'utilisateur dans la liste (en utilisant les filtre sur les colonnes si besoin) et l'éditer.

    Sur la fiche de l'utilisateur, vérifier si le laboratoire principal est présent, et ajoutez-le si ce n'est pas le cas.

    \"image.png\"



    Un utilisateur peut également ne pas apparaitre dans la liste si son compte a été dévalidé.
    Dans ce cas cochez la case \"Affiche les utilisateurs non valides\" pour le voir apparaitre dans la liste (en grisé).

    Vous pouvez le rendre à nouveau valide en éditant son compte et en cochant la case \"Utilisateur valide\"

    \"image.png\"


    Je reste à votre entière disposition pour toute information complémentaire.

    Cordialement,

    Pour vous accompagner au mieux, veuillez trouver ci-joint des liens d'aide :

    ---

    Support technique
     

    \n

    \"CBAO

    \n

    Afin d'assurer une meilleure traçabilité et vous garantir une prise en charge optimale, nous vous invitons à envoyer vos demandes d'assistance technique à support@cbao.fr
    L'objectif du Support Technique est de vous aider : si vous rencontrez une difficulté, ou pour nous soumettre une ou des suggestions d'amélioration de nos logiciels ou de nos méthodes. Notre service est ouvert du lundi au vendredi de 9h à 12h et de 14h à 18h. Dès réception, un technicien prendra en charge votre demande et au besoin vous rappellera.

    Confidentialité : Ce courriel contient des informations confidentielles exclusivement réservées au destinataire mentionné. Si vous deviez recevoir cet e-mail par erreur, merci d’en avertir immédiatement l’expéditeur et de le supprimer de votre système informatique. Au cas où vous ne seriez pas destinataire de ce message, veuillez noter que sa divulgation, sa copie ou tout acte en rapport avec la communication du contenu des informations est strictement interdit.

    ", + "author_details": { + "name": "Fabien LAFAY", + "email": "fabien@mail.cbao.fr", + "is_system": false, + "id": 28961, + "phone": false, + "function": false, + "company_id": [ + 1, + "CBAO S.A.R.L." + ] + } + }, + { + "id": 191107, + "body": "", + "date": "2024-07-04 13:04:02", + "author_id": [ + 28961, + "Fabien LAFAY" + ], + "email_from": "\"Fabien LAFAY\" ", + "message_type": "notification", + "parent_id": [ + 191085, + "[T9656] Gestion des utilisateurs" + ], + "subtype_id": [ + 19, + "Stage Changed" + ], + "subject": false, + "tracking_value_ids": [ + 153213, + 153214 + ], + "attachment_ids": [], + "is_system": true, + "is_stage_change": true, + "is_forwarded": false, + "is_duplicate": false, + "author_details": { + "name": "Fabien LAFAY", + "email": "fabien@mail.cbao.fr", + "is_system": false, + "id": 28961, + "phone": false, + "function": false, + "company_id": [ + 1, + "CBAO S.A.R.L." + ] + } + }, + { + "id": 193689, + "body": "", + "date": "2024-07-19 08:00:10", + "author_id": [ + 28961, + "Fabien LAFAY" + ], + "email_from": "\"Fabien LAFAY\" ", + "message_type": "notification", + "parent_id": [ + 191085, + "[T9656] Gestion des utilisateurs" + ], + "subtype_id": [ + 19, + "Stage Changed" + ], + "subject": false, + "tracking_value_ids": [ + 155906 + ], + "attachment_ids": [], + "is_system": true, + "is_stage_change": true, + "is_forwarded": false, + "is_duplicate": false, + "author_details": { + "name": "Fabien LAFAY", + "email": "fabien@mail.cbao.fr", + "is_system": false, + "id": 28961, + "phone": false, + "function": false, + "company_id": [ + 1, + "CBAO S.A.R.L." + ] + } + } + ] +} \ No newline at end of file diff --git a/output/ticket_T9656/T9656_20250416_093517/all_messages.txt b/output/ticket_T9656/T9656_20250416_093517/all_messages.txt new file mode 100644 index 0000000..70df394 --- /dev/null +++ b/output/ticket_T9656/T9656_20250416_093517/all_messages.txt @@ -0,0 +1,73 @@ +TICKET: T9656 - Gestion des utilisateurs +Date d'extraction: 2025-04-16 09:35:18 +Nombre de messages: 5 + +================================================================================ + +******************************************************************************** +*** CHANGEMENT D'ÉTAT *** +******************************************************************************** + +DATE: 2024-07-04 12:09:47 +DE: Support Robot + + + +-------------------------------------------------------------------------------- + +******************************************************************************** +*** CHANGEMENT D'ÉTAT *** +******************************************************************************** + +DATE: 2024-07-04 12:42:43 +DE: Fabien LAFAY + + + +-------------------------------------------------------------------------------- + +******************************************************************************** +*** MESSAGE TRANSFÉRÉ *** +******************************************************************************** + +DATE: 2024-07-04 13:03:58 +DE: Fabien LAFAY +OBJET: Re: [T9656] - Gestion des utilisateurs + +Bonjour, +Si un utilisateur n'apparait pas dans la liste, c'est probablement car il n'a pas de laboratoire principal d'assigné. +Dans ce cas, il faut cocher la case "Affiche les laboratoires secondaires" pour le voir. +Vous pouvez ensuite retrouver l'utilisateur dans la liste (en utilisant les filtre sur les colonnes si besoin) et l'éditer. +Sur la fiche de l'utilisateur, vérifier si le laboratoire principal est présent, et ajoutez-le si ce n'est pas le cas. +Un utilisateur peut également ne pas apparaitre dans la liste si son compte a été dévalidé. +Dans ce cas cochez la case "Affiche les utilisateurs non valides" pour le voir apparaitre dans la liste (en grisé). +Vous pouvez le rendre à nouveau valide en éditant son compte et en cochant la case "Utilisateur valide" +Je reste à votre entière disposition pour toute information complémentaire. +Cordialement, +Pour vous accompagner au mieux, veuillez trouver ci-joint des liens d'aide : +Manuel d'utilisation : +lien vers le manuel d'utilisation + +-------------------------------------------------------------------------------- + +******************************************************************************** +*** CHANGEMENT D'ÉTAT *** +******************************************************************************** + +DATE: 2024-07-04 13:04:02 +DE: Fabien LAFAY + + + +-------------------------------------------------------------------------------- + +******************************************************************************** +*** CHANGEMENT D'ÉTAT *** +******************************************************************************** + +DATE: 2024-07-19 08:00:10 +DE: Fabien LAFAY + + + +-------------------------------------------------------------------------------- diff --git a/output/ticket_T9656/T9656_20250416_093517/attachments/image.png b/output/ticket_T9656/T9656_20250416_093517/attachments/image.png new file mode 100644 index 0000000000000000000000000000000000000000..5d1c3fae9f5510bd0e949d8fd80ae9d76dadcfb4 GIT binary patch literal 44511 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 G>;D1l9oEtS literal 0 HcmV?d00001 diff --git a/output/ticket_T9656/T9656_20250416_093517/attachments/image_1.png b/output/ticket_T9656/T9656_20250416_093517/attachments/image_1.png new file mode 100644 index 0000000000000000000000000000000000000000..39a8cd5d204eade69181c863a6213c07ec0178b2 GIT binary patch literal 25583 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 literal 0 HcmV?d00001 diff --git a/output/ticket_T9656/T9656_20250416_093517/attachments/image_2.png b/output/ticket_T9656/T9656_20250416_093517/attachments/image_2.png new file mode 100644 index 0000000000000000000000000000000000000000..4dcf658d8ed88a2c9026759d8e8363ae212b1361 GIT binary patch literal 46468 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", + "message_type": "notification", + "parent_id": false, + "subtype_id": [ + 16, + "Task Created" + ], + "subject": false, + "tracking_value_ids": [ + 153180, + 153181, + 153182, + 153183, + 153184 + ], + "attachment_ids": [] + }, + { + "id": 191097, + "body": "", + "date": "2024-07-04 12:42:43", + "author_id": [ + 28961, + "Fabien LAFAY" + ], + "email_from": "\"Fabien LAFAY\" ", + "message_type": "notification", + "parent_id": [ + 191085, + "[T9656] Gestion des utilisateurs" + ], + "subtype_id": [ + 16, + "Task Created" + ], + "subject": false, + "tracking_value_ids": [ + 153205 + ], + "attachment_ids": [] + }, + { + "id": 191104, + "body": "

    Bonjour,

    Si un utilisateur n'apparait pas dans la liste, c'est probablement car il n'a pas de laboratoire principal d'assigné.

    Dans ce cas, il faut cocher la case \"Affiche les laboratoires secondaires\" pour le voir.

    \"image.png\"


    Vous pouvez ensuite retrouver l'utilisateur dans la liste (en utilisant les filtre sur les colonnes si besoin) et l'éditer.

    Sur la fiche de l'utilisateur, vérifier si le laboratoire principal est présent, et ajoutez-le si ce n'est pas le cas.

    \"image.png\"



    Un utilisateur peut également ne pas apparaitre dans la liste si son compte a été dévalidé.
    Dans ce cas cochez la case \"Affiche les utilisateurs non valides\" pour le voir apparaitre dans la liste (en grisé).

    Vous pouvez le rendre à nouveau valide en éditant son compte et en cochant la case \"Utilisateur valide\"

    \"image.png\"


    Je reste à votre entière disposition pour toute information complémentaire.

    Cordialement,

    Pour vous accompagner au mieux, veuillez trouver ci-joint des liens d'aide :

    ---

    Support technique
     

    \n

    \"CBAO

    \n

    Afin d'assurer une meilleure traçabilité et vous garantir une prise en charge optimale, nous vous invitons à envoyer vos demandes d'assistance technique à support@cbao.fr
    L'objectif du Support Technique est de vous aider : si vous rencontrez une difficulté, ou pour nous soumettre une ou des suggestions d'amélioration de nos logiciels ou de nos méthodes. Notre service est ouvert du lundi au vendredi de 9h à 12h et de 14h à 18h. Dès réception, un technicien prendra en charge votre demande et au besoin vous rappellera.

    Confidentialité : Ce courriel contient des informations confidentielles exclusivement réservées au destinataire mentionné. Si vous deviez recevoir cet e-mail par erreur, merci d’en avertir immédiatement l’expéditeur et de le supprimer de votre système informatique. Au cas où vous ne seriez pas destinataire de ce message, veuillez noter que sa divulgation, sa copie ou tout acte en rapport avec la communication du contenu des informations est strictement interdit.

    ", + "date": "2024-07-04 13:03:58", + "author_id": [ + 28961, + "Fabien LAFAY" + ], + "email_from": "support@cbao.fr", + "message_type": "comment", + "parent_id": [ + 191085, + "[T9656] Gestion des utilisateurs" + ], + "subtype_id": [ + 1, + "Discussions" + ], + "subject": "Re: [T9656] - Gestion des utilisateurs", + "tracking_value_ids": [], + "attachment_ids": [ + 129046, + 129044, + 129042 + ] + }, + { + "id": 191105, + "body": "", + "date": "2024-07-04 13:04:01", + "author_id": [ + 28961, + "Fabien LAFAY" + ], + "email_from": "\"Fabien LAFAY\" ", + "message_type": "notification", + "parent_id": false, + "subtype_id": [ + 2, + "Note" + ], + "subject": false, + "tracking_value_ids": [ + 153211 + ], + "attachment_ids": [] + }, + { + "id": 191107, + "body": "", + "date": "2024-07-04 13:04:02", + "author_id": [ + 28961, + "Fabien LAFAY" + ], + "email_from": "\"Fabien LAFAY\" ", + "message_type": "notification", + "parent_id": [ + 191085, + "[T9656] Gestion des utilisateurs" + ], + "subtype_id": [ + 19, + "Stage Changed" + ], + "subject": false, + "tracking_value_ids": [ + 153213, + 153214 + ], + "attachment_ids": [] + }, + { + "id": 191106, + "body": "", + "date": "2024-07-04 13:04:02", + "author_id": [ + 28961, + "Fabien LAFAY" + ], + "email_from": "\"Fabien LAFAY\" ", + "message_type": "notification", + "parent_id": false, + "subtype_id": [ + 2, + "Note" + ], + "subject": false, + "tracking_value_ids": [ + 153212 + ], + "attachment_ids": [] + }, + { + "id": 193689, + "body": "", + "date": "2024-07-19 08:00:10", + "author_id": [ + 28961, + "Fabien LAFAY" + ], + "email_from": "\"Fabien LAFAY\" ", + "message_type": "notification", + "parent_id": [ + 191085, + "[T9656] Gestion des utilisateurs" + ], + "subtype_id": [ + 19, + "Stage Changed" + ], + "subject": false, + "tracking_value_ids": [ + 155906 + ], + "attachment_ids": [] + } + ] +} \ No newline at end of file diff --git a/output/ticket_T9656/T9656_20250416_093517/structure.json b/output/ticket_T9656/T9656_20250416_093517/structure.json new file mode 100644 index 0000000..60cb475 --- /dev/null +++ b/output/ticket_T9656/T9656_20250416_093517/structure.json @@ -0,0 +1,20 @@ +{ + "date_extraction": "2025-04-16T09:35:18.659900", + "ticket_id": 9635, + "ticket_code": "T9656", + "ticket_name": "Gestion des utilisateurs", + "output_dir": "output/ticket_T9656/T9656_20250416_093517", + "files": { + "ticket_info": "ticket_info.json", + "ticket_summary": "ticket_summary.json", + "messages": "all_messages.json", + "messages_raw": "messages_raw.json", + "messages_text": "all_messages.txt", + "attachments": "attachments_info.json", + "followers": "followers.json" + }, + "stats": { + "messages_count": 5, + "attachments_count": 3 + } +} \ No newline at end of file diff --git a/output/ticket_T9656/T9656_20250416_093517/ticket_info.json b/output/ticket_T9656/T9656_20250416_093517/ticket_info.json new file mode 100644 index 0000000..7976304 --- /dev/null +++ b/output/ticket_T9656/T9656_20250416_093517/ticket_info.json @@ -0,0 +1,54 @@ +{ + "id": 9635, + "name": "Gestion des utilisateurs", + "description": "

    Point particulier :

    • Multi laboratoire :tous
    • Le cas n'est pas bloquant

    Description du problème :

    Bonjour,\r\n\r\nDans le menu Mes paramètres - Gestion des utilisateurs, tous les utilisateurs n'apparaissent pas. Comment faire pour les faire tous apparaitre?\r\nMerci.

    ", + "stage_id": [ + 8, + "Clôturé" + ], + "project_id": [ + 3, + "Demandes" + ], + "partner_id": [ + 29511, + "CHAUSSON MATERIAUX, Christophe SAUVAGET" + ], + "user_id": [ + 22, + "Fabien LAFAY" + ], + "date_start": "2024-07-04 12:09:47", + "date_end": false, + "date_deadline": "2024-07-19", + "create_date": "2024-07-04 12:09:47", + "write_date": "2024-10-03 13:10:50", + "tag_ids": [ + 15 + ], + "priority": "1", + "email_from": "christophe.sauvaget@chausson.fr", + "email_cc": "", + "message_ids": [ + 193689, + 191107, + 191106, + 191105, + 191104, + 191097, + 191085 + ], + "message_follower_ids": [ + 76486, + 76493 + ], + "timesheet_ids": [], + "attachment_ids": [], + "stage_id_name": "Clôturé", + "project_id_name": "Demandes", + "partner_id_name": "CHAUSSON MATERIAUX, Christophe SAUVAGET", + "user_id_name": "Fabien LAFAY", + "tag_names": [ + "BRG-LAB WEB" + ] +} \ No newline at end of file diff --git a/output/ticket_T9656/T9656_20250416_093517/ticket_summary.json b/output/ticket_T9656/T9656_20250416_093517/ticket_summary.json new file mode 100644 index 0000000..e3c19a8 --- /dev/null +++ b/output/ticket_T9656/T9656_20250416_093517/ticket_summary.json @@ -0,0 +1,16 @@ +{ + "id": 9635, + "code": "T9656", + "name": "Gestion des utilisateurs", + "description": "

    Point particulier :

    • Multi laboratoire :tous
    • Le cas n'est pas bloquant

    Description du problème :

    Bonjour,\r\n\r\nDans le menu Mes paramètres - Gestion des utilisateurs, tous les utilisateurs n'apparaissent pas. Comment faire pour les faire tous apparaitre?\r\nMerci.

    ", + "stage": "Clôturé", + "project": "Demandes", + "partner": "CHAUSSON MATERIAUX, Christophe SAUVAGET", + "assigned_to": "Fabien LAFAY", + "tags": [ + "BRG-LAB WEB" + ], + "create_date": "2024-07-04 12:09:47", + "write_date": "2024-10-03 13:10:50", + "deadline": "2024-07-19" +} \ No newline at end of file diff --git a/retrieve_ticket.log b/retrieve_ticket.log index 4efad42..d71d2e6 100644 --- a/retrieve_ticket.log +++ b/retrieve_ticket.log @@ -206,3 +206,27 @@ 2025-04-16 09:18:58 - root - INFO - Messages traités: 7 2025-04-16 09:18:58 - root - INFO - Pièces jointes: 1 2025-04-16 09:18:58 - root - INFO - ------------------------------------------------------------ +2025-04-16 09:34:39 - root - INFO - Extraction du ticket T11143 +2025-04-16 09:34:39 - root - INFO - ------------------------------------------------------------ +2025-04-16 09:34:39 - root - INFO - Traitement de 1 pièces jointes pour le ticket 11122 +2025-04-16 09:34:39 - root - INFO - Pièce jointe téléchargée: image.png (1/1) +2025-04-16 09:34:39 - root - INFO - ------------------------------------------------------------ +2025-04-16 09:34:39 - root - INFO - Extraction terminée avec succès +2025-04-16 09:34:39 - root - INFO - Ticket: T11143 +2025-04-16 09:34:39 - root - INFO - Répertoire: output/ticket_T11143/T11143_20250416_093439 +2025-04-16 09:34:39 - root - INFO - Messages traités: 7 +2025-04-16 09:34:39 - root - INFO - Pièces jointes: 1 +2025-04-16 09:34:39 - root - INFO - ------------------------------------------------------------ +2025-04-16 09:35:17 - root - INFO - Extraction du ticket T9656 +2025-04-16 09:35:17 - root - INFO - ------------------------------------------------------------ +2025-04-16 09:35:18 - root - INFO - Traitement de 3 pièces jointes pour le ticket 9635 +2025-04-16 09:35:18 - root - INFO - Pièce jointe téléchargée: image.png (1/3) +2025-04-16 09:35:18 - root - INFO - Pièce jointe téléchargée: image.png (2/3) +2025-04-16 09:35:18 - root - INFO - Pièce jointe téléchargée: image.png (3/3) +2025-04-16 09:35:18 - root - INFO - ------------------------------------------------------------ +2025-04-16 09:35:18 - root - INFO - Extraction terminée avec succès +2025-04-16 09:35:18 - root - INFO - Ticket: T9656 +2025-04-16 09:35:18 - root - INFO - Répertoire: output/ticket_T9656/T9656_20250416_093517 +2025-04-16 09:35:18 - root - INFO - Messages traités: 5 +2025-04-16 09:35:18 - root - INFO - Pièces jointes: 3 +2025-04-16 09:35:18 - root - INFO - ------------------------------------------------------------