summaryrefslogtreecommitdiffstats
path: root/yt_dlp/downloader/mhtml.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-08-05 09:06:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-08-05 09:06:10 +0000
commit137f07c27a88b07df57df5b2cdebebe3c7722bac (patch)
tree4ebdcbea6b540f69c40ba0be6ac766008030d149 /yt_dlp/downloader/mhtml.py
parentAdding debian version 2024.05.27-1. (diff)
downloadyt-dlp-137f07c27a88b07df57df5b2cdebebe3c7722bac.tar.xz
yt-dlp-137f07c27a88b07df57df5b2cdebebe3c7722bac.zip
Merging upstream version 2024.07.01.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'yt_dlp/downloader/mhtml.py')
-rw-r--r--yt_dlp/downloader/mhtml.py53
1 files changed, 19 insertions, 34 deletions
diff --git a/yt_dlp/downloader/mhtml.py b/yt_dlp/downloader/mhtml.py
index d977dce..3d4f2d7 100644
--- a/yt_dlp/downloader/mhtml.py
+++ b/yt_dlp/downloader/mhtml.py
@@ -10,7 +10,7 @@ from ..version import __version__ as YT_DLP_VERSION
class MhtmlFD(FragmentFD):
- _STYLESHEET = """\
+ _STYLESHEET = '''\
html, body {
margin: 0;
padding: 0;
@@ -45,7 +45,7 @@ body > figure > img {
max-width: 100%;
max-height: calc(100vh - 5em);
}
-"""
+'''
_STYLESHEET = re.sub(r'\s+', ' ', _STYLESHEET)
_STYLESHEET = re.sub(r'\B \B|(?<=[\w\-]) (?=[^\w\-])|(?<=[^\w\-]) (?=[\w\-])', '', _STYLESHEET)
@@ -57,24 +57,19 @@ body > figure > img {
)).decode('us-ascii') + '?='
def _gen_cid(self, i, fragment, frag_boundary):
- return '%u.%s@yt-dlp.github.io.invalid' % (i, frag_boundary)
+ return f'{i}.{frag_boundary}@yt-dlp.github.io.invalid'
def _gen_stub(self, *, fragments, frag_boundary, title):
output = io.StringIO()
- output.write((
+ output.write(
'<!DOCTYPE html>'
'<html>'
'<head>'
- '' '<meta name="generator" content="yt-dlp {version}">'
- '' '<title>{title}</title>'
- '' '<style>{styles}</style>'
- '<body>'
- ).format(
- version=escapeHTML(YT_DLP_VERSION),
- styles=self._STYLESHEET,
- title=escapeHTML(title)
- ))
+ f'<meta name="generator" content="yt-dlp {escapeHTML(YT_DLP_VERSION)}">'
+ f'<title>{escapeHTML(title)}</title>'
+ f'<style>{self._STYLESHEET}</style>'
+ '<body>')
t0 = 0
for i, frag in enumerate(fragments):
@@ -87,15 +82,12 @@ body > figure > img {
num=i + 1,
t0=srt_subtitles_timecode(t0),
t1=srt_subtitles_timecode(t1),
- duration=formatSeconds(frag['duration'], msec=True)
+ duration=formatSeconds(frag['duration'], msec=True),
))
except (KeyError, ValueError, TypeError):
t1 = None
- output.write((
- '<figcaption>Slide #{num}</figcaption>'
- ).format(num=i + 1))
- output.write('<img src="cid:{cid}">'.format(
- cid=self._gen_cid(i, frag, frag_boundary)))
+ output.write(f'<figcaption>Slide #{i + 1}</figcaption>')
+ output.write(f'<img src="cid:{self._gen_cid(i, frag, frag_boundary)}">')
output.write('</figure>')
t0 = t1
@@ -126,31 +118,24 @@ body > figure > img {
stub = self._gen_stub(
fragments=fragments,
frag_boundary=frag_boundary,
- title=title
+ title=title,
)
ctx['dest_stream'].write((
'MIME-Version: 1.0\r\n'
'From: <nowhere@yt-dlp.github.io.invalid>\r\n'
'To: <nowhere@yt-dlp.github.io.invalid>\r\n'
- 'Subject: {title}\r\n'
+ f'Subject: {self._escape_mime(title)}\r\n'
'Content-type: multipart/related; '
- '' 'boundary="{boundary}"; '
- '' 'type="text/html"\r\n'
- 'X.yt-dlp.Origin: {origin}\r\n'
+ f'boundary="{frag_boundary}"; '
+ 'type="text/html"\r\n'
+ f'X.yt-dlp.Origin: {origin}\r\n'
'\r\n'
- '--{boundary}\r\n'
+ f'--{frag_boundary}\r\n'
'Content-Type: text/html; charset=utf-8\r\n'
- 'Content-Length: {length}\r\n'
+ f'Content-Length: {len(stub)}\r\n'
'\r\n'
- '{stub}\r\n'
- ).format(
- origin=origin,
- boundary=frag_boundary,
- length=len(stub),
- title=self._escape_mime(title),
- stub=stub
- ).encode())
+ f'{stub}\r\n').encode())
extra_state['header_written'] = True
for i, fragment in enumerate(fragments):