From af5c243687203032a4113da2f361d18a64044b5a Mon Sep 17 00:00:00 2001 From: chesirecatt Date: Tue, 25 Aug 2026 19:39:37 +0300 Subject: [PATCH] =?UTF-8?q?pack=5Fepub:=20EPUB=20=D1=81=D0=BE=D0=B1=D0=B8?= =?UTF-8?q?=D1=80=D0=B0=D0=BB=D1=81=D1=8F=20=D0=B1=D0=B5=D0=B7=20=D1=81?= =?UTF-8?q?=D0=B6=D0=B0=D1=82=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit У zipfile.ZipFile умолчание ZIP_STORED, компрессия нигде не задавалась — книги весили втрое больше при том же тексте (Брикман 1,42 МБ против 0,38). Теперь ZIP_DEFLATED; mimetype по-прежнему пишется несжатым, этого требует формат EPUB. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01XCiPWRi3Jqy4saD2LwU1Dp --- scripts/pack_epub.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/pack_epub.py b/scripts/pack_epub.py index c6295e4..9304704 100644 --- a/scripts/pack_epub.py +++ b/scripts/pack_epub.py @@ -77,7 +77,10 @@ def build(src, out, meta): imgdir = src.parent / "images" 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 обязан идти первым и без сжатия — иначе часть читалок # не опознаёт архив как EPUB z.writestr(zipfile.ZipInfo("mimetype"), "application/epub+zip",