-
♡ recommended by @Anonymous
Replies (12)
-
/1 · Reply
-
@Anonymous, 1) из чьей коробки? Тут я сервер opds пилю, а не кто-то там ещё. Могу вообще fb2.gz сделать. А сам формат fb2 — таки xml без сжатиев.
2) тут баг явно у fbreader, но придётся подстраиваться. -
@stanislavv, @stanislavv
по стандарту так... и сам чистый \*.fb2 сам лично использую только когда верстаю книжку.
А для хранения и распространения применяется \*.fb2.zip. И читалкам этот формат как ожидаемый, обычно.
з.ы. помню сам бесячился, когда скачивал fb2, а он в архиве за каким-то хером. Старательно распаковывал... думал просто сжимают для файлообменников. А потом лет 5 назад начал сам верстать и преисполнился познанием :philosoraptor: -
@Anonymous, Это не стандарт всё-таки. По-крайней мере, нигде и никем не описанный. Это соглашение, которое некоторые читалки считают стандартом.
И, кстати, надеюсь, создавая fb2, стандарт xml соблюдаешь? -
@stanislavv, @stanislavv
А то! И неистово плююсь, когда заглядываю в литрессовский код :blobcatnotlike: -
@Anonymous, Кто-то только разглядывает, а кому-то разбор писать... Хорошо, что python, а не go, там всё-таки работающий beautiful soap есть..
-
@stanislavv, @stanislavv я то наделся с образовательной точки зрения. Ну курируют же формат, эти ребята должны знать как правильно, образцово. А в итоге внутри fb2 ад и ещё fb3 высрали никому не нужный.
Касаемо проверки общей валидности, то за редким исключением сторонние книги её проходят. Но читалки хавают — все довольны. -
@stanislavv,
придётся делать zip на лету
Не надо. Я же тебе уже писал. Во Флибусте FB2 книги уже лежат в больших ZIP архивах, в среднем по два гигабайта. Так вот, их не надо распаковывать, просто отправляешь байты из ZIP архива по смещению в браузер пользователя как есть, навесив заголовок Content-Encoding = deflate. Браузер сам распакует этот поток байтов в файл FB2 при указании типа application/fb2.
При этом ZIP архивам с Флибустой даже не обязательно лежать рядом с программой, тот самый поток данных по смещению из архива можно выдрать удаленно GET запросом с указанием Range. Так, например, архивы библиотеки можно разместить в облаке с поддержкой Webdav — облако mail.ru, например./9 · Reply -
@IRT, Проблема-то не в браузере, а в читалке, заточенной строго под fb2.zip и которую я не могу поправить.
-
@stanislavv, Ну, тогда к потоку байт надо приделать заголовок ZIP и будет fb2.zip. В заголовке указать, что внутри один файл, а не тысяча. Главное, пережимать ничего не надо.
-
@IRT, (посмотрев на статистику посещений локального хранилища): сиё ненужная оптимизация. Даже на дохлой апельсинке всё упирается в сеть (судя по всему — в мегафон).