
    Ği*                     |    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dS )    N   )expand_pathtraverse_objversion_tuplewrite_json_file)__version__c                   X    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dS )Cachec                     || _         d S N)_ydl)selfydls     QC:\Users\betacode\Desktop\descargarYoutube\venv\Lib\site-packages\yt_dlp/cache.py__init__zCache.__init__   s    			    c                     | j         j                            d          }|5t          j        dd          }t          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   sT    i"":..;#3Z@@J',,z844C3r   c                     t          j        d|          sJ d|            t          j                            |d                              dd          }t          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   s    xg..NN0N70N0NNNNl  2 ..66sC@@w||D..00'c;K;KE;K;KLLLr   c                 D    | j         j                            d          duS )Nr   F)r   r   r   )r   s    r   enabledzCache.enabled   s     y##J//u<<r   jsonc                    |dv sJ | j         sd S |                     |||          }	 t          j        t          j                            |          d           | j                            d| d| d           t          t          |d|           d S # t          $ r7 t          j                    }| j                            d|d	|            Y d S w xY w)
Nr1   T)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   	!!!!| 	Fe44	NK++d;;;;I!!"DG"D"Dc"D"D"DEEE{DII2NNNNN 	N 	N 	N%''BI$$%L%L%L%L%LMMMMMM	Ns   A,B =CCc                     t          |d          }|sd|id}}|r t          |          t          |          k    r|d         S | j                            d| d| d           d S )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   s    t%566 	9#TNL'D 	 -00M'4J4JJJ<	^7^^T[^^^_____r   N)rC   c          	         |dv sJ | j         s|S |                     |||          }t          j        t                    5  	 t          |d          5 }| j                            d| d| d           |                     t          j
        |          |          cd d d            cd d d            S # 1 swxY w Y   n# t          t          f$ rk 	 t          j                            |          }n&# t          $ r}	t!          |	          }Y d }	~	nd }	~	ww xY w| j                            d| d| d	           Y nw xY wd d d            n# 1 swxY w Y   |S )
Nr3   zutf-8)encodingzLoading r$   z from cachezCache retrieval from z	 failed (rB   )r0   r.   
contextlibsuppressOSErroropenr   r9   rE   r1   load
ValueErrorKeyErrorr   r   getsizestrr=   )
r   r+   r,   r-   defaultrC   cache_fncachef	file_sizeoes
             r   rL   z
Cache.load8   sR   	!!!!| 	N%%gsE:: )) 
	b 
	b	b(W555 FI))*OW*O*Os*O*O*OPPP>>$)F*;*;WEEF F F F F F F
	b 
	b 
	b 
	b 
	b 
	b 
	b 
	bF F F F F F F F F ) b b b( " 9 9II ( ( ( #BIIIIII(	(()`)`)`T])`)`)`aaaaab
	b 
	b 
	b 
	b 
	b 
	b 
	b 
	b 
	b 
	b 
	b 
	b 
	b 
	b 
	b s    ECA	B5C5B9	9C<B9	=C ED=C32D=3
D=DD=D$D=:E<D==EEEc                    | j         s| j                            d           d S |                                 t	          fddD                       st          d d          | j                            d dd	           t          j                                      r0| j                            d
d	           t          j
                   | j                            d
           d S )NzFCache is disabled (Did you combine --no-cache-dir and --rm-cache-dir?)c              3       K   | ]}|v V  	d S r    ).0termr   s     r   	<genexpr>zCache.remove.<locals>.<genexpr>S   s(      CC$DH$CCCCCCr   )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 hiiiF%%''CCCC2BCCCCC 	hfhfffggg	.(... 	 	? 	? 	?7>>(## 	$Id333M(###	C     r   r3   )r1   N)__name__
__module____qualname__r   r   r.   propertyr0   r@   rE   rL   rd   rX   r   r   r
   r
      s               M M M
 = = X=N N N N` ` `     *! ! ! ! !r   r
   )rH   r1   r   r%   rb   r;   urllib.parser'   utilsr   r   r   r   rD   r   r
   rX   r   r   <module>rk      s         				 				          L L L L L L L L L L L L            N! N! N! N! N! N! N! N! N! N!r   