WebDAV и OPDS в PocketBook

Третьего дня собрался купить читалку. Выбор между PocketBook и Kindle решился в пользу первого, так как там ПО посвободнее и нет никаких jailbreak'ов. Ну и, плюс к этому, в Kindle, по дефолту, нельзя менять заставку - это вредительство и ни в какие ворота не лезет! В любом случае, радость покупки была недолгой, ибо захотелось книжки синхронизировать из их обширных вместилищ. И тут понеслось.

Исходные условия: NextCloud 12, PocketBook 631.

Ожидаемый результат: прямой доступ к облаку с книги без необходимости заливать что-либо по USB.

Таки да, "из коробки" есть Dropbox и получение книг по почте. Но мы не ищем лёгких путей.

OPDS

Штука прикольная, но простая. Базируется на Atom и, следовательно, представляет собой xml'ки по HTTP.

Не было бы печали, если бы под PB был FBReader. Там есть отличная поддержка OPDS "из коробки" и дело с концом. Но FBReader'а под PB нет и не предвидится, поэтому всё довольно грустно.

Вообще говоря, под PB я нашёл всего две реализации OPTS. Одна простая как пробка, минималистичная и безумно стабильная от товарища Vlasov-a. Вторая - грузная, монструозная и тормозная под названием KOReader.

Vlasov

Собственно, вот первая ссылка из гугла. Там всё отлично описано. Здесь остановлюсь только на нюансах настройки и работы.

Главная причина всего нижеследующего: автор писал OPDS-приложение за 3 вечера. Поэтому никакого буйства функциональности. Всё аскетично, по-спартански, но стабильно и своё дело делает. Кстати, исходники замечательно читаются и убивать никого не хочется.

Так вот, ниже перечисляю обнаруженные особенности.

  1. Нет явной аутентификации. То есть после ввода url-а логопас вводить не предлагают. Решается это явным указанием кредов в адресной строке: "http(s)://login:password@host:port/path". Решение предложено на форуме vlsfovsoft.net.
  2. Нет поддержки самоподписанных сертификатов. То есть в GUI получим немногословное сообщение "Ошибка!", а в дебаг логах сообщение о том, что что-то пошло не так в районе отправки запроса. Починить это можно пересобрав OPDS. Исходники автор любезно выдаёт по запросу. Поправить нужно будет, скорее всего, вот так. Главная проблема - собрать Qt под PB и далее скомпилить само приложение с использованием SDK. Альтернативное решение: взять letsencrypt и наконец-то избавиться от самоподписанного безобразия.
  3. Периодически подключается к OPDS каталогу только со второго-третьего раза. То есть разок-другой выдаст "Ошибка!", а затем подключится. То же самое при загрузке больших каталогов. С OPDS Флибусты такого замечено не было. Так что два варианта: либо влияет наличие https, либо моё облачко медленное, убогое и Qt в нём что-то не нравится.
  4. Кроме epub, через OPDS, скачать ничего не получилось. Остальные форматы (fb2, mobi) он видит, но показывать информацию о них отказывается и скачивать не предлагает.

В остальном, что касается OPDS, если взять напильник и допилить, либо если у вас нет своего сервера и вам достаточно существующих OPDS каталогов типа либрусека и флибусты, то отличная штука.

Из прочего: больше всего огорчило то, что CoolReader из этой сборки не запоминает страницу, если из него выйти не через "Меню->Выход", а просто перейти "Домой" или выключить книгу. Это, практически, фатальный минус для ПО на читалку.

KOReader

Судя по количеству звёзд на github - популярная штука. Выглядит вундервафельно. Куча опций, менюшек и прочего, но по ощущениям как-то функционально перегружено, тормознуто и нестабильно.

В общем и целом может приложение и неплохое, но в моём случае оказалась большая засада. Поддержку "флагмана" PocketBook 631 они анонсировали в сентябрьской стабильной версии koreader-nightly-20171023. При накате этой версии на PB получем segmentation fault либо при старте, либо при клике на любой пункт меню. При накате ночного билда от 11 ноября, взятого отсюда, всё более-менее работает. По крайней мере segmentation fault не сыпятся. Но OPDS в этой комплектации дальше подключения к удалённому каталогу не ушёл. Добиться до списка файлов так и не получилось. Возможно поправят в будущих версиях, либо это прекрасно работает на более старых моделях, но для новых книжек всё плохо.

Отдельно можно отметить поддержку на github. Без определённых навыков разработки туда можно не соваться. Просят запилить shell-доступ к книжке, заюзать strace или gdb, включить дебаг режим и заняться прочими непользовательскими вещами.

WebDAV

Тут всё плохо. Ни одного клиента для подключения к кастомным WebDAV сервисам под PB я не нашёл. Только наколеночные вещи разной степени проработанности. Ими и поделюсь.

Главный источник вдохновения - немецкая ветка форума про WebDAV на PB. Там товарищи из ГДР любезно выложили bash-скрипт с базовой реализацией WebDAV, которую осталось немного доработать напильником. Так же помог набор bash-команд 'cloud-dl' для работы с NextCloud. В итоге получилось вот такое хозяйство. Синхронизирует один уровень вложенности, обновляет файлы на основании даты, ничего не удаляет, плюс имеет хоть какой-то интерфейс на PB. С пивом покатит. Но далеко не нативный клиент Own/NextCloud'а и это печально.

Тех кто захочет допилить bash-скрипты сразу предупреждаю: на PB стоит BusyBox и, следовательно, большинство утилит командной строки так или иначе кастрировано. Это налагает кучу ограничений и влечёт создание фееричных костылей при реализации довольно простых задач. Как альтернатива: собирать свой набор утилит и с ними идти в бой. Но в этом случае, кажется, проще написать полноценную программу для PB, по аналогии с вышеописанным OPDS, например, на том же Qt.

Прочие полезные штуки

Если начинать ковыряться в PB, то очень пригодятся следующие штуки:

  1. ssh доступ;
  2. netcat доступ. Там описано для PocketBook 626, но оно отлично работает и для 631 модели.
  3. Как добавить собственные SSL сертификаты в PB: ходят слухи, что если положить сертификаты в корень flash раздела и/или в папку system, то он подхватится некоторыми приложениями.

Итого

Если вам ехать, а не шашечки, то есть два варианта:

  1. брать встроенные в PB вещи типа Dropbox, пересылки книжкек по e-mail и т.п., а про личные облака забыть. Разве что, как крайний вариант, можно подключить Dropbox как внешнее хранилище в NextCloud, заливать туда файлы через NC и вытаскивать их из Db на PB-книге. Но это уже немного извращение.
  2.  Покупать e-ink книжку на Android. Благо их, нынче, много. Однако, сдаётся мне, что и там будут свои проблемы, но уже совсем другие.

PocketBook WebDAV OPDS Vlasov KOReader

comments powered by Disqus