Ë
    ÂÛjl“  ã            
       óˆ  — d dl Z e j                  j                  d d«       d dlZd dlmZmZmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZmZ  ej"                  e«      Z e	j(                  dd	¬
«      ddedededefd„«       Z e	j(                  dd	¬
«      ddedededefd„«       Zdd„Zd„ Zdedefd„Zd„ Zdd„Zd„ Z d„ Z!d d„Z"y)!é    Nú/var/www/html/metafoliadorv2)Úbuild_index_xml_contentÚcompute_and_update_hashÚupload_index_xml_to_alfresco)Ú
celery_app)ÚSessionLocal)Únow)ÚisoÚ	parse_isoÚsync_site_foldersT)ÚnameÚbindÚsite_idÚdeepÚgenerate_indexÚdb_urlc                 óÜ  ‡‡‡5‡6‡7‡8‡9‡:‡;— dd l }dd l}|j                  j                  dd«       ddlm}m} ddlm}	 ddl	m
}
 ddlm} ddlm} ddlmŠ5 dd	lm} dd
lm} ddlm} dd l}|s|j0                  } ||«      }|j3                  |d|
«        |	dd|¬«      } |«       Š8| j4                  j6                  }dd	lm} ‰8j9                  |«      j;                  |j<                  |k(  «      j?                  «       }|r#|j@                  s‰|_         ‰8jC                  «        	 ‰8j9                  |«      j;                  |j6                  ‰k(  «      j?                  «       }|s$tE        ‰8|ddd«       dddœ‰8jG                  «        S |jH                  s$tE        ‰8|ddd«       dddœ‰8jG                  «        S ‰8j9                  |«      j;                  |j6                  |jJ                  k(  «      j?                  «       Š7‰7r$‰7jL                  r‰7jN                  r‰7jP                  s$tE        ‰8|ddd«       dddœ‰8jG                  «        S  |‰7jP                  «      }|jS                  ‰7jN                  |«      Š6tE        ‰8|ddd|jT                  › �«       dŠ9dŠ;dŠ:d=ˆ5ˆ6ˆ7ˆ8ˆˆˆ9ˆ:ˆ;f	d„	}|jW                  dd¬«      5 }tE        ‰8|ddd|jT                  › d�«        |||jH                  |jX                  xs d|jT                  › �dd ¬!«      }|}t[        d"„ |D «       d «      }|r¬|j]                  d#d$«      }|j]                  d%d$«      }|j]                  d&d$«      }tE        ‰8|ddd'«        ||||d«      }‰8j9                  ‰5«      j;                  ‰5j6                  |k(  «      j?                  «       } | rt_        «       | _0        ‰8jC                  «        |D ]  }!tc        ‰8|‰6‰7jd                  |!d%   ‰«       Œ! ‰8jC                  «        tg        |«      }"tE        ‰8|dd|"› d(�«       |�rv|�rsti        |«      D �]c  \  }#}$|$j]                  d#d$«      }|$j]                  d%d$«      }|$j]                  d&d$«      }|"dkD  rtk        |#|"z  d)z  «      nd*}%|%dk  rd}%|%d+kD  rd+}%tE        ‰8|d|%d,tm        |#dz   «      z   d-z   tm        |"«      z   d.z   |z   «       ||d/fg}&tg        |&«      }'d}(|&sŒ¬|&jo                  d«      \  })}*}+ |||)|*|+«      },|&jq                  |,D �-cg c]  }-|-d%   |-d&   |+dz   f‘Œ c}-«       |(dz  }(|"dkD  r`d0|"z  }.|%tk        |.|(ts        |'d«      z  z  «      z   }/|/|%kD  r8|/d)k  r3tE        ‰8|d|/d,tm        |#dz   «      z   d-z   tm        |"«      z   d.z   |z   «       |&rŒ¸�Œf n€|s~ti        |«      D ]p  \  }#}$|$j]                  d#d$«      }|"dkD  rtk        |#|"z  d)z  «      nd*}0|0dk  rd}0|0d+kD  rd+}0tE        ‰8|d|0d,tm        |#dz   «      z   d-z   tm        |"«      z   d.z   |z   «       Œr d d d «       ‰rátE        ‰8|dd1d2‰«       ‰8j9                  ‰5j6                  «      j;                  ‰5j@                  ‰k(  ‰5jt                  dk(  «      jw                  «       }1tg        |1«      }2ti        |1«      D ]e  \  }#\  }3|#d*z  dk(  r>d1tk        d|#z  ts        |2d«      z  «      z   }0tE        ‰8|dty        |0d+«      d3|#› d-|2› �‰«       t{        ‰8|3‰7jd                  ‰6«       Œg t_        «       |_>        ‰8jC                  «        tE        ‰8|d4d)d5‰9› d6‰;› d7�«       d ‰9‰;‰:d8œ‰8jG                  «        S c c}-w # 1 sw Y   �Œ>xY w# t~        $ rt}4t€        jƒ                  d9‰› d:|› d.|4› �«       tE        ‰8|ddd;tm        |4«      d d< › �«       ‰8j…                  «        dtm        |4«      dœcY d }4~4‰8jG                  «        S d }4~4ww xY w# ‰8jG                  «        w xY w)>Nr   r   ©Úcreate_engineÚevent©Úsessionmaker©Ú_set_session_utc©ÚAlfrescoSite©ÚAlfrescoConnection©ÚAlfrescoFolder©ÚSyncProgress©Údecrypt_credential©ÚsettingsÚconnectF©Ú
autocommitÚ	autoflushr   ÚerrorzSitio no encontrado)Úokr+   zSitio sin root_folder_idzroot_folder_id no configuradoúConexion no disponibleÚrunningé   zConectando a Alfresco: c                 óH  •	— ‰j                   › d|› d�}g }d}t        «       }d}	d}
	 |› d|
› d�}| j                  |‰¬«      }|j                  dk7  rd	}	�nã|j	                  «       j                  d
i «      }|j                  dg «      }t        |«      }|j                  di «      }|j                  dd	«      }|D �]m  }|j                  di «      }|j                  dd«      }|j                  dd«      }|dz  }|j                  d«      rë|› d|› �}|j                  dd«      }|j                  dd	«      }‰ j                  ‰«      j                  ‰j                  |k(  «      j                  «       }|r1||_
        ||_        ||_        ||_        t        «       |_        ‰%dz  Š%n5|rd n|} ‰|‰"||||||t        «       ¬«	      }‰ j!                  |«       ‰#dz  Š#‰$dz  Š$|j#                  ||||dœ«       �Œ;|j                  d«      s�ŒN|j!                  |«       t%        ‰ |||‰"«       �Œp |s|dk  rn|
|z  }
�Œ|	rt'        ‰ ||‰j                   ‰‰!«       nt(        j+                  d|› d�«       |D ]  }t-        ‰ | ‰‰j                   |d   ‰"«       Œ! ‰ j/                  «        |S )Nú9/alfresco/api/-default-/public/alfresco/versions/1/nodes/ú	/childrenr   Tú?maxItems=500&skipCount=ú&include=properties,aspectNames©ÚauthéÈ   FÚlistÚentriesÚ
paginationÚhasMoreItemsÚentryÚidÚ r   é   ÚisFolderú/ÚnodeTypeÚhasChildren©	r=   r   Ú	parent_idr   Ú	node_pathÚfolder_typeÚhas_childrenÚlevelÚ	synced_at©r=   r   ÚpathrH   ÚisFileéô  z$fetch_children_sync: error listando ú+, se omite deteccion de archivos eliminados)Úbase_urlÚsetÚgetÚstatus_codeÚjsonÚlenÚqueryÚfilterr=   Úfirstr   rF   rG   rH   ÚtznowrJ   ÚaddÚappendÚ_upsert_fileÚ_mark_deleted_filesÚloggerr+   Ú_check_index_xmlÚcommit)&ÚclientrE   Úparent_pathrI   Úroot_parentÚchildren_baseÚresultsÚsort_idxÚalfresco_file_idsÚfetch_okÚ
skip_countÚchildren_urlÚrespÚdatar9   Úcountr:   Úhas_morer<   ÚchildÚchild_idÚ
child_nameÚ
child_pathÚ
child_typerH   ÚexistingÚactual_parentÚfÚrr    r6   ÚconnÚdbr   r   Útotal_createdÚtotal_discoveredÚtotal_updateds&                                €€€€€€€€€ú0/var/www/html/metafoliadorv2/app/worker_tasks.pyÚfetch_children_syncz.sync_site_folders.<locals>.fetch_children_syncD   sÑ  ø€ ð  $Ÿ}™}˜oÐ-fÐgpÐfqÐqzÐ{ˆMØˆGØˆHÜ #£ÐØˆHØˆJØØ"/ Ð0HÈÈÐTsÐt�Ø—z‘z ,°T�zÓ:�Ø×#Ñ# sÒ*Ø$�HÙØ—y‘y“{—‘ v¨rÓ2�ØŸ(™( 9¨bÓ1�Ü˜G›�Ø!ŸX™X l°BÓ7�
Ø%Ÿ>™>¨.¸%Ó@�Ø$ó "N�EØ!ŸI™I g¨rÓ2�EØ$Ÿy™y¨¨rÓ2�HØ!&§¡¨6°2Ó!6�JØ ‘M�Hà—y‘y Ô,Ø(3 }°A°j°\Ð%B˜
Ø%*§Y¡Y¨z¸2Ó%>˜
Ø',§y¡y°ÀÓ'F˜à#%§8¡8¨NÓ#;×#BÑ#BÀ>×CTÑCTÐX`ÑC`Ó#a×#gÑ#gÓ#i˜Ù#Ø,6˜HœMØ1;˜HÔ.Ø3=˜HÔ0Ø4@˜HÔ1Ü16³˜HÔ.Ø)¨QÑ.™Má4?©DÀY˜MÙ .Ø#+°WÈØ%/¸:ÐS]Ø-9ÀÜ*/«'ô	!˜Að ŸF™F 1œIØ)¨QÑ.˜Mà(¨AÑ-Ð(ØŸ™¨hÀ
ÐT^Ðp|Ñ'}Ö~ØŸ™ 8Ö,Ø)×-Ñ-¨hÔ7Ü$ R¨°	¸8ÀWÖMðE"NñH   E¨C¢KØØ˜eÑ#�
ñc ñf Ü# B¨	Ð3DÀdÇmÁmÐUYÐ[iÕjä—‘ÐCÀIÀ;ÐNyÐzÔ{àò T�Ü   V¨T°4·=±=À!ÀDÁ'È7ÕSðTà�I‰IŒKØˆNó    éx   ©ÚtimeoutÚverifyé   z.Obteniendo Series, Subseries y Expedientes de ú...z/Sites/r?   T)rc   c              3   ó2   K  — | ]  }|d    dk(  sŒ|–— Œ y­w)r   ÚdocumentLibraryN© )Ú.0Úcs     r}   ú	<genexpr>z$sync_site_folders.<locals>.<genexpr>�   s   è ø€ ÒV °q¸±yÐDUÓ7Uœ1ÑVùs   ‚�r   r>   r=   rL   z@Obteniendo Series, Subseries y Expedientes de documentLibrary...z0 Series, Subseries y Expedientes en primer niveléd   é2   éc   úSerie/Subserie/Exp. rA   ú: é   ç      Y@é_   ú!Generando indices electronicos...ú	Indices: Ú	completedzCompletado: ú
 creados, ú actualizados)r,   ÚcreatedÚupdatedÚtotalz"sync_site_folders failed for site z, task úError: r7   ©F)CÚsysÚosrL   ÚinsertÚ
sqlalchemyr   r   Úsqlalchemy.ormr   Úapp.models.databaser   Úapp.models.alfresco_siter   Úapp.models.alfresco_connectionr   Úapp.models.alfresco_folderr    Úapp.models.sync_progressr"   Úapp.services.auth_servicer$   Ú
app.configr&   ÚhttpxÚdatabase_urlÚlistenÚrequestr=   rV   rW   Útask_idrX   r   r`   Ú_update_progressÚcloseÚroot_folder_idÚconnection_idÚactiveÚusernameÚpassword_hashÚ	BasicAuthr   ÚClientÚroot_folder_pathÚnextrR   rY   rJ   r_   rP   rU   Ú	enumerateÚintÚstrÚpopÚextendÚmaxÚdeletedÚallÚminÚ_generate_index_for_folderÚlast_sync_atÚ	Exceptionr^   r+   Úrollback)<Úselfr   r   r   r   rž   rŸ   r   r   r   r   r   r   r"   r$   r&   rª   ÚengineÚSessionr®   ÚSPÚinitialÚsiteÚpwdr~   ra   Úroot_childrenÚchildrenÚdoclibÚcnameÚcidÚcpathrt   ÚchÚtotal_childrenÚidxro   Úbase_pctÚqueueÚ	sub_totalÚsub_processedÚpidÚppathÚlvlÚ	grandkidsÚgÚstepÚsub_pctÚpctÚall_fidsÚ
total_fidsÚfidÚer    r6   rx   ry   rz   r{   r|   s<    ` `                                                 @@@@@@@r}   r   r      s[  ÿø€ çØ‡H�H‡O�O�AÐ5Ô6ß/Ý+Ý4Ý5ÝAÝ9Ý5Ý<Ý#ÛáØ×&Ñ&ˆÙ˜6Ó"€FØ	‡L�L�˜Ð$4Ô5Ù e°uÀ6ÔJ€GÙ	‹€BØ�l‰l�o‰o€Gõ <Ø�h‰h�r‹l×!Ñ! "§*¡*°Ñ"7Ó8×>Ñ>Ó@€GÙ�w—’Ø!ˆŒØ
�	‰	ŒðmØ�x‰x˜Ó%×,Ñ,¨\¯_©_ÀÑ-GÓH×NÑNÓPˆÙÜ˜R ¨'°1Ð6KÔLØÐ*?Ñ@ðR 	�‰�
ðQ ×"Ò"Ü˜R ¨'°1Ð6PÔQØÐ*IÑJðL 	�‰�
ðI �x‰xÐ*Ó+×2Ñ2Ð3E×3HÑ3HÈD×L^ÑL^Ñ3^Ó_×eÑeÓgˆÙ˜4Ÿ;š;¨d¯mªmÀ4×CUÒCUÜ˜R ¨'°1Ð6NÔOØÐ*BÑCðB 	�‰�
ñ ! ×!3Ñ!3Ó4ˆØ�‰˜tŸ}™}¨cÓ2ˆä˜˜W i°Ð6MÈdÏiÉiÈ[Ð4YÔZð ˆØˆØÐ÷D	õ D	ðL �\‰\ #¨eˆ\Ó4ð 8	R¸Ü˜R ¨)°QÐ:hÐim×irÑirÐhsÐsvÐ8wÔxÙ/°¸×8KÑ8KÈT×MbÑMbÒM{ÐhoÐpt×pyÑpyÐozÐf{Ð}~ð  MQô  RˆMð %ˆHÜÑV mÔVÐX\Ó]ˆFÙØŸ
™
 6¨2Ó.�Ø—j‘j  rÓ*�ØŸ
™
 6¨2Ó.�Ü   W¨i¸Ð<~ÔÙ.¨v°s¸EÀ1ÓE�àŸ8™8 NÓ3×:Ñ:¸>×;LÑ;LÐPSÑ;SÓT×ZÑZÓ\�ÙÜ).«�HÔ&Ø—	‘	”ð ò U�Ü   V¨T°4·=±=À"ÀTÁ(ÈGÕTðUà�I‰IŒKä  ›]ˆNÜ˜R ¨)°Q¸>Ð:JÐJzÐ8{Ô|âšÜ"+¨HÓ"5ó b‘J�C˜Ø!ŸI™I f¨bÓ1�EØŸ)™) D¨"Ó-�CØ!ŸI™I f¨bÓ1�EØDRÐUVÒDVœs C¨.Ñ$8¸CÑ#?Ô@Ð\^�HØ !’|° XØ "’}° hÜ$ R¨°)¸XÐG]Ô`cÐdgÐhiÑdiÓ`jÑGjÐmpÑGpÔsvð  xFó  tGñ  HGð  JNñ  HNð  QVñ  HVô  Wà! 5¨!˜_Ð-�EÜ # E£
�IØ$%�MÚØ*/¯)©)°A«,™˜˜U CÙ$7¸ÀÀUÈCÓ$P˜	ØŸ™ÈYÖ%WÈ q¨¡w°°&±	¸3À¹7Ò&CÒ%WÔXØ%¨Ñ*˜Ø)¨AÒ-Ø#(¨>Ñ#9˜DØ&.´°T¸]ÌSÐQZÐ\]ÓM^Ñ=^Ñ5_Ó1`Ñ&`˜GØ&¨Ò1°gÀ²mÜ 0°°W¸iÈÐRhÔknÐorÐstÑotÓkuÑRuÐx{ÑR{ô  Bð  CQó  Rñ  SRð  UYñ  SYð  \añ  Saô  !bô  ñbñ, Ü"+¨HÓ"5ò R‘J�C˜Ø!ŸI™I f¨bÓ1�EØ?MÐPQÒ?Qœ#˜s ^Ñ3°sÑ:Ô;ÐWY�CØ˜Q’w a Ø˜R’x r Ü$ R¨°)¸SÐBXÔ[^Ð_bÐcdÑ_dÓ[eÑBeÐhkÑBkÔnqð  sAó  oBñ  CBð  EIñ  CIð  LQñ  CQõ  RðR÷g8	Rñt Ü˜R ¨)°RÐ9\Ð^eÔfØ—x‘x × 1Ñ 1Ó2×9Ñ9¸.×:PÑ:PÐT[Ñ:[Ð]k×]sÑ]sÐw|Ñ]|Ó}÷  Bñ  Bó  DˆHÜ˜X›ˆJÜ(¨Ó2ò I‘�‘V�cØ˜‘8˜q’=Øœs 1 s¡7¬S°¸QÓ-?Ñ#?Ó@Ñ@�CÜ$ R¨°)¼SÀÀb»\ÈYÐWZÐV[Ð[\Ð]gÐ\hÐKiÐkrÔsÜ*¨2¨s°D·M±MÀ4ÕHð	Iô
 "›GˆÔØ
�	‰	Œä˜˜W k°3¸,À}ÀoÐU_Ð`mÐ_nÐn{Ð8|Ô}Ø }ÀÐYiÑjð 	�‰�
ùòI &X÷W8	Rñ 8	RûôR ò .Ü�‰Ð9¸'¸À'È'ÈÐRTÐUVÐTWÐXÔYÜ˜˜W g¨q°G¼CÀ»FÀ4ÀC¸L¸>Ð2JÔKØ
�‰ŒØ¤c¨!£fÑ-Ô-à
�‰�
ûð.ûð 	�‰�
ús€   Ä"A] Æ] Æ3A>] ÉA1] Ê3H ]Ó/]Ô]ÔA3]ÖB]ØD&] Ý]Ý]Ý] Ý	_Ý"A_Þ;_Þ<_ ß_ß_ ß_+Úsync_folder_childrenÚ	folder_idc                 ó°  ‡‡.‡/‡0‡1‡2‡3‡4‡5‡6— dd l }dd l}|j                  j                  dd«       ddlm}m} ddlm}	 ddl	m
}
 ddlm} ddlm} ddlmŠ. dd	lm} dd
lm} ddlm} dd l}|s|j0                  } ||«      }|j3                  |d|
«        |	dd|¬«      } |«       Š1| j4                  j6                  }	 ‰1j9                  ‰.«      j;                  ‰.j6                  |k(  «      j=                  «       Š2‰2s#t?        ‰1|ddd«       ddi‰1jA                  «        S ‰1j9                  |«      j;                  |j6                  ‰2jB                  k(  «      j=                  «       }‰1j9                  |«      j;                  |j6                  |jD                  k(  «      j=                  «       Š0‰0r$‰0jF                  r‰0jH                  r‰0jJ                  s#t?        ‰1|ddd«       ddi‰1jA                  «        S  |‰0jJ                  «      }|jM                  ‰0jH                  |«      Š/t?        ‰1|ddd‰2jN                  › d�«       dŠ4dŠ6dŠ5|gŠ3ˆ.ˆ/ˆ0ˆ1ˆ2ˆˆ3ˆ4ˆ5ˆ6f
d„}|jQ                  dd¬«      5 }tS        ‰1|‰/‰0jT                  |‰2jB                  «       ‰1jW                  «         |||‰2jX                  ‰2jZ                  dz   «      }t]        |«      }|�rƒ|�r€t_        |«      D �]p  \  }}|ja                  dd«      }|ja                  dd«      }|ja                  dd«      }|dkD  rtc        ||z  dz  «      nd }|dk  rd}|d!kD  rd!}t?        ‰1|d|d"te        |dz   «      z   d#z   te        |«      z   d$z   |z   «       ||‰2jZ                  d%z   fg} t]        | «      }!d}"| sŒ¹| jg                  d«      \  }#}$}% |||#|$|%«      }&| ji                  |&D �'cg c]  }'|'d   |'d   |%dz   f‘Œ c}'«       |"dz  }"|dkD  r`d&|z  }(|tc        |(|"tk        |!d«      z  z  «      z   })|)|kD  r8|)dk  r3t?        ‰1|d|)d"te        |dz   «      z   d#z   te        |«      z   d$z   |z   «       | rŒ¸�Œs n€|s~t_        |«      D ]p  \  }}|ja                  dd«      }|dkD  rtc        ||z  dz  «      nd }*|*dk  rd}*|*d!kD  rd!}*t?        ‰1|d|*d"te        |dz   «      z   d#z   te        |«      z   d$z   |z   «       Œr d d d «       t]        «      dkD  ‰2_6        to        «       ‰2_8        ‰1jW                  «        ‰rŠt?        ‰1|dd'd(«       t]        ‰3«      }+t_        ‰3«      D ]b  \  }},|d)z  dk(  r=d'tc        d|z  tk        |+d«      z  «      z   }*t?        ‰1|dts        |*d!«      d*|› d#|+› �«       tu        ‰1|,‰0jT                  ‰/«       Œd t?        ‰1|d+dd,‰4› d-‰6› d.�«       d/‰4‰6d0œ‰1jA                  «        S c c}'w # 1 sw Y   ŒøxY w# tv        $ rg}-tx        j{                  d1|› d$|-› �«       t?        ‰1|ddd2te        |-«      d d3 › �«       ‰1j}                  «        ddicY d }-~-‰1jA                  «        S d }-~-ww xY w# ‰1jA                  «        w xY w)4Nr   r   r   r   r   r   r   r   r!   r#   r%   r'   Fr(   r+   z*Serie, Subserie o Expediente no encontrador,   r-   r.   r/   zSincronizando r…   c                 óÄ  •
— ‰j                   › d|› d�}g }d}t        «       }d}d}		 |› d|	› d�}
| j                  |
‰¬«      }|j                  dk7  rd	}�n|j	                  «       j                  d
i «      }|j                  dg «      }t        |«      }|j                  di «      }|j                  dd	«      }|D �]¡  }|j                  di «      }|j                  dd«      }|j                  dd«      }|dz  }|j                  d«      �r|› d|› �}|j                  dd	«      }‰j                  ‰«      j                  ‰j                  |k(  «      j                  «       }|rG||_
        ||_        ||_        t        «       |_        |j                  |k7  r||_        ||_        ‰#dz  Š#nI ‰|‰j"                  ||||j                  dd«      ||t        «       ¬«	      }‰j%                  |«       ‰!dz  Š!‰"dz  Š"‰ j'                  |«       |j'                  ||||dœ«       �Œe|j                  d«      s�Œx|j%                  |«       t)        ‰|||‰j"                  «       �Œ¤ |s|dk  rn|	|z  }	�ŒE|rt+        ‰||‰j                   ‰‰«       nt,        j/                  d|› d�«       |D ])  }t1        ‰| ‰‰j                   |d   ‰j"                  «       Œ+ ‰j3                  «        |S )Nr1   r2   r   Tr3   r4   r5   r7   Fr8   r9   r:   r;   r<   r=   r>   r   r?   r@   rA   rC   rB   rD   rK   rM   rN   zfetch_save: error listando rO   )rP   rQ   rR   rS   rT   rU   rV   rW   r=   rX   r   rF   rH   rY   rJ   rE   rI   r   rZ   r[   r\   r]   r^   r+   r_   r`   )$ra   rE   rb   rI   rd   re   rf   rg   rh   ri   Úurlrk   rl   r9   rm   r:   rn   r<   ro   rp   rq   rr   rH   rt   Úf2rw   r    r6   rx   ry   Úfolderr   Úsynced_folder_idsrz   r{   r|   s$                             €€€€€€€€€€r}   Ú
fetch_savez(sync_folder_children.<locals>.fetch_save
  sð  ø€ à#Ÿ}™}˜oÐ-fÐgpÐfqÐqzÐ{ˆMØˆGØˆHÜ #£ÐØˆHØˆJØØ&˜Ð'?À
¸|ÐKjÐk�Ø—z‘z #¨D�zÓ1�Ø×#Ñ# sÒ*Ø$�HÙØ—y‘y“{—‘ v¨rÓ2�ØŸ(™( 9¨bÓ1�Ü˜G›�Ø!ŸX™X l°BÓ7�
Ø%Ÿ>™>¨.¸%Ó@�Ø$ó $U�EØ!ŸI™I g¨rÓ2�EØ$Ÿy™y¨¨rÓ2�HØ!&§¡¨6°2Ó!6�JØ ‘M�Hà—y‘y Õ,Ø(3 }°A°j°\Ð%B˜
Ø',§y¡y°ÀÓ'F˜à#%§8¡8¨NÓ#;×#BÑ#BÀ>×CTÑCTÐX`ÑC`Ó#a×#gÑ#gÓ#i˜Ù#Ø,6˜HœMØ1;˜HÔ.Ø4@˜HÔ1Ü16³˜HÔ.Ø'×1Ñ1°YÒ>Ø5> Ô 2Ø16 ¤Ø)¨QÑ.™Má!/Ø#+°V·^±^ÈyØ%/¸:Ø,1¯I©I°jÀ"Ó,EØ-9ÀÜ*/«'ô"˜Bð ŸF™F 2œJØ)¨QÑ.˜Mà(¨AÑ-Ð(Ø)×0Ñ0°Ô:ØŸ™¨hÀ
ÐT^Ðp|Ñ'}Ö~ØŸ™ 8Ö,Ø)×-Ñ-¨hÔ7Ü$ R¨°	¸8ÀVÇ^Á^ÖTðI$UñL   E¨C¢KØØ˜eÑ#�
ñg ñj Ü# B¨	Ð3DÀdÇmÁmÐUYÐ[iÕjä—‘Ð:¸9¸+ÐEpÐqÔràò [�Ü   V¨T°4·=±=À!ÀDÁ'È6Ï>É>ÕZð[à�I‰IŒKØˆNr   r€   r�   r?   r   r>   r=   rL   rŒ   r�   rŽ   r�   rA   r�   r„   r’   r“   r”   é   r•   r–   zOK: r—   r˜   T)r,   r™   rš   ú_check_index_xml failed for rœ   r7   )?rž   rŸ   rL   r    r¡   r   r   r¢   r   r£   r   r¤   r   r¥   r   r¦   r    r§   r"   r¨   r$   r©   r&   rª   r«   r¬   r­   r=   rV   rW   rX   r¯   r°   r   r²   r³   r´   rµ   r¶   r   r·   r_   rP   r`   rF   rI   rU   rº   rR   r»   r¼   r½   r¾   r¿   rH   rY   rJ   rÂ   rÃ   rÅ   r^   r+   rÆ   )7rÇ   rè   r   r   r   rž   rŸ   r   r   r   r   r   r   r"   r$   r&   rª   rÈ   rÉ   r®   rÌ   rÍ   rï   ra   rÏ   rÕ   rÖ   ro   rÑ   rÒ   rÓ   r×   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rÞ   rß   rà   rá   râ   rä   rå   ræ   r    r6   rx   ry   rí   rî   rz   r{   r|   s7      `                                          @@@@@@@@@r}   rç   rç   Ü   s±  ÿù€ ÷ Ø‡H�H‡O�O�AÐ5Ô6ß/Ý+Ý4Ý5ÝAÝ9Ý5Ý<Ý#ÛáØ×&Ñ&ˆÙ˜6Ó"€FØ	‡L�L�˜Ð$4Ô5Ù e°uÀ6ÔJ€GÙ	‹€BØ�l‰l�o‰o€GðXØ—‘˜.Ó)×0Ñ0°×1BÑ1BÀiÑ1OÓP×VÑVÓXˆÙÜ˜R ¨'°1Ð6bÔcØ˜%�=ðh 	�‰�
ðe �x‰x˜Ó%×,Ñ,¨\¯_©_ÀÇÁÑ-NÓO×UÑUÓWˆØ�x‰xÐ*Ó+×2Ñ2Ð3E×3HÑ3HÈD×L^ÑL^Ñ3^Ó_×eÑeÓgˆÙ˜4Ÿ;š;¨d¯mªmÀ4×CUÒCUÜ˜R ¨'°1Ð6NÔOØ˜%�=ð\ 	�‰�
ñY ! ×!3Ñ!3Ó4ˆØ�‰˜tŸ}™}¨cÓ2ˆä˜˜W i°°nÀVÇ[Á[ÀMÐQTÐ4UÔVàˆØˆØÐØ&˜KÐ÷E	õ E	ðN �\‰\ #¨eˆ\Ó4ð #	R¸Ü˜R ¨¨t¯}©}¸iÈÏÉÔXØ�I‰IŒKÙ! &¨)°V×5EÑ5EÀvÇ|Á|ÐVWÑGWÓXˆHÜ  ›]ˆNâšÜ"+¨HÓ"5ó b‘J�C˜Ø!ŸI™I f¨bÓ1�EØŸ)™) D¨"Ó-�CØ!ŸI™I f¨bÓ1�EØDRÐUVÒDVœs C¨.Ñ$8¸CÑ#?Ô@Ð\^�HØ !’|° XØ "’}° hÜ$ R¨°)¸XÐG]Ô`cÐdgÐhiÑdiÓ`jÑGjÐmpÑGpÔsvð  xFó  tGñ  HGð  JNñ  HNð  QVñ  HVô  Wà! 5¨&¯,©,¸Ñ*:Ð;Ð<�EÜ # E£
�IØ$%�MÚØ*/¯)©)°A«,™˜˜U CÙ$.¨v°s¸EÀ3Ó$G˜	ØŸ™ÈYÖ%WÈ q¨¡w°°&±	¸3À¹7Ò&CÒ%WÔXØ%¨Ñ*˜Ø)¨AÒ-Ø#(¨>Ñ#9˜DØ&.´°T¸]ÌSÐQZÐ\]ÓM^Ñ=^Ñ5_Ó1`Ñ&`˜GØ&¨Ò1°gÀ²mÜ 0°°W¸iÈÐRhÔknÐorÐstÑotÓkuÑRuÐx{ÑR{ô  Bð  CQó  Rñ  SRð  UYñ  SYð  \añ  Saô  !bô  ñbñ, Ü"+¨HÓ"5ò R‘J�C˜Ø!ŸI™I f¨bÓ1�EØ?MÐPQÒ?Qœ#˜s ^Ñ3°sÑ:Ô;ÐWY�CØ˜Q’w a Ø˜R’x r Ü$ R¨°)¸SÐBXÔ[^Ð_bÐcdÑ_dÓ[eÑBeÐhkÑBkÔnqð  sAó  oBñ  CBð  EIñ  CIð  LQñ  CQõ  RðR÷=#	RôJ " (›m¨aÑ/ˆÔÜ ›7ˆÔØ
�	‰	ŒáÜ˜R ¨)°RÐ9\Ô]ÜÐ.Ó/ˆJÜ%Ð&7Ó8ò I‘��SØ˜‘8˜q’=Øœs 1 s¡7¬S°¸QÓ-?Ñ#?Ó@Ñ@�CÜ$ R¨°)¼SÀÀb»\ÈYÐWZÐV[Ð[\Ð]gÐ\hÐKiÔjÜ*¨2¨s°D·M±MÀ4ÕHð	Iô 	˜˜W k°3¸$¸}¸oÈZÐXeÐWfÐfsÐ8tÔuØ }ÀÑOð 	�‰�
ùòK &X÷-#	Rð #	Rûôj ò Ü�‰Ð3°I°;¸bÀÀÐDÔEÜ˜˜W g¨q°G¼CÀ»FÀ4ÀC¸L¸>Ð2JÔKØ
�‰ŒØ�eˆ}Ôà
�‰�
ûðûð 	�‰�
úsz   Â=AW ÄCW Ç0A5W É%D+WÎ/WÏ V?ÏA3WÑ	BWÓC!W Ö?W×W×	W ×	Y ×AX;Ø%Y Ø&Y Ø;Y Ù Y ÙYc                 ó(  — ddl m} 	 | j                  |«      j                  |j                  |k(  |j
                  dk(  «      j                  «       }d}|D ]i  }	|	j                  dk(  rŒ|	j                  |vsŒ"d|	_        t        «       |	_
        d}t        j                  d|	j                  › d|	j                  › d�«       Œk |r"|r| j                  «        t        | |||«       y
y
y
# t        $ r"}
t        j!                  d	|
› �«       Y d
}
~
y
d
}
~
ww xY w)zDMarca como deleted los archivos en DB que ya no existen en Alfresco.r   ©ÚAlfrescoFileFú	index.xmlTzFile marked as deleted: ú (ú)z_mark_deleted_files error: N)Úapp.models.alfresco_filerô   rV   rW   rè   rÀ   rÁ   r   r=   rY   rJ   r^   ÚinfoÚflushrÃ   rÅ   r+   )ry   rè   rg   Úconn_base_urlr6   r   rô   Údb_filesÚdeleted_anyÚdbfræ   s              r}   r]   r]   �  s  € å5ð8Ø—8‘8˜LÓ)×0Ñ0Ø×"Ñ" iÑ/Ø× Ñ  EÑ)ó
÷ ‰#‹%ð 	ð
 ˆØò 	NˆCØ�x‰x˜;Ò&ØØ�v‰vÐ.Ò.Ø"�”Ü %£�”Ø"�Ü—‘Ð6°s·x±x°jÀÀ3Ç6Á6À(È!ÐLÕMð	Nñ ™>Ø�H‰HŒJÜ& r¨9°mÀTÕJð *ˆ;øô ò 8Ü�‰Ð2°1°#Ð6×7Ñ7ûð8ús   ˆA.C& Á7A,C& Ã&	DÃ/DÄDc                 óä  — ddl m} 	 |j                  dd«      }|j                  dd«      }|j                  di «      xs i }|j                  di «      xs i }	|j                  dg «      xs g }
|j                  d	i «      xs i }| j                  |«      j	                  |j
                  |k(  «      j                  «       }|||j                  d
d«      |j                  dd«      t        |j                  d«      «      t        |j                  d«      «      |	j                  dd«      |	|
|dœ|dt        «       dœ}|rÔd}|	j                  dd«      }|j                  rC|rA|j                  |k7  r2d |_
        d}t        j                  d|› d|j                  › d|› d�«       |j                  «       D ]-  \  }}|dk(  rŒt        ||d «      }||k7  sŒt        |||«       d}Œ/ d|_        t        «       |_        |rMt        j                  d|› �«       y  |dd|i|¤Ž}| j%                  |«       t        j                  d|› �«       y y # t&        $ r"}t        j)                  d|› �«       Y d }~y d }~ww xY w)Nr   ró   r=   r>   r   ÚcontentÚ
propertiesÚaspectNamesÚcreatedByUserÚmimeTypeÚsizeInBytesÚ	createdAtÚ
modifiedAtúcm:versionLabelú1.0©r  Úaspectsr  r?   )rè   r   ÚmimetypeÚ
size_bytesÚalfresco_created_atÚalfresco_modified_atÚversionÚproperties_jsonÚ
sort_orderÚfoliosrJ   FTzVersion changed for r�   z -> z, hash clearedr  zFile updated: zFile created: z_upsert_file error: rˆ   )rø   rô   rR   rV   rW   r=   rX   r   rY   r  Úhash_sha256r^   rù   ÚitemsÚgetattrÚsetattrrÀ   rJ   rZ   rÅ   r+   )ry   r<   rè   r  Úsite_id_valrô   Úfile_idr   r   Úpropsr  Ú
created_byrt   Únew_dataÚchangedÚnew_versionÚkÚvÚcurrentrv   ræ   s                        r}   r\   r\   ª  sV  € Ý5ð+1Ø—)‘)˜D "Ó%ˆØ�y‰y˜ Ó$ˆØ—)‘)˜I rÓ*Ò0¨bˆØ—	‘	˜,¨Ó+Ò1¨rˆØ—)‘)˜M¨2Ó.Ò4°"ˆØ—Y‘Y˜°Ó3Ò9°rˆ
Ø—8‘8˜LÓ)×0Ñ0°·±ÀGÑ1KÓL×RÑRÓTˆà"ØØŸ™ J°Ó3Ø!Ÿ+™+ m°QÓ7Ü#,¨U¯Y©Y°{Ó-CÓ#DÜ$-¨e¯i©i¸Ó.EÓ$FØ—y‘yÐ!2°EÓ:Ø.3ÀÐZdÑeØ$ØÜ›ñ
ˆñ ØˆGØŸ)™)Ð$5°uÓ=ˆKØ×Ò¡K°H×4DÑ4DÈÒ4SØ'+�Ô$Ø�Ü—‘Ð2°4°&¸¸8×;KÑ;KÐ:LÈDÐQ\ÐP]Ð]kÐlÔmØ Ÿ™Ó(ò #‘��1Ø˜’= (Ü! (¨A¨tÓ4�Ø˜a“<Ü˜H a¨Ô+Ø"‘Gð#ð  %ˆHÔÜ!&£ˆHÔÙÜ—‘˜n¨T¨FÐ3Õ4áÑ4 Ð4¨8Ñ4ˆAØ�F‰F�1ŒIÜ�K‰K˜.¨¨Ð/Õ0ð øô ò 1Ü�‰Ð+¨A¨3Ð/×0Ñ0ûð1ús%   ˆGI ÇAI È3I É	I/ÉI*É*I/r  Úreturnc                 óŒ   — | sy| j                  dd«      xs d}| j                  dd«      xs d}|r
|r|› d|› d�S |xs |xs dS )z/Formatea createdByUser como 'displayName (id)'.r>   ÚdisplayNamer=   rö   r÷   )rR   )r  Údisplay_nameÚuser_ids      r}   Ú_format_created_by_userr'  Ú  sZ   € áØØ—>‘> -°Ó4Ò:¸€LØ�n‰n˜T 2Ó&Ò,¨"€GÙ™Ø�˜r ' ¨!Ð,Ð,ØÒ(˜7Ò( bÐ(r   c                 óÒ  — ddl m} g }|}|rg|j                  |«       |j                  rF| j	                  |«      j                  |j                  |j                  k(  «      j                  «       }nn|rŒg|j                  «        |D �cg c]  }|j                  dk7  sŒ|j                  ‘Œ  }}|j                  rp|j                  j                  d«      j                  d«      D �cg c]  }|sŒ|‘Œ	 }}d|v r2|j                  d«      }	||	dz   d }
t        |
«      t        |«      kD  r|
}t        |«      }|dk\  r|d   }|d   }||fS |d	k(  r|d   }d
}||fS d
}d
}||fS c c}w c c}w )u¹  
    Calcula Serie y Subserie segÃºn las reglas TRD:
    Nivel 1 bajo documentLibrary: Oficinas / Dependencias
    Nivel 2: Serie
    Nivel 3: Subserie
    Nivel 4+: Expediente / subcarpetas

    Reglas:
    - Si la carpeta indexada es nivel 3: Serie = nivel 2, Subserie = "" (vacÃ­o).
    - Si la carpeta indexada es nivel 1 o 2: Serie = "", Subserie = "".
    - Si la carpeta indexada es nivel 4+: Serie = nivel 2, Subserie = nivel 3.
    r   r   r‡   rA   r?   Né   r„   r‘   r>   )r¦   r    r[   rE   rV   rW   r=   rX   Úreverser   rF   ÚstripÚsplitÚindexrU   )ry   rí   r    Ú	ancestorsÚcurrÚaÚcleanedÚpÚpartsrÖ   Úpath_cleanedr›   ÚserieÚsubseries                 r}   Ú_get_trd_hierarchy_infor7  å  s|  € õ :Ø€IØ€DÙ
Ø×Ñ˜ÔØ�>Š>Ø—8‘8˜NÓ+×2Ñ2°>×3DÑ3DÈÏÉÑ3VÓW×]Ñ]Ó_‰Dàò ð ×ÑÔØ(ÖH˜!¨A¯F©FÐ6GÓ,Gˆq�v‹vÐH€GÐHà×ÒØ"×,Ñ,×2Ñ2°3Ó7×=Ñ=¸cÓBÖH�qÂa’ÐHˆÐHØ Ñ%Ø—+‘+Ð/Ó0ˆCØ   q¡ ˜?ˆLÜ�<Ó ¤3 w£<Ò/Ø&�ä�‹L€EØ�‚zØ˜‘
ˆØ˜1‘:ˆð �(ˆ?Ðð 
�!ŠØ˜‘
ˆØˆð
 �(ˆ?Ðð ˆØˆà�(ˆ?Ðùò+ Iùò Is   ÂEÂEÃ%E$Ã-E$c                 óª  — ddl m} ddlm} ddlm} ddlm} ddlm	}	 	 | j                  |«      j                  |j                  |k(  «      j                  «       }
|
syt        |
dd	«      r&|s$t        j!                  d
|
j"                  › d�«       y| j                  |«      j                  |j$                  |k(  «      j'                  |j(                  j+                  «       j-                  «       |j"                  j+                  «       «      j/                  «       }|D �cg c]!  }|j0                  rŒ|j"                  dk7  sŒ |‘Œ# }}|s6t3        d„ |D «       «      s$t        j!                  d|
j"                  › d�«       y|D ]K  }|j4                  rŒt        j!                  d|j"                  › d�«       t7        | ||||j                  «       ŒM | j                  |	«      j                  |	j8                  dk(  |	j:                  dk7  |	j:                  dk7  «      j/                  «       }|D �cg c]  }|j:                  ‘Œ }}| j=                  |
«       | j                  |«      j                  |j$                  |k(  «      j'                  |j(                  j+                  «       j-                  «       |j"                  j+                  «       «      j/                  «       }t?        |d«      D ]  \  }}|j@                  |k7  sŒ||_         Œ |D �cg c]Ô  }|j"                  dk7  rÃ|j0                  s·|j                  |j"                  |jB                  |jD                  tG        |j(                  «      xs d|jH                  |j4                  xs d|jJ                  xs dtM        |jN                  xs i jQ                  di «      «      |jN                  xs i jQ                  di «      dœ
‘ŒÖ }}tS        | |
«      \  }}|
jT                  xsE | j                  |«      j                  |j                  |
jV                  k(  «      j                  «       }d}|r<|jX                  r0|jX                  j[                  «       j]                  «       dk(  rd}nd}d}|rm|j^                  xsE | j                  |«      j                  |j                  |j`                  k(  «      j                  «       }|r|j"                  r|j"                  }| j                  |«      j                  |j$                  |k(  |j"                  dk(  |j0                  d	k(  «      j                  «       }tc        «       }d}|rX|j(                  xs |jd                  }|r<tg        |d«      r|ji                  d«      }ntk        |«      dd jm                  dd«      }|s|ji                  d«      }|ji                  d«      }|
j                  |||
j"                  ||t        |
dd	«      rdnd ||d!œ	}dd"l7m8} | j                  |«      j                  |j$                  |k(  «      j'                  |j                  j+                  «       «      j/                  «       } | D �!cg c]J  }!|!jr                  xs dtG        |!jt                  «      xs d|!jv                  xs d|!jx                  xs dd#œ‘ŒL }"}!t{        ||
j"                  |
j|                  xs d|||"«      }#t        ||||#«      \  }$}%}&|$rod$|
_@        |%r|%|
_A        tc        «       |
_B        t‡        | ||%|#||«       | j‰                  «        t        j!                  d%|
j"                  › d&t‹        |«      › d'�«       yt        j�                  d(|
j"                  › d)|&› �«       yc c}w c c}w c c}w c c}!w # tŽ        $ r"}'t        j�                  d*|'› �«       Y d}'~'yd}'~'ww xY w)+z­Genera/actualiza el index.xml para una Serie, Subserie o Expediente con los archivos que contiene.
    Si la carpeta esta cerrada (is_closed) se omite, salvo que force=True.r   ró   r   r   r   )ÚAlfrescoTipologyNÚ	is_closedFzFolder z2 esta cerrado, se omite la regeneracion del indicerõ   c              3   óT   K  — | ]   }|j                   d k7  sŒ|j                  –— Œ" y­w)rõ   N)r   rÀ   )r‰   Úfls     r}   r‹   z-_generate_index_for_folder.<locals>.<genexpr>+  s    è ø€ Ò']°rÀbÇgÁgÐQ\ÓF\¨¯
­
Ñ']ùs   ‚(—(zNo files in folder z, skipping index.xmlzComputing hash for r…   r>   r?   r  r  )
r=   r   r  r  r  r  r  r  Úcreated_by_userr  ÚPublicoÚPUBLICÚPrivadoÚstrftimez%Y-%m-%d %H:%M:%Sé   ÚTú ÚCerradoÚAbierto)	ÚidentificadorÚfecha_creacion_indiceÚfecha_actualizacion_indiceÚnombre_de_expedienteÚserie_del_expedienteÚsubserie_del_expedienteÚestado_expedienteÚcontrol_de_accesoÚnombre_entidad_contacto)ÚAlfrescoFolderHistory)ÚtypeÚdateÚuserÚcommentTzindex.xml generated for folder rö   z files)zFailed to upload index.xml for r�   z"_generate_index_for_folder error: )Hrø   rô   r¦   r    r¤   r   r¥   r   Úapp.models.alfresco_tipologyr9  rV   rW   r=   rX   r  r^   rù   r   rè   Úorder_byr  ÚascÚ
nulls_lastrÁ   rÀ   Úanyr  r   Ú
deleted_atÚvalueÚrefreshrº   r  r  r  r
   r  r  r'  r  rR   r7  rÌ   r   Ú
visibilityr+  ÚupperÚ
connectionr²   rY   Ú
created_atÚhasattrrA  r¼   ÚreplaceÚ"app.models.alfresco_folder_historyrP  rQ  rR  rS  rT  r   rF   r   Úhas_index_xmlÚindex_xml_node_idrJ   Ú_upsert_index_xml_filer`   rU   r+   rÅ   )(ry   rè   rû   r6   Úforcerô   r    r   r   r9  rí   Úfilesr<  Úactive_filesÚ
tipologiesÚtÚtipologia_keysrÖ   Ú
files_datar5  r6  rÌ   Úcontrol_accesoÚ	conn_namerx   Úexisting_index_fileÚnow_dtÚfecha_creacionÚc_atÚfecha_actualizacionÚexpediente_inforP  Úhistory_recordsÚhÚ	historialÚxml_contentÚsuccessÚnode_idÚerr_msgræ   s(                                           r}   rÃ   rÃ     sÚ  € õ 6Ý9Ý5ÝAÝ=ðG?Ø—‘˜.Ó)×0Ñ0°×1BÑ1BÀiÑ1OÓP×VÑVÓXˆÙØä�6˜;¨Ô.±uÜ�K‰K˜' &§+¡+ Ð.`ÐaÔbØà—‘˜Ó&×-Ñ-Ø×"Ñ" iÑ/ó
ç
‰(�<×3Ñ3×7Ñ7Ó9×DÑDÓFÈ×HYÑHY×H]ÑH]ÓH_Ó
`×adÑadÓafð 	ð &+ÖX˜r°"·*³*ÀÇÁÈKÓAWšÐXˆÐXá¤CÑ']¸UÔ']Ô$]Ü�K‰KÐ-¨f¯k©k¨]Ð:NÐOÔPØàò 	LˆBØ—>“>Ü—‘Ð1°"·'±'°¸#Ð>Ô?Ü'¨¨B°¸tÀRÇUÁUÕKð	Lð
 —X‘XÐ.Ó/×6Ñ6Ø×'Ñ'¨4Ñ/Ø×"Ñ" dÑ*Ø×"Ñ" bÑ(ó
÷ ‰#‹%ð	 	ð
 ,6Ö6 a˜!Ÿ'›'Ð6ˆÐ6à
�
‰
�6ÔØ—‘˜Ó&×-Ñ-Ø×"Ñ" iÑ/ó
ç
‰(�<×3Ñ3×7Ñ7Ó9×DÑDÓFÈ×HYÑHY×H]ÑH]ÓH_Ó
`×adÑadÓafð 	ô ! ¨Ó*ò 	$‰GˆC�Ø�}‰} Ó#Ø #�•ð	$ð" ö
ð ˜rŸw™w¨+Ò5¸b¿jºjð —e‘eØŸ™ØŸK™KØ Ÿm™mÜ'*¨2×+AÑ+AÓ'BÒ'HÀbØŸ)™)Ø!Ÿ~™~Ò3°ØŸ:™:Ò+¨Ü#:¸B×<NÑ<NÒ<TÐRT×;YÑ;YÐZiÐkmÓ;nÓ#oØ!×1Ñ1Ò7°R×<Ñ<¸\È2ÓNóð
ˆ
ð 
ô" 2°"°fÓ=‰ˆˆxð �{‰{Òf˜bŸh™h |Ó4×;Ñ;¸L¿O¹OÈvÏ~É~Ñ<]Ó^×dÑdÓfˆØ"ˆÙ�D—O’OØ�‰×$Ñ$Ó&×,Ñ,Ó.°(Ò:Ø!*‘à!*�àˆ	ÙØ—?‘?Ò~ b§h¡hÐ/AÓ&B×&IÑ&IÐJ\×J_ÑJ_Ðcg×cuÑcuÑJuÓ&v×&|Ñ&|Ó&~ˆDÙ˜Ÿ	š	Ø ŸI™I�	ð !Ÿh™h |Ó4×;Ñ;Ø×"Ñ" iÑ/Ø×Ñ Ñ,Ø× Ñ  EÑ)ó
÷ ‰%‹'ð	 	ô “ˆØˆÙØ&×:Ñ:Ò\Ð>Q×>\Ñ>\ˆDÙÜ˜4 Ô,Ø%)§]¡]Ð3FÓ%G‘Nä%(¨£Y¨s° ^×%;Ñ%;¸CÀÓ%E�NáØ#Ÿ_™_Ð-@ÓAˆNà$Ÿo™oÐ.AÓBÐð $ŸY™YØ%3Ø*=Ø$*§K¡KØ$)Ø'/Ü.5°f¸kÈ5Ô.Q¡ÐW`Ø!/Ø'0ñ

ˆõ 	MØŸ(™(Ð#8Ó9×@Ñ@Ø!×+Ñ+¨yÑ8ó
ç
‰(Ð(×+Ñ+×/Ñ/Ó1Ó
2·3±3³5ð 	ð %ö
ð ð Ÿ™š "Ü˜AŸF™F›Ò) rØŸ™š "ØŸ9™9š?¨ó	ð
ˆ	ð 
ô .¨j¸&¿+¹+Àv×GWÑGWÒG]Ð[]Ð_mÐo~ð  AJó  KˆÜ$@ÀÐPTÐV_ÐalÓ$mÑ!ˆ�˜'ÙØ#'ˆFÔ ÙØ+2�Ô(Ü$›wˆFÔÜ" 2 y°'¸;ÈÐW[Ô\Ø�I‰IŒKÜ�K‰KÐ9¸&¿+¹+¸ÀbÌÈZËÐHYÐY`ÐaÕbä�L‰LÐ:¸6¿;¹;¸-ÀrÈ'ÈÐSÕTùòq Yùò  7ùò
ùòP
øô, ò ?Ü�‰Ð9¸!¸Ð=×>Ñ>ûð?ús„    =^' Á2^' ÂB^' Ä^Ä0^Å ^Å9^' Å>^' ÆB^' È)^È<B=^' Ë:^' ÌC^Ï J^' Ù1A^"Û B,^' Ý-%^' Þ^' Þ'	_Þ0_ß_c                 óZ  — ddl m} ddl}ddl}|sy	 |j	                  d«      › d|› �}	i }
	 |j                  dd¬«      5 }|j                  |	|¬	«      }|j                  d
k(  r |j                  «       j                  di «      }
ddd«       |
j                  di «      xs i }|
j                  di «      xs i }|
j                  dg «      xs g }|
j                  di «      xs i }t        |t        «      r|j                  d«      n|}|j                  |«      j!                  «       }|j                  d«      xs t#        |«      }|j                  d«      xs d}t%        |
j                  d«      «      xs
 t'        «       }t%        |
j                  d«      «      xs
 t'        «       }| j)                  |«      j+                  |j,                  |k(  «      j/                  «       }|r“||_        d|_        d|_        ||_        ||_        |j:                  s	|r||_        ||_        |||dœ|_        ||_         t'        «       |_!        t'        «       |_"        d|_#        t        jI                  d|› d|› d�«       y| j)                  |jJ                  «      j+                  |j0                  |k(  «      jM                  |jJ                  jO                  «       «      j/                  «       }|r|d   r|d   dz   nd} |||dd|||||||dœ|d|t'        «       d¬«      }| jQ                  |«       t        jI                  d |› d|› d�«       y# 1 sw Y   �ŒÀxY w# t        $ r&}t        j                  d|› d|› �«       Y d}~�Œíd}~ww xY w# t        $ r"}t        jS                  d!|› �«       Y d}~yd}~ww xY w)"uv   Actualiza o crea el registro de index.xml en alfresco_files con la versiÃ³n, tamaÃ±o, fecha y hash reales de Alfresco.r   ró   NrA   r1   é   Fr�   r5   r7   r<   z!Error consultando nodo index.xml z en Alfresco: r  r   r  r  zutf-8r  r  r	  r  r  rõ   ztext/xmlr
  z2Registro index.xml actualizado en DB para carpeta z
 (version r÷   r?   )r=   rè   r   r  r  r  r  r  r  r  r  r  rJ   rÀ   z-Registro index.xml creado en DB para carpeta z_upsert_index_xml_file error: )*rø   rô   Úhashlibrª   Úrstripr·   rR   rS   rT   rÅ   r^   ÚwarningÚ
isinstancer¼   ÚencodeÚsha256Ú	hexdigestrU   r   rY   rV   rW   r=   rX   rè   r   r  r  r  r  r  r  r  rJ   Ú
updated_atrÀ   rù   r  rV  ÚdescrZ   r+   )ry   rè   r{  ry  rû   r6   rô   r  rª   Únode_urlÚ
node_entryra   rk   ræ   r  Úcontent_infor  r  Ú	raw_bytesÚ
xml_sha256Úxml_sizeÚversion_labelÚmodified_atr`  rt   Úmax_sor  rv   s                               r}   rf  rf  ¦  s˜  € å5ÛÛÙØð=;Ø#×*Ñ*¨3Ó/Ð0Ð0iÐjqÐirÐsˆØˆ
ð	[Ø—‘ b°�Ó7ð >¸6Ø—z‘z (°�zÓ6�Ø×#Ñ# sÒ*Ø!%§¡£§¡°¸"Ó!=�J÷>ð —‘˜|¨RÓ0Ò6°BˆØ!—~‘~ i°Ó4Ò:¸ˆØ—.‘. °Ó3Ò9°rˆØ—^‘^ O°RÓ8Ò>¸Bˆ
ä3=¸kÌ3Ô3O�K×&Ñ& wÔ/ÐU`ˆ	Ø—^‘^ IÓ.×8Ñ8Ó:ˆ
Ø×#Ñ# MÓ2ÒD´c¸)³nˆØŸ	™	Ð"3Ó4Ò=¸ˆÜ 
§¡¨|Ó <Ó=ÒHÄÃˆÜ˜zŸ~™~¨kÓ:Ó;ÒF¼u»wˆ
à—8‘8˜LÓ)×0Ñ0°·±ÀGÑ1KÓL×RÑRÓTˆÙØ!*ˆHÔØ'ˆHŒMØ *ˆHÔØ"*ˆHÔØ,7ˆHÔ)Ø×/Ò/±JØ/9�Ô,Ø,ˆHÔØ6;ÈÐblÑ'mˆHÔ$Ø#-ˆHÔ Ü!&£ˆHÔÜ"'£'ˆHÔØ$ˆHÔÜ�K‰KÐLÈYÈKÐWaÐboÐapÐpqÐrÕsà—X‘X˜l×5Ñ5Ó6×=Ñ=¸l×>TÑ>TÐXaÑ>aÓb×kÑkÐlx÷  mDñ  mD÷  mIñ  mIó  mKó  L÷  Rñ  Ró  TˆFÙ,2°v¸a²y˜& ™) aš-ÀaˆJÙØØ#Ø Ø#Ø#Ø$.Ø%0Ø%Ø/4ÀÐ[eÑ fØ%ØØ&Ü›'ØôˆAð  �F‰F�1ŒIÜ�K‰KÐGÈ	À{ÐR\Ð]jÐ\kÐklÐmÕn÷o>ñ >ûô ò 	[Ü�N‰NÐ>¸w¸iÀ~ÐVWÐUXÐY×ZÒZûð	[ûôh ò ;Ü�‰Ð5°a°SÐ9×:Ñ:ûð;ús`   “M? ¬M ¿AM ÂM Â
G(M? É3CM? Í M
ÍM Í	M<ÍM7Í1M? Í7M<Í<M? Í?	N*ÎN%Î%N*c                 óÚ  — ddl m} t        j                  d|› �«       	 d}|› d|› d�}|j	                  ||¬«      }	|	j
                  dk(  r¥|	j                  «       j	                  d	i «      }
|
j	                  d
«      rt|
j	                  dd«      dk(  r_|
j	                  dd«      }| j                  |«      j                  |j                  |k(  «      j                  «       }|rd|_        ||_        d}|› d|› d�}d}|�sA|› d|› �}|j	                  ||¬«      }	|	j
                  dk7  r�n|	j                  «       j	                  di «      }|j	                  dg «      }t        |«      }|j	                  di «      }|j	                  dd«      }|D ]œ  }|j	                  d	i «      }
|
j	                  d
«      sŒ'|
j	                  dd«      dk(  sŒ=|
j	                  dd«      }| j                  |«      j                  |j                  |k(  «      j                  «       }|rd|_        ||_        d} n |rn|s|dk  rn	||z  }|s�ŒA|sy| j                  |«      j                  |j                  |k(  «      j                  «       }|r<|j                  r0d|_        d |_        t        j                  d|j                  › �«       |S # t        $ r%}t        j!                  d|› d|› �«       Y d }~yd }~ww xY w)Nr   r   z[INDEX-CHECK] Checking Fr1   z?relativePath=index.xmlr5   r7   r<   rM   r   r>   rõ   r=   Tr2   z?maxItems=200&skipCount=r8   r9   r:   r;   z%[INDEX-CHECK] index.xml removed from rñ   r�   )r¦   r    r^   rù   rR   rS   rT   rV   rW   r=   rX   rd  re  rU   r   rÅ   r+   )ry   ra   r6   rP   rè   r   r    Úfoundrˆ  rk   r<   r{  rí   Úbase_url_childrenri   rë   rl   r9   rm   r:   rn   ræ   s                         r}   r_   r_   í  sÝ  € Ý9Ü
‡K�KÐ)¨)¨Ð5Ô6ð3FØˆð �ZÐXÐYbÐXcÐczÐ{ˆØ�z‰z˜(¨ˆzÓ.ˆØ×Ñ˜sÒ"Ø—I‘I“K—O‘O G¨RÓ0ˆEØ�y‰y˜Ô" u§y¡y°¸Ó'<ÀÒ'KØŸ)™) D¨"Ó-�ØŸ™ .Ó1×8Ñ8¸×9JÑ9JÈiÑ9WÓX×^Ñ^Ó`�ÙØ+/�FÔ(Ø/6�FÔ,Ø�à'˜jÐ(aÐbkÐalÐluÐvÐØˆ
ÚØ&Ð'Ð'?À
¸|ÐLˆCØ—:‘:˜c¨�:Ó-ˆDØ×Ñ 3Ò&ÙØ—9‘9“;—?‘? 6¨2Ó.ˆDØ—h‘h˜y¨"Ó-ˆGÜ˜“LˆEØŸ™ ,°Ó3ˆJØ!—~‘~ n°eÓ<ˆHØò 	�ØŸ™˜g rÓ*�Ø—9‘9˜XÕ&¨5¯9©9°V¸RÓ+@ÀKÓ+OØ#Ÿi™i¨¨bÓ1�GØŸX™X nÓ5×<Ñ<¸^×=NÑ=NÐR[Ñ=[Ó\×bÑbÓd�FÙØ/3˜Ô,Ø3:˜Ô0Ø �EÙð	ñ ØÙ ¨¢ØØ˜%ÑˆJó1 ñ2 Ø—X‘X˜nÓ-×4Ñ4°^×5FÑ5FÈ)Ñ5SÓT×ZÑZÓ\ˆFÙ˜&×.Ò.Ø',�Ô$Ø+/�Ô(Ü—‘ÐCÀFÇKÁKÀ=ÐQÔRØˆøÜò FÜ�‰Ð3°I°;¸bÀÀÐD×EÐEØûðFús,    FJ< Æ3J< Ç	A4J< È?A<J< Ê<	K*ËK%Ë%K*c                 ó  — ddl m} | j                  |«      j                  |j                  |k(  «      j                  «       }|r+||_        ||_        ||_        |r|j                  s	||_	        n	 | j                  «        y )Nr   r!   )r§   r"   rV   rW   r®   rX   ÚstatusÚprogressÚmessager   r`   )ry   r®   r•  r–  r—  r  r"   Úrecords           r}   r¯   r¯   &  sh   € Ý5Ø�X‰X�lÓ#×*Ñ*¨<×+?Ñ+?À7Ñ+JÓK×QÑQÓS€FÙØˆŒØ"ˆŒØ ˆŒÙ˜vŸ~š~Ø(ˆF�Nð 	Ø‡I�I…Kr   )FTN)Tr�   )r   )#rž   rL   r    ÚloggingÚapp.services.index_generatorr   r   r   Ú
app.workerr   r£   r   Úapp.services.timezoner	   rY   r
   r   Ú	getLoggerÚ__name__r^   Útaskr»   Úboolr¼   r   rç   r]   r\   Údictr'  r7  rÃ   rf  r_   r¯   rˆ   r   r}   ú<module>r¢     s  ðÛ 
Ø ‡�‡��Ð1Ô 2ã ß wÑ wÝ !Ý ,Ý .ß 0à	ˆ×	Ñ	˜8Ó	$€ð €‡�Ð)°Ô5ñJ Sð J°ð JÈdð JÐcfò Jó 6ðJðZ €‡�Ð,°4Ô8ño¨#ð o°Tð oÐSWð oÐhkò oó 9ðoóf8ò4-1ð`)¨ð )°ó )ò,ó^O?òdD;òN7ôrr   