Ë
    Ë˜§j£	  ã                   óv  — d dl Z d dlZd dlZd dlZd dlmZ  ej                  e«      Z eej                  j                  dd«      «      Z eej                  j                  dd«      «      Z eej                  j                  dd«      «      Z eej                  j                  d	d
«      «      Zd„ Zd„ Zd„ Zy)é    N)ÚPathÚDOWNLOADS_PATHz
/downloadsÚCLEANUP_INTERVAL_SECONDSÚ300ÚCLEANUP_MAX_AGE_HOURSÚ1ÚCLEANUP_MAX_DISK_MBÚ5000c               ƒ   ó  K  — t         j                  dt        t        t        t
        «       	 t        j                  t        «      ƒ d {  –—†  	 t        «        Œ-7 Œ# t        $ r t         j                  d«       Y Œ#w xY w­w)NzDCleanup task started: path=%s interval=%ds max_age=%sh max_disk=%dMBzCleanup cycle failed)ÚloggerÚinfor   r   r   r	   ÚasyncioÚsleepÚ_run_cleanupÚ	ExceptionÚ	exception© ó    ú/app/bot/cleanup.pyÚcleanup_loopr      sj   è ø€ Ü
‡K�KØNÜÔ0Ô2GÔI\ôð Ü�m‰mÔ4Ó5×5Ð5ð	5ÜŒNð Ø5ùô ò 	5Ü×ÑÐ3Ö4ð	5üs6   ‚AB Á	AÁ
B Á
A ÁB ÁA=Á:B Á<A=Á=B c                  ó*  — t         j                  «       sy t        j                  «       } t        dz  }t         j	                  «       D ]g  }|j                  «       sŒ	 | |j                  «       j                  z
  }||kD  r1|j                  «        t        j                  d|j                  |«       Œi t!        «        y # t        $ r# t        j                  d|j                  «       Y Œ t        $ r# t        j                  d|j                  «       Y ŒÊw xY w)Ni  zDeleted (age): %s (%.0fs old)úPermission denied: %szError checking file: %s)r   ÚexistsÚtimer   ÚiterdirÚis_fileÚstatÚst_mtimeÚunlinkr   r   ÚnameÚPermissionErrorÚwarningr   r   Ú_enforce_disk_limit)ÚnowÚmax_age_secÚentryÚages       r   r   r      sÔ   € Ü× Ñ Ô"Øä
�)‰)‹+€CÜ'¨$Ñ.€Kä×'Ñ'Ö)ˆØ�}‰}ŒØð	DØ˜Ÿ
™
›×-Ñ-Ñ-ˆCØ�[Ò Ø—‘”Ü—‘Ð;¸U¿Z¹ZÈÔMøð *ô Õøô ò 	@Ü�N‰NÐ2°E·J±JÖ?Üò 	DÜ×ÑÐ6¸¿
¹
ÖCð	Dús   ÁAB<Â<)DÃ'(DÄDc                  óÆ  — t         j                  «       sy g } d}t         j                  «       D ][  }|j                  «       sŒ	 |j	                  «       }| j                  ||j                  |j                  f«       ||j                  z  }Œ] t        dz  dz  }||k  ry | j                  d„ ¬«       | D ]D  \  }}}||k  r y 	 |j                  «        ||z  }t        j                  d|j                  |«       ŒF y # t        $ r Y ŒØw xY w# t        $ r# t        j!                  d|j                  «       Y Œ‚t        $ r# t        j#                  d|j                  «       Y Œ¬w xY w)Nr   i   c                 ó   — | d   S )Né   r   )Úxs    r   Ú<lambda>z%_enforce_disk_limit.<locals>.<lambda>G   s   € ˜Q˜qšTr   )Úkeyz)Deleted (disk limit): %s (freed %d bytes)r   zError deleting: %s)r   r   r   r   r   Úappendr   Úst_sizer   r	   Úsortr   r   r   r    r!   r"   r   )ÚfilesÚtotal_bytesr&   ÚstÚ	max_bytesÚpathÚ_Úsizes           r   r#   r#   3   s:  € Ü× Ñ Ô"Øà€EØ€KÜ×'Ñ'Ö)ˆØ�}‰}ŒØð	Ø—‘“ˆBØ�L‰L˜% §¡¨b¯j©jÐ9Ô:Ø˜2Ÿ:™:Ñ%‰Kð *ô $ dÑ*¨TÑ1€IØ�iÒØà	‡J�J‘>€JÔ"Û‰ˆˆa�Ø˜)Ò#Ùð	>Ø�K‰KŒMØ˜4ÑˆKÜ�K‰KÐCÀTÇYÁYÐPTÕUñ øô ò 	Ùð	ûô ò 	?Ü�N‰NÐ2°D·I±IÖ>Üò 	>Ü×ÑÐ1°4·9±9Ö=ð	>ús+   ÁAC;Ã6D
Ã;	DÄDÄ
)E Ä5(E ÅE )r   ÚloggingÚosr   Úpathlibr   Ú	getLoggerÚ__name__r   ÚenvironÚgetr   Úintr   Úfloatr   r	   r   r   r#   r   r   r   Ú<module>rA      s    ðÛ Û Û 	Û Ý à	ˆ×	Ñ	˜8Ó	$€á�b—j‘j—n‘nÐ%5°|ÓDÓE€Ù˜rŸz™zŸ~™~Ð.HÈ%ÓPÓQÐ Ù˜bŸj™jŸn™nÐ-DÀcÓJÓKÐ Ù˜"Ÿ*™*Ÿ.™.Ð)>ÀÓGÓHÐ ò
5òó.>r   