
    ,h                     >    S r SSKrSSKrS rS rS rSS jrS	S jrg)
uG   
Funciones de utilidad para mejorar la accesibilidad de la aplicación
    Nc                     UR                  SS5      nUR                  SS5      nUR                  SS5      nU U0 S.nUS:X  a  [        XU5      US'   S	US
   S'   OUS:X  a  U(       a  [        U 5      US'   US
   R                  UUUS.5        U$ )u=  
Crea una respuesta en un formato accesible según las preferencias del usuario

Args:
    content (str): Contenido a formatear
    format_type (str): Tipo de formato (text, html, json)
    user_preferences (dict): Preferencias del usuario

Returns:
    dict: Respuesta formateada según necesidades de accesibilidad
	font_sizemediumhigh_contrastFsimplified_text)contentformataccessibilityhtmlr   Tr
   has_ariatext)r   r   
simplified)get_make_html_accessible_simplify_contentupdate)r   format_typeuser_preferencesr   r   r   responses          >D:\NESTOR\Documents\Tesis\auris\backend\utils\accessibility.pycreate_accessible_responser      s     !$$[(;I$((%@M&**+<eDO H f3GV04!*-		?/8 _$$&%&  O    c                     US:w  a  U R                  SSU S35      n U(       a  U R                  SS5      n [        R                  " SS U 5      n [        R                  " SS	 U 5      n U $ )
u   
Mejora la accesibilidad de contenido HTML

Args:
    html_content (str): Contenido HTML
    font_size (str): Tamaño de fuente preferido
    high_contrast (bool): Si se debe usar alto contraste

Returns:
    str: HTML con mejoras de accesibilidad
r   z<bodyz<body class="font-size-"z<body class="high-contrast"z<img([^>]*?)>c                     SU R                  S5      ;   a  U R                  S5      $ U R                  S5      R                  SS5      $ )Nzalt=r   >z alt="Imagen" >)groupreplacems    r   <lambda>'_make_html_accessible.<locals>.<lambda>C   s@    &AGGAJ2FAGGAJ %_45GGAJ4F4FsL]4^%_r   z<input([^>]*?)>c                     SU R                  S5      ;  a*  SU R                  S5      ;  a  SU R                  S5       S3$ U R                  S5      $ )Nztype="submit"r   z
aria-labelz<label>Campo de entrada z</label>)r   r   s    r   r!   r"   I   sQ    %4AGGAJ%F<_`_f_fgh_iKi '?qwwqzl($S %2'(wwqz%2r   )r   resub)html_contentr   r   s      r   r   r   .   s     H#++G7NykYZ5[\#++G5RS 66*_&(L 66,2 '	(L r   c                    [         R                  " SU 5      n/ nU H[  nUR                  5       n[        U5      S:  a  UR                  U5        M5  UR                  SR	                  USS 5      S-   5        M]     SR	                  U5      $ )z
Simplifica el contenido textual para mejorar la accesibilidad

Args:
    content (str): Contenido a simplificar

Returns:
    str: Contenido simplificado
z(?<=[.!?])\s+    N
   z...)r$   splitlenappendjoin)r   	sentencesr   sentencewordss        r   r   r   P   s     )73I J u:?h' chhuSbz2U:;  88Jr   c                     SU S3$ )u  
Crea una descripción textual de una imagen para usuarios con discapacidad visual

Args:
    image_path (str): Ruta a la imagen
    detail_level (str): Nivel de detalle de la descripción (basic, medium, detailed)

Returns:
    str: Descripción de la imagen
    
Note:
    Esta función es un placeholder. En una implementación real,
    se integraría con un modelo de visión por computadora.
u*   Descripción de imagen (nivel de detalle: ) )
image_pathdetail_levels     r   create_image_descriptionr7   l   s    " 8~QGGr   c                 N    U 0 S.nU(       a  / US   S'   SUS   S'   SUS   S'   U$ )u   
Mejora una transcripción de audio para usuarios con discapacidad auditiva

Args:
    transcript (str): Transcripción original
    annotations (bool): Si se deben incluir anotaciones de contexto

Returns:
    dict: Transcripción mejorada con metadatos
)r   metadatar9   soundsneutraltone   speakersr4   )
transcriptannotationsenhanceds      r   enhance_audio_transcriptrB      sL     H
 )+X& (1V$ ,-Z(Or   )r   )T)__doc__jsonr$   r   r   r   r7   rB   r4   r   r   <module>rE      s.     	%N D 8H&r   