
    h                     f    d dl Z d dlZd dlZd dlmZ d dlmZmZ d dlm	Z	 d dl
mZ  G d de      Zy)    N)UUID)BaseCommandCommandError)scrape_all_sources)SourceNetworkc                       e Zd ZdZd Zd Zy)Commandu^   Uruchamia scraper Playwright dla źródeł (po id lub name, wielkość liter nie ma znaczenia)c                    |j                         }|j                  dt        d d       |j                  dt        d d       |j                  dt        d d       |j                  dd	d
d       |j                  dt        dddgd       y )Nz--source_idu   UUID źródła (opcjonalnie))typedefaulthelpz--source_nameu/   Nazwa źródła (opcjonalnie, case-insensitive)z--paramsz'Parametry w formacie JSON (opcjonalnie)z
--headless
store_trueFzUruchom bez UI (headless))actionr   r   z--modefetchchecku<   Tryb działania: fetch (domyślnie) lub check (tylko status))r   r   choicesr   )add_mutually_exclusive_groupadd_argumentstr)selfparsergroups      A/var/www/extractly/extractly/management/commands/run_agregator.pyadd_argumentszCommand.add_arguments   s    335=sDGef?dIz{JS$EnoLuSnoH3'SZI[!_ 	 	a    c                 ^   |d   }|d   }|d   }|d   }|d   }d }|r	 t        j                  |      }d }
|rI	 t	        |      }
t        j                  j                  |
      j                         st        d	|
       |rt        j                  j                  |
      }|j                         s t        j                  j                  |      }|j                         st        d| d      |j                         dkD  rX| j                  j                  | j                  j                  d| d|d   j                   d|d   j                    d             |j#                         j                   }
| j                  j                  d|
 d| d| d| d| 
       t%        j&                  t)        |
|||             | j                  j                  | j                  j+                  d             y # t        $ r}	t        d|	       d }	~	ww xY w# t
        $ r t        d      w xY w)N	source_idsource_nameparamsheadlessmodeu    Nieprawidłowy JSON w --params: z-Parametr --source_id nie jest poprawnym UUID.)idu   Nie znaleziono źródła o ID )title__iexact)title__icontainsu#   Nie znaleziono źródła o nazwie 'z' (case-insensitive / partial).   u    Znaleziono wiele źródeł dla 'z'. Wybrane pierwsze: r   z (ID: )u   ▶️ Start: source_id=z, source_name=z	, params=z, mode=z, headless=)r   r   r!   r    u%   ✅ Agregator zakończył działanie.)jsonloads	Exceptionr   r   
ValueErrorr   objectsfilterexistscountstdoutwritestyleWARNINGtitler"   firstasynciorunr   SUCCESS)r   argsoptionssource_id_optr   
params_rawr    r!   r   esource_uuidqss               r   handlezCommand.handle   sM   ,m,X&
:&v KJ/  T"=1
 !((//;/?FFH"%CK=#QRR &&--K-HB99;"**11;1O99;"%HUt#uvvxxzA~!!$**"4"46{mCXY[\]Y^YdYdXeeklnoplqltltkuuvw#  ((*--K 	4[MP[}\eflemmtuytz  {F  GO  FP  Q  	R 	&VRVaijk$**,,-TUVG  K"%EaS#IJJK  T"#RSSTs"   G8 H 8	HHHH,N)__name__
__module____qualname__r   r   r?    r   r   r	   r	   	   s    kD	a/Wr   r	   )sysr5   r'   uuidr   django.core.management.baser   r   link_agregator.source_managmentr   extractly.modelsr   r	   rC   r   r   <module>rI      s(    
    A > *=Wk =Wr   