
    Ği                     ~    d dl Z d dlZd dlZd dlZddlmZ ddlmZ ddlm	Z	m
Z
mZmZ ddlmZ  G d d	e          ZdS )
    N   )
FragmentFD   )imghdr)
escapeHTMLformatSecondssrt_subtitles_timecodeurljoin)__version__c                       e Zd ZdZ ej        dde          Z ej        dde          Zed             Zd Zd Z	d	 Z
d
S )MhtmlFDa  html, body {
    margin: 0;
    padding: 0;
    height: 100vh;
}

html {
    overflow-y: scroll;
    scroll-snap-type: y mandatory;
}

body {
    scroll-snap-type: y mandatory;
    display: flex;
    flex-flow: column;
}

body > figure {
    max-width: 100vw;
    max-height: 100vh;
    scroll-snap-align: center;
}

body > figure > figcaption {
    text-align: center;
    height: 2.5em;
}

body > figure > img {
    display: block;
    margin: auto;
    max-width: 100%;
    max-height: calc(100vh - 5em);
}
z\s+ z5\B \B|(?<=[\w\-]) (?=[^\w\-])|(?<=[^\w\-]) (?=[\w\-]) c                     dd                     d t          j        |                                 d          D                                           d          z   dz   S )Nz
=?utf-8?Q?    c              3   L   K   | ]}|d k    rt          |f          nd|z  V   dS )    s   =%02XN)bytes).0bs     \C:\Users\betacode\Desktop\descargarYoutube\venv\Lib\site-packages\yt_dlp/downloader/mhtml.py	<genexpr>z'MhtmlFD._escape_mime.<locals>.<genexpr>6   sN       (
 (
 99E1$KKK(Q,(
 (
 (
 (
 (
 (
r   T)headerus-asciiz?=)joinquopriencodestringencodedecode)ss    r   _escape_mimezMhtmlFD._escape_mime4   sl    sxx (
 (
(DAAA(
 (
 (
  
  
 6* !%% 	%r   c                     | d| dS )N.z@yt-dlp.github.io.invalid )selfifragmentfrag_boundarys       r   _gen_cidzMhtmlFD._gen_cid;   s    >>m>>>>r   c                   t          j                    }|                    dt          t                     dt          |           d| j         d           d}t          |          D ]\  }}|                    d           	 ||d         z   }|                    d                    |d	z   t          |          t          |          t          |d         d
                               n;# t          t          t          f$ r! d }|                    d|d	z    d           Y nw xY w|                    d|                     |||           d           |                    d           |}|                                S )NzB<!DOCTYPE html><html><head><meta name="generator" content="yt-dlp z	"><title>z</title><style>z</style><body>r   z<figure>durationuK   <figcaption>Slide #{num}: {t0} – {t1} (duration: {duration})</figcaption>r   T)msec)numt0t1r+   z<figcaption>Slide #z</figcaption>z<img src="cid:z">z	</figure>)ioStringIOwriter   YT_DLP_VERSION_STYLESHEET	enumerateformatr	   r   KeyError
ValueError	TypeErrorr)   getvalue)	r%   	fragmentsr(   titleoutputr.   r&   fragr/   s	            r   	_gen_stubzMhtmlFD._gen_stub>   s    7A6P6P  !''	 
 &  	 	 	  ++ 	 	GAtLL$$$I$z**a&A-b11-b11*4
+;$GGG	       j)4 I I IG1q5GGGHHHHHI LLS$--4*O*OSSSTTTLL%%%BB   s   A)C..5D&%D&c                    |                     d          }| j                             dd          r|d         d d         n|d         }|                     d|d                   }|                     d|d	                   }|t          |          d
}|                     ||           |                    ddt          t          j                                                  dd          d          }|d         }	|d         s}| 	                    ||	|          }
|d         
                    d|                     |           d|	 d| d|	 dt          |
           d|
 d                                           d|d<   t          |          D ]\  }}|dz   |d         k    r|                     d	          }|s|sJ t          ||d                   }|                     |||          }|sa|                     |          }t#          j                    }|
                    d|	                    d          z             |
                    d|                     |||	                              d          z             |
                    d d!t)          j        |"          pd#                                 z             |
                    d$t          |          z             |
                    d%|                    d          z             |
                    d&|d'         z             |
                    d(           |                     ||                                |z   d(z              |d         
                    d)|	                    d          z             |                     ||          S )*Nfragment_base_urltestFr;   r   r<   	format_idwebpage_urlurl)filenametotal_fragsextra_state-r   )header_writtenmime_boundaryrK   rJ   )r;   r(   r<   dest_streamznMIME-Version: 1.0
From: <nowhere@yt-dlp.github.io.invalid>
To: <nowhere@yt-dlp.github.io.invalid>
Subject: z-
Content-type: multipart/related; boundary="z&"; type="text/html"
X.yt-dlp.Origin: z

--z:
Content-Type: text/html; charset=utf-8
Content-Length: z

z
Tfragment_indexpaths   --%b
r   s   Content-ID: <%b>
s   Content-type: %b
zimage/)hjpegs   Content-length: %u
s   Content-location: %b
s   X.yt-dlp.Duration: %f
r+   s   
s
   --%b--

)getparamslen _prepare_and_start_frag_download
setdefaultstruuiduuid4replacer?   r2   r!   r   r5   r
   _download_fragment_read_fragmentr0   BytesIOr)   r   what_append_fragmentr:   _finish_frag_download)r%   rF   	info_dictrA   r;   r<   originctxrH   r(   stubr&   r'   fragment_urlsuccessfrag_contentfrag_headers                    r   real_downloadzMhtmlFD.real_download`   sn   %MM*=>>26+//E3 3 7Ik*2A2.. )+ 6 	gy'=>>}i.>?? !y>>
 

 	--c9===nn]# ..66sB??5
 5
  
 $O4+, 	1>>#+ "  D $$ !--e44 
 +  %+  #  $'t99      &vxx) ) ) -1K()$Y// 	F 	FKAxA#.///#<<..L L((((&'8(6:JKK--c<KKG ..s33L*,,Km22:>>>@ @ @'$--8]*S*S*Z*Z[e*f*ffh h h'*Z6;3N3N3N3XRX*Z*Z*a*a*c*cce e e)C,=,==? ? ?+l.A.A*.M.MMO O O,x
/CCE E Eg&&&!![))++l:WDF F F F 	M   4 4Z @ @@	B 	B 	B))#y999r   N)__name__
__module____qualname__r4   resubstaticmethodr!   r)   r?   rh   r$   r   r   r   r      s        #KH "&k22K"&QSUWbccK% % \%? ? ? !  !  !DN: N: N: N: N:r   r   )r0   r   rl   rW   r'   r   compatr   utilsr   r   r	   r
   versionr   r3   r   r$   r   r   <module>rr      s    				  				                    N N N N N N N N N N N N 3 3 3 3 3 3b: b: b: b: b:j b: b: b: b: b:r   