pack_epub: EPUB собирался без сжатия

У zipfile.ZipFile умолчание ZIP_STORED, компрессия нигде не задавалась —
книги весили втрое больше при том же тексте (Брикман 1,42 МБ против 0,38).
Теперь ZIP_DEFLATED; mimetype по-прежнему пишется несжатым, этого требует
формат EPUB.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XCiPWRi3Jqy4saD2LwU1Dp
This commit is contained in:
chesirecatt
2026-08-25 19:39:37 +03:00
parent 0320d2d331
commit af5c243687
+4 -1
View File
@@ -77,7 +77,10 @@ def build(src, out, meta):
imgdir = src.parent / "images" imgdir = src.parent / "images"
used, files = [], [] used, files = [], []
with zipfile.ZipFile(out, "w") as z: # ZIP_DEFLATED обязателен явно: у zipfile умолчание — ZIP_STORED, и книга
# выходит втрое толще (у Брикмана 1.42 МБ против 0.43 при том же тексте).
# Первым файлом всё равно идёт несжатый mimetype — этого требует формат.
with zipfile.ZipFile(out, "w", zipfile.ZIP_DEFLATED) as z:
# mimetype обязан идти первым и без сжатия — иначе часть читалок # mimetype обязан идти первым и без сжатия — иначе часть читалок
# не опознаёт архив как EPUB # не опознаёт архив как EPUB
z.writestr(zipfile.ZipInfo("mimetype"), "application/epub+zip", z.writestr(zipfile.ZipInfo("mimetype"), "application/epub+zip",