
    i              	           d Z ddlmZmZmZ ddlmZmZmZ ddl	m
Z
mZ ddedee         d	eeef         fd
Zdde
dedee         d	efdZdS )z-
Mapping functionality for Firecrawl v2 API.
    )OptionalDictAny   )
MapOptionsMapData
LinkResult)
HttpClienthandle_response_errorNurloptionsreturnc                 P   | r|                                  st          d          d|                                  i}|i }t          |dd           
|j        |d<   |j        
|j        |d<   |j        
|j        |d<   |j        
|j        |d<   |j        
|j        |d<   |j        
|j        |d<   |j	        5|j	                                         r|j	                                         |d	<   |j
        |j
                            d
          |d<   |                    |           |S )NzURL cannot be emptyr   sitemapsearchincludeSubdomainsignoreQueryParameterslimittimeoutintegrationT)exclude_nonelocation)strip
ValueErrorgetattrr   r   include_subdomainsignore_query_parametersr   r   r   r   
model_dumpupdate)r   r   payloaddatas       b/home/agentuser/.hermes/hermes-agent/venv/lib/python3.11/site-packages/firecrawl/v2/methods/map.py_prepare_map_requestr#   
   s=    0ciikk 0.///$ciikk2G!7It,,8%oDO>%$^DN%1(/(BD$%*6,3,KD()=$#MDM?&%oDO*w/B/H/H/J/J*")"5";";"="=D'&/:::MMDtN    clientc           
         t          ||          }|                     d|          }|j        st          |d           |                                }|                    d          s#t          |                    dd                    g }|                    dg           D ]}t          |t                    r`|	                    t          |                    dd          |                    d	          |                    d
                               wt          |t                    r#|	                    t          |                     t          |          S )zV
    Map a URL and return MapData (links list with optional titles/descriptions).
    z/v2/mapmapsuccesserrorzUnknown error occurredlinksr    titledescription)r   r,   r-   )r   )r*   )r#   postokr   jsonget	Exception
isinstancedictappendr	   strr   )r%   r   r   request_dataresponsebodyresult_linksitems           r"   r'   r'   )   sX    (W55L{{9l33H; /h...==??D88I E*BCCDDD" &(L"%% 
6 
6dD!! 		6++((7++ $ 7 7      c"" 	6
t 4 4 4555&&&&r$   )N)__doc__typingr   r   r   typesr   r   r	   utilsr
   r   r6   r#   r'    r$   r"   <module>rA      s     ' & & & & & & & & & 3 3 3 3 3 3 3 3 3 3 5 5 5 5 5 5 5 5 c HZ,@ DQTVYQYN    >)' )'
 )' )'x
/C )'w )' )' )' )' )' )'r$   