
    ,h                     <    d Z ddlZddlZd Zd Zd Zd
dZdd	ZdS )uG   
Funciones de utilidad para mejorar la accesibilidad de la aplicación
    Nc                 T   |                     dd          }|                     dd          }|                     dd          }| |i d}|dk    r t          | ||          |d<   d	|d
         d<   n|dk    r|rt          |           |d<   |d
                             |||d           |S )ue  
    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          ND:\NESTOR\Documents\Tesis\Asistente inteligente\backend\utils\accessibility.pycreate_accessible_responser      s     !$$[(;;I$((%@@M&**+<eDDO  H f3GYVV04!*--			?	/88 _$$&%& &    O    c                     |dk    r|                      dd| d          } |r|                      dd          } t          j        dd |           } t          j        dd	 |           } | S )
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                     d|                      d          v r|                      d          n(|                      d                              dd          S )Nzalt=r   >z alt="Imagen" >)groupreplacems    r   <lambda>z'_make_html_accessible.<locals>.<lambda>C   sG    &AGGAJJ2F2FAGGAJJJ45GGAJJ4F4FsL]4^4^ r   z<input([^>]*?)>c                     d|                      d          vr0d|                      d          vrd|                      d           dn|                      d          S )Nztype="submit"r   z
aria-labelz<label>Campo de entrada z</label>)r   r   s    r   r!   z'_make_html_accessible.<locals>.<lambda>I   sa    %4AGGAJJ%F%F<_`_f_fgh_i_iKiKi %Tqwwqzz$S$S$S$S'(wwqzz r   )r   resub)html_contentr   r   s      r   r   r   .   s     H#++G5[y5[5[5[\\ T#++G5RSS 6*_ _&( (L 6,2 2 '	( (L r   c                 D   t          j        d|           }g }|D ]r}|                                }t          |          dk     r|                    |           ?|                    d                    |dd                   dz              sd                    |          S )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33I J < <  u::??h'''' chhuSbSz22U:;;;;88Jr   r   c                     d| dS )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_descriptionr6   l   s    " HGGGGr   Tc                 V    | i d}|r!g |d         d<   d|d         d<   d|d         d<   |S )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   metadatar8   soundsneutraltone   speakersr3   )
transcriptannotationsenhanceds      r   enhance_audio_transcriptrA      sV      H
  -)+X& (1V$ ,-Z(Or   )r   )T)__doc__jsonr#   r   r   r   r6   rA   r3   r   r   <module>rD      s      				% % %N     D     8H H H H&     r   