
    :h!                        d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlZddZi fdZdd	Z	 d d
lmZ ddZy)    )annotationsN)BeautifulSoup)sync_to_async)ContentType)loggerc                8  K   | j                  |      }|j                          d {   dk(  ry |j                  }|dk(  r*|j                          d {   xs dj	                         S |dk(  r|j                          d {   S |dk(  r|j                  d       d {   S |j                  d      r.|j                  dd	      d	   }|j                  |       d {   S |d
k(  r4dt        j                          d}|j                  |       d {    |S |j                  d      r.|j                  dd	      d	   }|j                  |       d {   S |j                          d {   xs dj	                         S 7 `7 67 
7 7 7 |7 =7 'w)Nr   text_content 
inner_html
outer_htmlze => e.outerHTMLzget_attribute::   
screenshotzscreenshots/z.png)pathz	evaluate:)locatorcountfirstr	   stripr   evaluate
startswithsplitget_attributeuuiduuid4r   )pageselectoractionr   elattrr   js_codes           4/var/www/extractly/html_agregator/utils/selectors.pyget_value_by_actionr"      sr    ll8$G]]_!	Boo''-24466	<	]]_$$	<	[[!3444			+	,||C#A&%%d+++	<	djjl^40mmm&&&			;	',,sA&q)[[)))oo''-24466)  ($4 , 	' *'s   %FF,FF
.FFF!F">F F!6FFA FFF0F1F
FFFFFFFc                
  K   |j                         D ]  \  }}|dk(  rt        |t              ru|j                  d      rc|j                  dg       }|r|rt	        |d      }d}	|D ]U  }
|j                  |
      }t        |      }|D ]  }|j                           t        j                  d| d|
        |	|z  }	W t        j                  d|	 d|        t        |      }d	}nd
}d|v rd|v ri }|j                         D ]  \  }}|dv r|j                  d      }
|j                  dd      }d}|
rk|sit        ||
|       d {   }|t	        |d      }|j                  |
      }|r0|dk(  r|j                         n|j                  j                         }nVd}nS|
rQt	        |d      }|j                  |
      }|r0|dk(  r|j                         n|j                  j                         }nd}|||<    t!        j"                  |d
      } t%        t&        j(                  j*                        |d          d {   }|j-                         }t/        | |d   |        t%        | j0                                d {    nt3        | ||||       d {    t        |t              r d|v sd|v rt5        | |||       d {    |j                  d      }
|j                  d      }|j                  d      }|j                  dd      }|j                  dd
      }|j                  di       j7                         }|j9                  |       d }|
rit        ||
|       d {   }|Tt	        |d      }|j                  |
      }|r0|dk(  r|j                         n|j                  j                         }nd}nd}|r t%        t&        j(                  j*                        |       d {   }|j-                         }|r5||i|} t%        |j(                  j:                        di | d {   }4 t%        |j(                  j                        | j<                         d {   }t/        |||        t%        |j0                                d {    t/        | ||         t%        | j0                                d {    y 7 7 7 b7 M7  7 7 7 7 ~7 Q7 w)Nmergeskip_selectorslxmlr   u   [SKIP] Usunięto u    elementów dla selektora: u   [SKIP] Łącznie usunięto u    elementów w merge bloku: TFcontent_typecontent_field>   r$   r'   r(   r%   r   playwright_actionr	   r
   r   )ensure_ascii
create_newextra_fieldshtml.parser)pk )items
isinstancedictgetr   selectlen	decomposer   infostrr"   
select_onedecodetextr   jsondumpsr   r   objects
get_for_idmodel_classsetattrsaveprocess_selectorsprocess_nested_selector_blockcopyupdatecreateid)objr   selectors_maphtmlparent_extrakeyvaluer%   souptotal_removedr   foundremovedr   force_use_bs4merged_resultsubkeysubvalr)   field_value
merged_strctr@   content_type_idr(   r+   r,   result_valuefieldsinstances                                 r!   rC   rC   &   s    #))+
U'>eT"uyy'9"YY'7<N$$T62 ! .H KK1E!%jG# $KK"3G9<WX`Wa bc!W,M !/ 9-Hcdgchij4y $ %&?e+C "&+kkmNFF!]] %zz*5H(.

3F(W%"$K,?hPa,b&b&.#0v#>D!%!:B!=NR^=^biikdfdkdkdqdqds.0!,T6:!__X69Jl9Z"))+`b`g`g`m`m`oK*,K,7M&)/ '42 "ZZEJ
H=)<)<)G)GH~I^__ nn.U?3Z@-mCHH-///'T5$MMMeT"%(?<SXCX/T5$GGG99Z())N3		/2!II&9>JYY|U3
yy499;L)!4T8EV!WWL#$T=9__X.2C|2S299;Y[Y`Y`YfYfYhL#%LLD}[%8%8%C%CD_UUB..*K'FF!J{/B/B/I/I!J!TV!TT!G{/B/B/F/F!G366!RR->2mHMM2444C5} ,@ "-
!
###A 'c$ ` 0M H X V UR4 $s   E
S?S#C8S?S&AS?S)S?S, /S?S/B"S?2S23BS?;S5<AS? S79S?:S9;.S?)S;*3S?S=S?&S?)S?,S?/S?2S?5S?7S?9S?;S?=S?c                v  K   |j                  d      |j                  dd      |j                  d      d}|j                  dd      }i }|j                         D ]  \  }}	|dv rt        |	t              rd	|	v r|	j                  d|      }
t	        ||	d	   |
       d {   }|Tt        |d
      }|j                  |	d	         }|r0|
dk(  r|j                         n|j                  j                         }nd}|||<   t        |	t              r2d|	v r.t        j                  |	d         }|j                  |       ||<   t        |	t              rt        | ||	||       d {   ||<   |	||<    d }|d   r t        t        j                   j"                        |d          d {   }|j%                         } t        |j                   j&                        di | d {   }|d   | _        |j*                  | _         t        | j.                                d {    |S 7 7 7 7 J7 w)Nr'   r+   FrH   )r'   r+   rH   r)   r	   >   rH   r+   r'   r)   r   r-   r   r
   r   )rI   r/   )r3   r0   r1   r2   r"   r   r9   r:   r;   r   jinja2TemplaterenderrD   r   r   r>   r?   r@   rG   rZ   r.   	object_idrB   )rI   r   configrK   parent_model_info
model_infodefault_actionvaluesrM   valr   rN   rO   r   templater]   rY   r@   s                     r!   rD   rD      s    

>2jju5jjJ
 ZZ 3^DNFLLNSKKc4 Z3%6WW0.AF-dC
OVLLE}$T=9__S_5+1\+ABIIKrww}}EEF3KT"x3s8}5H"//c/2F3KT" =c4dT^ __F3KF3K) #, H,@=!4!4!?!?@NA[\\nn&B{':':'A'ABLVLL(8 %mCHH%'''O5 M ` ]L 	(s\   BH9 H.!CH9%H1&AH9-H3.<H9*H5+<H9'H7(H91H93H95H97H9)UniversalListingParserc                    t        |       }dj                  d |j                  D              }d|j                  i}|j	                  |j
                         ||j                  |dS )N
c              3  4   K   | ]  }|d    D ]  }|   yw)linesNr/   ).0seclns      r!   	<genexpr>z#raw_data_cleaner.<locals>.<genexpr>   s!      )sCLbL)s   description)raw_textimage_links
parse_data)rj   joinraw_sectionsrs   rF   	key_valueru   )rK   parserflat_raw_textrv   s       r!   raw_data_cleanerr|      sn    #D)FII )) M
  !3!34Jf&&' %))!     )r	   )N)rK   r8   returnr2   )
__future__r   r   r_   r<   bs4r   asgiref.syncr   "django.contrib.contenttypes.modelsr   link_agregator.utils.loggerr   rer"   rC   rD   #html_agregator.utils.dynamic_parserrj   r|   r/   r}   r!   <module>r      sI    "     & : . 	74 JL a$H(Z Gr}   