
    _j                        S SK JrJrJrJr  SSKJrJrJrJ	r	  SSK
Jr  SSKJr  SSKJrJr  SSKJr  SS	\S
\\   S\\\4   4S jjrSS\S	\S
\\   S\4S jjr SSSSSS.S\S\S\\   S\\   S\S   S\\   S\\   S\4S jjjrS\S\S\	4S jrS\S\S\	4S jr SSSSSS.S\S\S\\   S\\   S\S   S\\   S\\   S\4S jjjrS\S\S\	4S jrg)    )OptionalDictAnyLiteral   )ScrapeOptionsDocumentBrowserExecuteResponseBrowserDeleteResponse)normalize_document_input)handle_response_error)prepare_scrape_optionsvalidate_scrape_options)AsyncHttpClientNurloptionsreturnc                    #    U (       a  U R                  5       (       d  [        S5      eSU R                  5       0nUb1  [        U5      nUb#  [        U5      nU(       a  UR	                  U5        U$ 7f)NzURL cannot be emptyr   )strip
ValueErrorr   r   update)r   r   payload	validatedoptss        T/home/rurouni/.local/lib/python3.13/site-packages/firecrawl/v2/methods/aio/scrape.py_prepare_scrape_requestr      sb     ciikk.//$ciik2G+G4	 ))4Dt$Ns   A0A2clientc                 v  #    [        X5      I S h  vN nU R                  SU5      I S h  vN nUR                  S:  a  [        US5        UR	                  5       nUR                  S5      (       d  [        UR                  SS5      5      eUR                  S0 5      n[        U5      n[        S0 UD6$  N N7f)	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9G[[w77Hs"h1==?D88I*BCDDHHVR(M)-8J!j!! :7s    B9B5B9B7B
B97B9nodepromptlanguagetimeoutoriginjob_idcoder1   r2   )pythonr/   bashr3   r4   c                  #    U(       a  UR                  5       (       d  [        S5      eU=(       a    UR                  5       nU=(       a    UR                  5       nU(       d  U(       d  [        S5      eSU0n	U(       a  X)S'   U(       a  X9S'   Ub  XYS'   Ub  XiS'   U R                  SU S	3U	5      I S h  vN n
U
R                  S
:  a  [	        U
S5        U
R                  5       nUR                  S5      (       d  [        UR                  SS5      5      e[        U5      nSU;   a  SU;  a  US   US'   SU;   a  SU;  a  US   US'   SU;   a  SU;  a  US   US'   [        S0 UD6$  N7f)NJob ID cannot be emptyz*Either 'code' or 'prompt' must be providedr2   r6   r1   r3   r4   /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   r5   r6   r1   r2   r3   r4   has_code
has_promptr   r+   r,   r.   s                r   interactrF   (   ss     122$

H*FLLNJJEFF 	HG "$	"[[;vhi!@'JJHs"h(FG==?D88I*BCDDdJZKz$A",Z"8
;
"j'H&0&?
?#:-2MU_2_2<=U2V
./!/J// Ks   B4E,6E*7B4E,c                 j  #    U(       a  UR                  5       (       d  [        S5      eU R                  SU S35      I S h  vN nUR                  S:  a  [	        US5        UR                  5       n[        U5      nSU;   a  SU;  a  US   US'   SU;   a  S	U;  a  US   US	'   [        S
0 UD6$  Nn7f)Nr:   r;   r<   r   zstop interactionsessionDurationMssession_duration_mscreditsBilledcredits_billedr%   )r   r   deleter'   r   r(   rC   r   )r   r5   r+   r,   r.   s        r   stop_interactionrM   W   s      122]][	#BCCHs"h(:;==?DdJj(-B*-T,67J,K
()*$)9)K'1/'B
#$ .:.. Ds   A B3B1A/B3c                 4   #    [        X5      I Sh  vN $  N7fz(Deprecated alias for stop_interaction().NrM   r   r5   s     r   stop_interactive_browserrR   l        
 "&1111   c          
      <   #    [        U UUUUUUS9I Sh  vN $  N7f)z Deprecated alias for interact().r0   N)rF   )r   r5   r6   r1   r2   r3   r4   s          r   scrape_executerV   t   s3         s   c                 4   #    [        X5      I Sh  vN $  N7frO   rP   rQ   s     r   delete_scrape_browserrX      rS   rT   )N)typingr   r   r   r   typesr   r	   r
   r   utils.normalizer   utils.error_handlerr   utils.validationr   r   utils.http_client_asyncr   strr   r    intrF   rM   rR   rV   rX   r%       r   <module>rb      s   / /  8 8 O 6
s 
Xm5L 
X\]`be]eXf 

" 
"s 
"Xm=T 
"`h 
"  ,0
 !28! ,0,0,0 3-,0
 SM,0 ./,0 c],0 SM,0 ,0^/// /*222 2 
 !28!  3-
 SM ./ c] SM ,222 2ra   