Ë
    š„j*  ã                   ót   — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZddlm	Z	m
Z
mZmZ ddlmZ  G d„ d«      Zy)é    Né   )Úexpand_pathÚtraverse_objÚversion_tupleÚwrite_json_file)Ú__version__c                   óP   — e Zd Zd„ Zd„ Zd„ Zed„ «       Zdd„Zd„ Z	dddœd	„Z
d
„ Zy)ÚCachec                 ó   — || _         y ©N)Ú_ydl)ÚselfÚydls     úC/var/www/html/GAP/venv/lib/python3.12/site-packages/yt_dlp/cache.pyÚ__init__zCache.__init__   s	   € Øˆ�	ó    c                 óÒ   — | j                   j                  j                  d«      }|€6t        j                  dd«      }t        j
                  j                  |d«      }t        |«      S )NÚcachedirÚXDG_CACHE_HOMEz~/.cachezyt-dlp)r   ÚparamsÚgetÚosÚgetenvÚpathÚjoinr   )r   ÚresÚ
cache_roots      r   Ú_get_root_dirzCache._get_root_dir   sQ   € Ø�i‰i×Ñ×"Ñ" :Ó.ˆØˆ;ÜŸ™Ð#3°ZÓ@ˆJÜ—'‘'—,‘,˜z¨8Ó4ˆCÜ˜3ÓÐr   c                 ó  — t        j                  d|«      s
J d|›�«       ‚t        j                  j	                  |d¬«      j                  dd«      }t        j                  j                  | j                  «       ||› d|› �«      S )Nz	^[\w.-]+$zinvalid section Ú )Úsafeú%ú,ú.)
ÚreÚmatchÚurllibÚparseÚquoteÚreplacer   r   r   r   )r   ÚsectionÚkeyÚdtypes       r   Ú_get_cache_fnzCache._get_cache_fn   st   € Ü�x‰x˜ gÔ.ÐNÐ2BÀ7À+Ð0NÓNÐ.Ü�l‰l× Ñ  ¨2Ð Ó.×6Ñ6°s¸CÓ@ˆÜ�w‰w�|‰|˜D×.Ñ.Ó0°'¸c¸UÀ!ÀEÀ7Ð;KÓLÐLr   c                 óP   — | j                   j                  j                  d«      duS )Nr   F)r   r   r   )r   s    r   ÚenabledzCache.enabled   s"   € à�y‰y×Ñ×#Ñ# JÓ/°uÐ<Ð<r   c                 ó¬  — |dv sJ ‚| j                   sy | j                  |||«      }	 t        j                  t        j                  j                  |«      d¬«       | j                  j                  d|› d|› d�«       t        t        |dœ|«       y # t        $ r8 t        j                  «       }| j                  j                  d|›d	|› �«       Y y w xY w)
N©ÚjsonT)Úexist_okzSaving r$   z	 to cache)úyt-dlp_versionÚdatazWriting cache to z	 failed: )r0   r.   r   Úmakedirsr   Údirnamer   Úwrite_debugr   r   Ú	ExceptionÚ	tracebackÚ
format_excÚreport_warning)r   r+   r,   r6   r-   ÚfnÚtbs          r   ÚstorezCache.store!   s¾   € Ø˜	Ñ!Ð!Ð!à�|Š|Øà×Ñ ¨¨eÓ4ˆð	NÜ�K‰KœŸ™Ÿ™¨Ó+°dÕ;Ø�I‰I×!Ñ! G¨G¨9°A°c°U¸)Ð"DÔEÜ¬{ÀDÑIÈ2ÕNøÜò 	NÜ×%Ñ%Ó'ˆBØ�I‰I×$Ñ$Ð'8¸¸¸iÈÀtÐ%LÖMð	Nús   ¨A)B Â>CÃCc                 ó¬   — t        |d«      }|sd|id}}|rt        |«      t        |«      k\  r|d   S | j                  j                  d|› d|› d�«       y )Nr5   r6   z
2022.08.19z"Discarding old cache from version z (needs ú))r   r   r   r9   )r   r6   Úmin_verÚversions       r   Ú	_validatezCache._validate0   sb   € Ü˜tÐ%5Ó6ˆÙØ# T˜N¨L�'ˆDÙœ-¨Ó0´MÀ'Ó4JÒJØ˜‘<ÐØ�	‰	×ÑÐ BÀ7À)È8ÐT[ÐS\Ð\]Ð^Õ_r   N)rC   c          	      óŽ  — |dv sJ ‚| j                   s|S | j                  |||«      }t        j                  t        «      5  	 t        |d¬«      5 }| j                  j                  d|› d|› d�«       | j                  t        j                  |«      |«      cd d d «       cd d d «       S # 1 sw Y   nxY wny# t        t        f$ rg 	 t        j                  j                  |«      }n!# t        $ r}	t!        |	«      }Y d }	~	nd }	~	ww xY w| j                  j#                  d|› d|› d	�«       Y nw xY wd d d «       |S # 1 sw Y   |S xY w)
Nr2   zutf-8)ÚencodingzLoading r$   z from cachezCache retrieval from z	 failed (rB   )r0   r.   Ú
contextlibÚsuppressÚOSErrorÚopenr   r9   rE   r3   ÚloadÚ
ValueErrorÚKeyErrorr   r   ÚgetsizeÚstrr=   )
r   r+   r,   r-   ÚdefaultrC   Úcache_fnÚcachefÚ	file_sizeÚoes
             r   rL   z
Cache.load8   sG  € Ø˜	Ñ!Ð!Ð!à�|Š|ØˆNà×%Ñ% g¨s°EÓ:ˆÜ× Ñ ¤Ó)ñ 
	bð	bÜ˜(¨WÔ5ð F¸Ø—I‘I×)Ñ)¨H°W°I¸Q¸s¸eÀ;Ð*OÔPØŸ>™>¬$¯)©)°FÓ*;¸WÓE÷Fð F÷
	bñ 
	b÷Fð Fúð Føô ¤Ð)ò bð(Ü "§¡§¡°Ó 9‘IøÜò (Ü # B£•Iûð(úà—	‘	×(Ñ(Ð+@ÀÀ
È)ÐT]ÐS^Ð^_Ð)`Öaðbú÷
	bð ˆ÷
	bð ˆúss   ÁD:ÁB7ÁAB*Â	B7Â*B3	Â/B7Â6D:Â7D-ÃC'Ã&D-Ã'	DÃ0D Ã;D-Ä DÄ%D-Ä*D:Ä,D-Ä-D:Ä:Ec                 óÖ  ‡— | j                   s| j                  j                  d«       y | j                  «       Št	        ˆfd„dD «       «      st        d‰› d�«      ‚| j                  j                  d‰› d�d¬	«       t        j                  j                  ‰«      r2| j                  j                  d
d¬	«       t        j                  ‰«       | j                  j                  d
«       y )NzFCache is disabled (Did you combine --no-cache-dir and --rm-cache-dir?)c              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wr   © )Ú.0Útermr   s     €r   ú	<genexpr>zCache.remove.<locals>.<genexpr>S   s   øè ø€ ÒC¨$�D˜HÔ$ÑCùs   ƒ)ÚcacheÚtmpzNot removing directory z& - this does not look like a cache dirzRemoving cache dir z .T)Úskip_eolr$   )r0   r   Ú	to_screenr   Úanyr:   r   r   ÚexistsÚshutilÚrmtree)r   r   s    @r   ÚremovezCache.removeM   s½   ø€ Ø�|Š|Ø�I‰I×ÑÐ hÔiØà×%Ñ%Ó'ˆÜÓCÐ2BÔCÔCÜÐ5°h°ZÐ?eÐfÓgÐgà�	‰	×ÑØ! ( ¨2Ð.¸ð 	ô 	?ä�7‰7�>‰>˜(Ô#Ø�I‰I×Ñ ¨dÐÔ3Ü�M‰M˜(Ô#Ø�	‰	×Ñ˜CÕ r   r2   )r3   N)Ú__name__Ú
__module__Ú__qualname__r   r   r.   Úpropertyr0   r@   rE   rL   rd   rX   r   r   r
   r
      sC   „ òò òMð
 ñ=ó ð=óNò`ðÈô ó*!r   r
   )rH   r3   r   r%   rb   r;   Úurllib.parser'   Úutilsr   r   r   r   rD   r   r
   rX   r   r   ú<module>rk      s/   ðÛ Û Û 	Û 	Û Û Û ç LÓ LÝ  ÷N!ò N!r   