
    i                        d dl mZmZmZmZ ddlmZmZmZm	Z	 ddl
mZ ddlmZ ddlmZmZ ddl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ddddddededee         dee         ded         dee         dee         defdZdedede	fdZdedede	fdZ	 dddddddededee         dee         ded         dee         dee         defdZdedede	fdZdS )    )OptionalDictAnyLiteral   )ScrapeOptionsDocumentBrowserExecuteResponseBrowserDeleteResponse)normalize_document_input)handle_response_error)prepare_scrape_optionsvalidate_scrape_options)AsyncHttpClientNurloptionsreturnc                    K   | r|                                  st          d          d|                                  i}|7t          |          }|&t          |          }|r|                    |           |S )NzURL cannot be emptyr   )strip
ValueErrorr   r   update)r   r   payload	validatedoptss        i/home/agentuser/.hermes/hermes-agent/venv/lib/python3.11/site-packages/firecrawl/v2/methods/aio/scrape.py_prepare_scrape_requestr      s       0ciikk 0.///$ciikk2G+G44	 ))44D %t$$$N    clientc                   K   t          ||           d {V }|                     d|           d {V }|j        dk    rt          |d           |                                }|                    d          s#t          |                    dd                    |                    di           }t          |          }t          di |S )	Nz
/v2/scrape  scrapesuccesserrorUnknown error occurreddata )	r   poststatus_coder   jsonget	Exceptionr   r	   )r   r   r   r   responsebodydocument_data
normalizeds           r   r!   r!      s      +C99999999G[[w77777777Hs""h111==??D88I E*BCCDDDHHVR((M)-88J!!j!!!r   nodepromptlanguagetimeoutoriginjob_idcoder2   r3   )pythonr0   bashr4   r5   c                  K   |r|                                 st          d          |o|                                 }|o|                                 }|s|st          d          d|i}	|r||	d<   |r||	d<   |||	d<   |||	d<   |                     d| d	|	           d {V }
|
j        d
k    rt	          |
d           |
                                }|                    d          s#t          |                    dd                    t          |          }d|v rd|vr|d         |d<   d|v rd|vr|d         |d<   d|v rd|vr|d         |d<   t          di |S )NJob ID cannot be emptyz*Either 'code' or 'prompt' must be providedr3   r7   r2   r4   r5   /v2/scrape/	/interactr    zinteract with scrape browserr"   r#   r$   exitCode	exit_codeliveViewUrllive_view_urlinteractiveLiveViewUrlinteractive_live_view_urlr&   )
r   r   r'   r(   r   r)   r*   r+   dictr
   )r   r6   r7   r2   r3   r4   r5   has_code
has_promptr   r,   r-   r/   s                r   interactrG   (   s       3 31222$

H*FLLNNJ GJ GEFFF 	HG   #"$	"[[!@v!@!@!@'JJJJJJJJHs""h(FGGG==??D88I E*BCCDDDdJZKz$A$A",Z"8
;
""j'H'H&0&?
?#:--2MU_2_2_2<=U2V
./!//J///r   c                 n  K   |r|                                 st          d          |                     d| d           d {V }|j        dk    rt	          |d           |                                }t          |          }d|v rd|vr|d         |d<   d|v rd	|vr|d         |d	<   t          d
i |S )Nr;   r<   r=   r    zstop interactionsessionDurationMssession_duration_mscreditsBilledcredits_billedr&   )r   r   deleter(   r   r)   rD   r   )r   r6   r,   r-   r/   s        r   stop_interactionrN   W   s        3 31222]]#B#B#B#BCCCCCCCCHs""h(:;;;==??DdJj((-B*-T-T,67J,K
()*$$)9)K)K'1/'B
#$ ..:...r   c                 2   K   t          | |           d{V S z(Deprecated alias for stop_interaction().NrN   r   r6   s     r   stop_interactive_browserrS   l   *      
 "&&111111111r   c          	      >   K   t          | ||||||           d{V S )z Deprecated alias for interact().r1   N)rG   )r   r6   r7   r2   r3   r4   r5   s          r   scrape_executerV   t   sR                r   c                 2   K   t          | |           d{V S rP   rQ   rR   s     r   delete_scrape_browserrX      rT   r   )N)typingr   r   r   r   typesr   r	   r
   r   utils.normalizer   utils.error_handlerr   utils.validationr   r   utils.http_client_asyncr   strr   r!   intrG   rN   rS   rV   rX   r&   r   r   <module>ra      s   / / / / / / / / / / / /            8 7 7 7 7 7 8 8 8 8 8 8 O O O O O O O O 6 6 6 6 6 6
 
s 
Xm5L 
X\]`be]eXf 
 
 
 

" 
" 
"s 
"Xm=T 
"`h 
" 
" 
" 
"  ,0
 !28! ,0 ,0 ,0,0,0 3-,0
 SM,0 ./,0 c],0 SM,0 ,0 ,0 ,0 ,0^/// / / / /*222 2 2 2 2 
 !28!    3-
 SM ./ c] SM    ,222 2 2 2 2 2 2r   