
    VGh                     v    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y)
    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
y
)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j                  d t        j                  | j                         d      D              j	                  d      z   dz   S )Nz
=?utf-8?Q?    c              3   H   K   | ]  }|d k\  rt        |f      nd|z    yw)    s   =%02XN)bytes).0bs     `/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/downloader/mhtml.py	<genexpr>z'MhtmlFD._escape_mime.<locals>.<genexpr>6   s-      (
 9E1$K(Q,6(
s    "T)headerus-asciiz?=)joinquopriencodestringencodedecode)ss    r   _escape_mimezMhtmlFD._escape_mime4   sP    sxx (
((D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    Am_$=>>r   c                   t        j                         }|j                  dt        t               dt        |       d| j
                   d       d}t        |      D ]  \  }}|j                  d       	 ||d   z   }|j                  dj                  |d	z   t        |      t        |      t        |d   d
                   |j                  d| j                  |||       d       |j                  d       |} |j                         S # t        t        t        f$ r d }|j                  d|d	z    d       Y {w xY w)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[   6 7A6P5Q R '( )&&' (	  + 	GAtLL$I$z**a&A-b1-b1*4
+;$G	   LL>$--4*O)PPRSTLL%B#	&    j)4 I21q5'GHIs   5AD.E ?E c                 "   |j                  d      }| j                  j                  dd      r|d   d d n|d   }|j                  d|d         }|j                  d|d	         }|t        |      d
}| j                  ||       |j	                  ddt        t        j                               j                  dd      d      }|d   }	|d   sf| j                  ||	|      }
|d   j                  d| j                  |       d|	 d| d|	 dt        |
       d|
 dj                                d|d<   t        |      D ]  \  }}|dz   |d   k  r|j                  d	      }|s|sJ t        ||d         }| j                  |||      }|sO| j!                  |      }t#        j$                         }|j                  d|	j                  d      z         |j                  d| j'                  |||	      j                  d      z         |j                  d d!t)        j*                  |"      xs d# j                         z         |j                  d$t        |      z         |j                  d%|j                  d      z         |j                  d&|d'   z         |j                  d(       | j-                  ||j/                         |z   d(z           |d   j                  d)|	j                  d      z         | j1                  ||      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`   sX   %MM*=>26++//E3Ik*2A. )+ 6 	gy'=>}i.>? !y>

 	--c9=nn]# .66sB?5
 
 $O4+,>>#+ " D $$ !--e45 6*O ,$$*8 ,"O $##&t9+ .&  &vx) -1K()$Y/ 	FKAxA#.//#<<.L(((&'8(6:JK--c<KG..s3L**,Km22:>>@'$--8]*S*Z*Z[e*ffh'F6;;3N3XRX2Y*Z*a*a*cce)C,==?+l.A.A*.MMO,x
/CCEg&!![))+l:WDF9	F> 	M   4 4Z @@	B))#y99r   N)__name__
__module____qualname__r4   resubstaticmethodr!   r)   r?   rh   r$   r   r   r   r      sZ    #KH "&&k2K"&&QSUWbcK% %? !D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 3b:j b:r   