
    xh                     x    d Z ddlZddlZddlmZ ddlmZ ddlZddlZd Z	d Z
d Zedk    r e             dS dS )	z?
Post-process AliExpress products to extract store information
    N)sync_playwright)BeautifulSoupc                 ~   	 t          d|            |                     |dd           |                     d           |                                 }t	          |d          }dddd}|                    d	 
          }|D ]o}|                    d          }|rV|                    d          }|                    dd          }	|r||d<   |	r|		                    d          sd|	z   }	|	|d<    np|                    d 
          }
|
D ]}|                    dd          }d|v rMt          j        d|          }|r6|                    d          }|	                    d          sd|z   }||d<    nV|                    d          }|r>|                    d          r)|d         }|	                    d          sd|z   }||d<    n|d         r|d         sg d}|D ]{}|                    |          }|rb|d         s|                    d          |d<   |d         s7|                    dd          }|r|	                    d          sd|z   }||d<    n|t          d|d         dd          d|d         rdnd             |S # t          $ r%}t          d!| d"|            ddddcY d}~S d}~ww xY w)#z-Extract store information from a product pageu   🔍 Processing: i`  domcontentloaded)timeout
wait_untili  lxml )store
store_link
store_logoc                 0    | o|                      d          S )Nzstore-info--name-
startswithxs    A/mnt/lnkx/var/www/html/shopify-api/resources/py/fix_store_info.py<lambda>z6extract_store_info_from_product_page.<locals>.<lambda>   s    Q=d1<<PcCdCd     )class_aT)striphrefr   zhttps:r   c                 0    | o|                      d          S )Nzstore-info--logor   r   s    r   r   z6extract_store_info_from_product_page.<locals>.<lambda>2   s    Q=c1<<PbCcCc r   stylezbackground-imagez,background-image:\s*url\(["\']?(.*?)["\']?\)   r   imgsrc)za[href*="/store/"]z.store-name az[class*="store-name"] az[class*="seller"] au   ✅ Store: N   z... | Logo: YesNou   ❌ Error processing z: )printgotowait_for_timeoutcontentr   find_allfindget_textgetr   researchgroup
select_one	Exception)pageproduct_urlr%   soup
store_infostore_name_elementselementstore_link_elem
store_name
store_hrefstore_logo_elements
style_attrmatchlogo_urlimg_elemfallback_selectorsselectorelemr   es                       r   $extract_store_info_from_product_pagerA      s   UA/+//000 			+u9K	LLLd### ,,..Wf--!2FF
 #mm3d3dmee* 	 	G%ll3//O ,55D5AA
,00<<
 5*4Jw' :%00:: ;%-
%:
/9J|, #mm3c3cmdd* 	 	G Wb11J!Z//	"QS]^^ ${{1~~H#..x88 7#+h#6/7J|,E ||E**H HLL// #E?**844 3'(2H+3
<( '" 	*\*B 	" " " / 
 
x00 %g. H.2mm$m.G.G
7+%l3 8#xx33 3(A(A 3#+d?D37
<0E 	oJw/4oo:VbKcBm%%imooppp A A A8k88Q889992R@@@@@@@@As   J
J 
J<J71J<7J<c           
      F   t          d           t          d           	 t          | dd          5 }t          j        |          }ddd           n# 1 swxY w Y   t          dt	          |           d|             nN# t
          $ r t          d	|  d
           Y dS t          j        $ r}t          d|            Y d}~dS d}~ww xY wt                      5 }|j        	                    ddg d          }|
                                }d}t          |d          D ]-\  }}	|	                    dd          }
|
s$t          d| dt	          |           d           B|	                    d          r9|	                    d          r$t          d| dt	          |           d           t          d| dt	          |                      t          ||
          }|d         s|d         s|d         r-|	                    |           |dz  }t          d|            nt          d|            t          j        d           /|                                 ddd           n# 1 swxY w Y   | }	 t          |d d          5 }t          j        ||dd!           ddd           n# 1 swxY w Y   t          d"|            t          d#| dt	          |           d$           dS # t&          $ r}t          d%|            Y d}~dS d}~ww xY w)&z&Fix store information in the JSON fileu#   🚀 Starting Store Information Fixz2==================================================rzutf-8)encodingNu   📂 Loaded z products from u	   ❌ File z not found!u   ❌ Error parsing JSON: zchrome-dataF)z--disable-gpuz--no-sandboxz--disable-dev-shm-usagez---disable-blink-features=AutomationControlledz--disable-web-security)headlessargsr   r   linkr
   u   ⚠️  Product /z: No product link foundr   r   u   ⏭️  Product z: Store info already existsu   
🔄 Processing Product r   u   ✅ Updated product u(   ⚠️  No store info found for product    w)indentensure_asciiu   
✅ Updated JSON saved to: u   📊 Successfully updated z	 productsu   ❌ Error saving file: )r"   openjsonloadlenFileNotFoundErrorJSONDecodeErrorr   chromiumlaunch_persistent_contextnew_page	enumerater)   rA   updatetimesleepclosedumpr.   )json_file_pathfproductsr@   pbrowserr/   updated_countiproductproduct_linkr2   output_files                r   fix_store_informationrf   h   s    

/000	(OOO	.#888 	$Ay||H	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$KS]]KK>KKLLLL   5.555666   ,,,---
 
		 ,a*66   7 

 

 !!#Ha00 	 	JAw";;vr22L SSSS]]SSSTTT {{7## L(A(A WWWS]]WWWXXXBqBB3x==BBCCC >dLQQJ '" Fj&> F*\BZ Fz***"0Q001111DDDEEE JqMMMMY, , , , , , , , , , , , , , ,^ !K-+sW555 	AIh!%@@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A;k;;<<<S=SS3x==SSSTTTTT - - -+++,,,,,,,,,-s   B AB AB A%B C!C/CCF	I22I69I6 K9 J7+K9 7J;;K9 >J;?8K9 9
L LL c                      t          t          j                  dk    rt          j        d         } nd} t          d|             t	          |            dS )zMain functionr   z!aliexpress_trending_products.jsonu   🎯 Target file: N)rP   sysargvr"   rf   )	json_files    r   mainrk      sR    
38}}qHQK		7		
*y
*
*+++)$$$$$r   __main__)__doc__rN   rh   playwright.sync_apir   bs4r   rX   r*   rA   rf   rk   __name__ r   r   <module>rr      s      



 / / / / / /        				WA WA WAtI- I- I-X% % % zDFFFFF r   