
    wi$5                     ~   d dl Z d dlmZ d dlmZ d dlmZmZ d dlm	Z	  e	       Z
d dlmZ  G d de      Z G d	 d
e      Z G d dej                        Z G d dej                        Z G d dej                        Z G d dej                        Z G d dej                        Z G d dej                        Z G d dej                        Z G d dej                        Z G d dej                        Z G d dej                        Z G d d ej                        Z G d! d"ej                        Zy)#    N)settings)models)NetworkMonitoringAbstractModel%NetworkMonitoringAbstractUpdateStatus)get_user_model)transactionc                       e Zd Zy)AdsN__name__
__module____qualname__     &/var/www/extractly/extractly/models.pyr
   r
          r   r
   c                       e Zd Zy)	AdsManualNr   r   r   r   r   r      r   r   r   c                      e Zd Z ej                  eej                  d      Z ej                  d      Z	 ej                  dd      Z ej                  d      Zg dZ ej                  dedd	      Z ej                   dd      Zy
)DataManagementNetworkMonitoring_ad	on_deleterelated_nameFdefaultTnullblank))pcPC)zhously.spacezHously Server)serverSerwvr2   )
max_lengthchoicesr   r   N)r   r   r   r   OneToOneFieldr
   CASCADEsourceBooleanFieldisSendToMainServer	DateFieldlisting_dateisMergedDOWNLOAD_CHOICES	CharFieldDownloadManagmentPositiveIntegerFieldworker_numberr   r   r   r   r      s    !V!!#NdeF,,,U;#6##T:L"v""51H )(( 	 0F//TFMr   r   c                      e Zd Z ej                  dej                  d      Z ej                  d      Z	 ej                  d      Z
 ej                  d      Z ej                         Z ej                  d      Z ej                  d	      Z ej"                  e      Z ej                  d
d      Z ej"                  e      Z ej,                  d      Z ej,                  d      Z ej2                  dd      Z ej                  d
dd      Z ej2                  d      Zed        ZddZd Z y)SourceNetworkTF)primary_keyr   editable   r%   portalr   d   r   @    r%   r   r   r%   r   r   auto_now_addc                 :    t        | d      xr | j                  d uS )Nhtml_config)hasattrrD   selfs    r   has_html_configzSourceNetwork.has_html_config@   s!     t]+L0@0@0LLr   Nc                 z   t        j                         5  t        j                  j	                  |       j                  d      j                         }|r|j                  dz   nd}t        j                  j                  | || j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                   | j"                  | j$                  | j&                  | j(                  | j*                  ||       | j-                          d d d        y # 1 sw Y   y xY w)N)r)   -version   )r)   versiontitletypenamebase_url	structureskip_when_lessparams
pagination	selectorsis_aienabledlast_checkedlast_statusauthorcomment)r   atomicNetworkSourceVersionobjectsfilterorder_byfirstrL   createrM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   save)rG   userr[   last_versionnew_version_numbers        r   save_with_versionzSourceNetwork.save_with_versionE   s    !/77>>d>KTTU_`ffhL?K,"6"6":QR !((//*jjYYYY..#22{{??..jj!.. ,,# 0 * IIK7 "!!s   DD11D:c                     | j                   S )N)rM   rF   s    r   __str__zSourceNetwork.__str__b   s    zzr   )Nr>   )!r   r   r   r   	UUIDFielduuiduuid4idr0   rM   rN   rO   URLFieldrP   rQ   r2   rR   	JSONFielddictrS   rT   rU   r*   rV   rW   DateTimeFieldrX   rY   
created_atpropertyrH   rg   ri   r   r   r   r5   r5   +   s<   			dDJJ	OBF,E6H-D6s+Dv H   C0I0V00d;NVd+F!!!R<J   .IF-E!f!!$/G'6''T>L"&""bbIK%%%48J M M:r   r5   c                   b   e Zd Z ej                  eej                  d      Z ej                  d      Z	 ej                  d      Z
 ej                  d      Z ej                  ed	      Z ej                  ed	      Z ej                  ed	      Z ej                  ed	      Zd
 Zy)
SourceHtmlrD   r   r:   r   r8   r9   r;   Tr   r   c                 4    d| j                   j                   S NzHTML config for r)   rM   rF   s    r   ri   zSourceHtml.__str__p       !$++"3"3!455r   N)r   r   r   r   r'   r5   r(   r)   r0   rN   rM   rO   ro   listactionsrp   rU   inactiveraw_data_setupri   r   r   r   ru   ru   f   s    !V!!-6>>XefF6H-DF,E6s+Dft48G   T:IvD9H%V%%d$?N6r   ru   c                      e Zd Z ej                  eej                  ddd      Z ej                  eej                  ddd      Z	 ej                  d      Z ej                  d      Z ej                  d      Z ej                  edd	      Z ej                  edd	      Z ej                  edd	      Z ej                  edd	      Z ej                  edd	      Z ej                  d
dd	      Zd Zy)SourceManualmanual_data_source_fetcherT)r   r   r   r   manual_html_sourcer8   r9   r;   r   )r   r   r   r:   c                 4    d| j                   j                   S rx   ry   rF   s    r   ri   zSourceManual.__str__   rz   r   N)r   r   r   r   r'   r5   r(   r)   ru   html_sourcer0   rM   rO   r*   enablero   r{   r|   rp   rulesrU   transferredr}   rN   ri   r   r   r   r   r   t   s   !V!!-6>>Xt  }A  HL  MF&&&&zV^^Znvz  BF  GKF,E6s+D V  .Fft4dCGFTDAE, !  TEIJ #&""4t$GK  vDtDH0 6HDtDD6r   r   c                   .   e Zd Z ej                  eej                  d      Z ej                  d      Z	 ej                         Z ej                  d      Z ej                  d      Z ej                         Z ej                  d      Z ej                  d	      Z ej$                  e      Z ej                  d
d      Z ej$                  e      Z ej$                  ed      Z ej0                  d      Z ej0                  d      Z ej6                  dd      Z ej                  d
dd      Z ej6                  d      Z ej                  eej@                  dd      Z! ejD                  dd      Z# G d d      Z$d Z%y)r]   versionsr   r:   r   r8   r9   r;   Tr<   r=   r>   r?   rv   r   r@   rA   r   r   r   r   r   c                       e Zd ZddgZy)NetworkSourceVersion.Metaz-created_atrJ   N)r   r   r   orderingr   r   r   Metar      s    !:.r   r   c                 L    | j                   j                   d| j                   S )Nz v)r)   rM   rL   rF   s    r   ri   zNetworkSourceVersion.__str__   s"    ++##$Bt||n55r   N)&r   r   r   r   
ForeignKeyr5   r(   r)   r0   rN   r2   rL   rM   rO   rn   rP   rQ   rR   ro   rp   rS   rT   rU   html_selectorsr*   rV   rW   rq   rX   rY   rr   UserSET_NULLrZ   	TextFieldr[   r   ri   r   r   r   r]   r]      s   V}U_`F6H-D)f))+GF,E6s+Dv H   C0I0V00d;NVd+F!!!R<J   .I%V%%d$?NF-E!f!!$/G'6''T>L"&""bbIK%%%48JVtvTQUVFfT26G/ /6r   r]   c                       e Zd Z ej                  eej                        Z ej                  dd      Z	 ej                  ddd      Z ej                  d      Zy)	NetworkSourceErrorr   Tr>   r   r8   r@   rA   N)r   r   r   r   r   r5   r(   r)   r   error_messager0   
error_typerq   rr   r   r   r   r   r      sV    V}GF$F$$4<M!!!SbIJ%%%48Jr   r   c                      e Zd Z ej                  eej                        Z ej                  d      Z	 ej                  ddd      Z
 ej                  ddd      Z ej                  ed	      Z ej                         Z ej                          Z ej                   dd
      Z ej                   dd      Z ej                  ed      Z ej                  ed      Z ej.                  d      Z ej2                  d      Z ej2                  d      Z ej2                  d      Z ej:                  eej>                  dd      Z  ej:                  e!ej>                  dd      Z" ej.                  dd      Z# ej                  ed	      Z ej2                  d      Z$ ej2                  d      Z% ej.                  d      Z& G d d      Z'y)NetworkMonitoredPager   r;   r9   r8   T)r%   r   r      )r%   r   r   )r   r   r>   r   r   r   rv   rA   r   Fr   r   c                       e Zd ZdZy)NetworkMonitoredPage.Meta)r)   urlNr   r   r   unique_togetherr   r   r   r   r         +r   r   N)(r   r   r   r   r   r5   r(   r)   r0   rO   estate_type
offer_typero   rp   metar   r   htmlsliced_htmlraw_datar{   image_links
parse_datarq   date_fetchedr*   
is_fetchedis_raw_datais_completer'   r
   r   
network_adr   network_ad_manualinactive_date	is_activecheck_activerr   r   r   r   r   r   r     s   V}GF6s+D"&""cDIK!!!Rd$GJ6Dt4D
&


C6D"&""r:Kvd6H"&""4t<K!!!$d;J'6''T:L$$$T2J%&%%e4K%&%%e4K%%%cV__4W[\J,,,Y&//X\dhi(F((d$?M6Dt4D###D1I&6&&u5L%%%48J, ,r   r   c                       e Zd Z ej                  eej                        Z ej                  dd      Z	 ej                  ddd      Z ej                  d      Zy)	NetworkPageErrorr   Tr>   r   r8   r@   rA   N)r   r   r   r   r   r   r(   network_pager   r   r0   r   rq   rr   r   r   r   r   r   #  sW    $6$$%9V^^TL$F$$4<M!!!SbIJ%%%48Jr   r   c                   4   e Zd Zg dZ ej
                  eej                  d      Z ej
                  e	ej                        Z
 ej                  d      Z ej                  ddd	
      Z ej                  d      Z ej                  ded      Z ej                   dd	      Z ej                  ddd	
      Z ej&                  d      Z ej&                  d      Z ej,                  dd      Z ej0                  d      Z G d d      Zd Zy)ManualParserLog))errorzError - Failed to Parse)intentionalzIntentional - Skipped by Rules)r}   zInactive - Detected as Expired)
validationz$Validation - Field Length/Type Error)no_datazNo Data - Empty parsed_datamanual_parser_logsr   r   r;   r9   r8   Tr>   r@     r   r   )r%   r&   r   r   i  Fr   r   rA   c                       e Zd Z ej                  ddg       ej                  ddg       ej                  dg      gZy)ManualParserLog.Meta	skip_typerr   )fieldssource_namesaved_to_ads_manualN)r   r   r   r   Indexindexesr   r   r   r   r   C  sA    FLLl ;<FLL <=FLL!6 78
r   r   c                 Z    d| j                    d| j                   d| j                  d d  S )N[z] z - r$   )r   r   r   rF   s    r   ri   zManualParserLog.__str__J  s1    4>>""T%5%5$6c$((3B-IIr   N)r   r   r   SKIP_TYPE_CHOICESr   r   r   r(   r   r5   r)   r0   r   domainr   r   r   r   error_summaryr*   parsed_successfullyr   ro   field_errorsrq   rr   r   ri   r   r   r   r   r   *  s    %6$$%9V^^bvwLV}GF"&""c2KVD"EF
&

d
+C   B8ISZ[I$F$$4<M$F$$4LM-&--e<-&--e<#6##$T:L%%%48J
 
Jr   r   c                      e Zd Z ej                  eej                        Z ej                  eej                        Z	 ej                  d      Z ej                  dd      Z ej                  d      Z G d d      Zd	 Zy
)NetworkMonitoredObserver   Fr   Tr   rA   c                       e Zd ZdZy)NetworkMonitoredObserve.Meta)pagerd   Nr   r   r   r   r   r   U  s    *r   r   c                 L    | j                    d| j                  j                   S )Nz obserwuje )rd   r   r   rF   s    r   ri   zNetworkMonitoredObserve.__str__X  s    ))K		77r   N)r   r   r   r   r   r   r(   r   r   rd   r*   
is_observerq   last_scrapedrr   r   ri   r   r   r   r   r   N  sz    61V^^LD6TV^^<D$$$U3J'6''T>L%%%48J+ +8r   r   c                       e Zd Z ej                         Z ej                  dej                  d      Z ej                  d      Z
 ej                  d      Z G d d      Zy)	RawMonitoredLinkr5   T)r   r   rA   r   c                       e Zd ZdZy)RawMonitoredLink.Metar   r)   Nr   r   r   r   r   r   c  r   r   r   N)r   r   r   r   r0   r   r   r(   r)   rq   agregate_atr*   to_checkr   r   r   r   r   r   ]  sZ    
&


CV&..tTF&&&&D9K"v""40H, ,r   r   c                       e Zd Z ej                  dd      Z ej                  dej                        Z G d d      Z	y)	NetworkStatusr   T)r%   uniquer5   r   c                       e Zd ZdZy)NetworkStatus.Metar   Nr   r   r   r   r   r   x  r   r   r   N)
r   r   r   r   rn   r   r   r(   r)   r   r   r   r   r   r   t  s6    
&//T$
7CV&..IF, ,r   r   )rk   django.confr   	django.dbr   abstractclass.modelsr   r   django.contrib.authr   r   r   r
   r   Modelr   r5   ru   r   r]   r   r   r   r   r   r   r   r   r   r   <module>r      s       f . !
	
( 		. 	GV\\ G28FLL 8v6 6g66<< g6R66<< 6<9 9,6<< ,>9v|| 9!Jfll !JH8fll 8,v|| ,.,FLL ,r   