Spaces:
Sleeping
Sleeping
Update main.py
Browse files
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 |
-
|
403 |
-
img.replace_with(
|
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
|
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 |
-
#
|
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 |
-
|
782 |
-
|
783 |
-
|
784 |
-
logging.
|
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)}"})
|