Bentham commited on
Commit
b85ed98
·
verified ·
1 Parent(s): 64c8a0b

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +9 -29
main.py CHANGED
@@ -399,10 +399,9 @@ async def clean_html_content(html_content: str, image_counter: List[int], images
399
  images_data[f"IMG_{X}"] = {
400
  'base64_image': base64_image
401
  }
402
- comment = Comment(f"IMG_{X}")
403
- img.replace_with(comment)
404
  image_counter[0] += 1
405
- logging.debug(f"Image {X} remplacée par commentaire IMG_{X}")
406
  else:
407
  img.decompose()
408
  else:
@@ -410,7 +409,6 @@ async def clean_html_content(html_content: str, image_counter: List[int], images
410
  else:
411
  logging.debug("No <img> tags found in the HTML content.")
412
 
413
- # Supprimer toute balise <img> restante
414
  for img in soup.find_all('img'):
415
  img.decompose()
416
 
@@ -426,8 +424,6 @@ async def clean_html_content(html_content: str, image_counter: List[int], images
426
 
427
  return str(soup)
428
 
429
-
430
-
431
  def reinsert_images(html_content: str, images_data: Dict[str, Dict[str, str]]) -> str:
432
  soup = BeautifulSoup(html_content, 'html.parser')
433
 
@@ -614,21 +610,11 @@ async def process_file_accessibility(job_id: str, input_file_path: str, ext: str
614
  html_content = convert_with_pandoc(input_file_path, input_format)
615
  html_content = insert_page_comments_every_15_paragraphs(html_content)
616
 
617
- # Ajout de journaux pour inspecter le HTML converti
618
- logging.debug(f"HTML après conversion et insertion des commentaires de page (premiers 1000 caractères): {html_content[:1000]}...")
619
-
620
  # Nettoyage et extraction des images
621
  image_counter = [1]
622
  images_data = {}
623
  cleaned_html = await clean_html_content(html_content, image_counter, images_data)
624
- logging.debug(f"HTML nettoyé après extraction des images (premiers 500 caractères): {cleaned_html[:500]}...") # Affiche les 500 premiers caractères
625
-
626
- # Vérifier la présence des balises <img> dans le HTML nettoyé
627
- cleaned_soup = BeautifulSoup(cleaned_html, 'html.parser')
628
- img_tags = cleaned_soup.find_all('img')
629
- logging.debug(f"Nombre de balises <img> détectées après nettoyage : {len(img_tags)}")
630
- for img in img_tags[:5]: # Limiter à 5 pour éviter un trop grand nombre de logs
631
- logging.debug(f"Balise <img> détectée : {img}")
632
 
633
 
634
  # Décrire les images
@@ -765,23 +751,17 @@ async def convert_file_to_txt(
765
  input_format = get_pandoc_format(ext)
766
  html_content = convert_with_pandoc(input_filename, input_format)
767
 
768
- # Ajout de journaux pour inspecter le HTML converti
769
- logging.debug(f"HTML après conversion et insertion des commentaires de page (premiers 1000 caractères): {html_content[:1000]}...")
770
-
771
  # Nettoyage et extraction des images
772
  image_counter = [1]
773
  images_data = {}
774
  cleaned_html = await clean_html_content(html_content, image_counter, images_data)
775
 
776
- # Ajout de journaux après le nettoyage
777
- logging.debug(f"HTML nettoyé après extraction des images (premiers 500 caractères): {cleaned_html[:500]}...")
778
-
779
- # Vérifier la présence des balises <img> dans le HTML nettoyé
780
  cleaned_soup = BeautifulSoup(cleaned_html, 'html.parser')
781
- img_tags = cleaned_soup.find_all('img')
782
- logging.debug(f"Nombre de balises <img> détectées après nettoyage : {len(img_tags)}")
783
- for img in img_tags[:5]: # Limiter à 5 pour éviter un trop grand nombre de logs
784
- logging.debug(f"Balise <img> détectée : {img}")
785
 
786
  # Description des images pour le mode texte
787
  for image_key in images_data:
@@ -874,4 +854,4 @@ async def convert_file_to_txt(
874
  return JSONResponse(status_code=http_exc.status_code, content={"message": http_exc.detail})
875
  except Exception as e:
876
  logging.error(f"Erreur interne lors de la conversion : {str(e)}")
877
- return JSONResponse(status_code=500, content={"message": f"Erreur interne : {str(e)}"})
 
399
  images_data[f"IMG_{X}"] = {
400
  'base64_image': base64_image
401
  }
402
+ placeholder = f"<!--IMG_{X}-->"
403
+ img.replace_with(BeautifulSoup(placeholder, 'html.parser'))
404
  image_counter[0] += 1
 
405
  else:
406
  img.decompose()
407
  else:
 
409
  else:
410
  logging.debug("No <img> tags found in the HTML content.")
411
 
 
412
  for img in soup.find_all('img'):
413
  img.decompose()
414
 
 
424
 
425
  return str(soup)
426
 
 
 
427
  def reinsert_images(html_content: str, images_data: Dict[str, Dict[str, str]]) -> str:
428
  soup = BeautifulSoup(html_content, 'html.parser')
429
 
 
610
  html_content = convert_with_pandoc(input_file_path, input_format)
611
  html_content = insert_page_comments_every_15_paragraphs(html_content)
612
 
 
 
 
613
  # Nettoyage et extraction des images
614
  image_counter = [1]
615
  images_data = {}
616
  cleaned_html = await clean_html_content(html_content, image_counter, images_data)
617
+ logging.debug(f"HTML nettoyé après extraction des images : {cleaned_html[:500]}...") # Affiche les 500 premiers caractères
 
 
 
 
 
 
 
618
 
619
 
620
  # Décrire les images
 
751
  input_format = get_pandoc_format(ext)
752
  html_content = convert_with_pandoc(input_filename, input_format)
753
 
 
 
 
754
  # Nettoyage et extraction des images
755
  image_counter = [1]
756
  images_data = {}
757
  cleaned_html = await clean_html_content(html_content, image_counter, images_data)
758
 
759
+ # Vérification des commentaires IMG_X dans le HTML nettoyé
 
 
 
760
  cleaned_soup = BeautifulSoup(cleaned_html, 'html.parser')
761
+ if any(re.match(r'IMG_\d+', str(comment)) for comment in cleaned_soup.find_all(string=lambda text: isinstance(text, Comment))):
762
+ logging.debug("Les commentaires IMG_X sont présents dans le HTML nettoyé.")
763
+ else:
764
+ logging.error("Les commentaires IMG_X ne sont PAS présents dans le HTML nettoyé.")
765
 
766
  # Description des images pour le mode texte
767
  for image_key in images_data:
 
854
  return JSONResponse(status_code=http_exc.status_code, content={"message": http_exc.detail})
855
  except Exception as e:
856
  logging.error(f"Erreur interne lors de la conversion : {str(e)}")
857
+ return JSONResponse(status_code=500, content={"message": f"Erreur interne : {str(e)}"})