1. Libretto: приложение для создания домашней электронной библиотеки.

  2. PDF

    DJVU

    FB2

    EPUB

    Calibre

Привет всем любителям чтения!

Если количество книг и журналов в pdf, djvu, fb2 на ваших дисках неуклонно растет и становится тяжело найти что-то нужное, то рано или поздно встает второй классический вопрос: "Что делать?". Это моя очередная попытка решить этот вопрос.

Основная проблема с книгами и журналами, хранящимися на жестких дисках наших компьютеров в том, что ими неудобно пользоваться. А хочется сидя в удобном кресле с планшетом в руках быстро найти в своей домашней электронной библиотеке подходящую к настроению книгу, не вылезая из кресла быстро скачать на планшет и спокойно почитать. Или просто просмотреть список книг, имеющихся в библиотеке. Или пролистать все номера любимого журнала за какой-то там лохматый год.

Проблему с организацией библиотеки (или нескольких тематических библиотек) можно легко решить с помощью прекрасной программы Calibre (сайт). С её помощью легко наполнять и поддерживать электронные библиотеки книгами в разных форматах (pdf, fb2, djuv, epub и др.). В сети можно найти описания возможностей этой программы. Но, к сожалению, Calibre плохо подходит для пользования библиотекой. По крайней мере мне она не подошла. Главная претензия к Calibre в том, что ты привязан к тому компьютеру, на котором запущена программа. Там же должны находятся файлы с книжками. Вообще Calibre заточена на работу с электронными книжками-ридерами (e-books). Основной идеей является синхронизация содержимого электронных ридеров с содержимым библиотеки на компьютере. Т.е. ты либо читаешь книгу из библиотеки на компьютере, либо присоединяешь электронную книжку к компьютеру (по USB, например), переписываешь в неё нужные книжки из библиотеки и потом читаешь. А хочется получить доступ к библиотеке с любого компьютера или планшета в домашней сети. Или вообще с любого планшета в мире. Справедливости ради нужно сказать, что у Calibre есть встроенный веб-сервер, но, мягко говоря, он не очень удобен.

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

Метаданные книжек Calibre хранит в стандартной базе данных в довольно простом формате. Сами книжки лежат на диске тоже вполне понятным образом. Надо было сделать веб-сервер с удобным интерфейсом, понятным всем от мала до велика, вне зависимости от опыта. Вторым условием была работа и на десктопах и планшетах с небольшими экранами.

"Libretto" - такое рабочее название я дал получившейся программе-библиотеке.

На этом скриншоте показан внешний вид библиотеки текущей версии 0.10 (03/2016).

Libretto. Библиотека электронных книг

Попробовать вживую можно на тестовом сервере по ссылке. Имя для входа user, пароль тоже user. В две тестовые библиотеки добавлена пара десятков обрезаных старых журналов. В принципе достаточно, чтоб поиграться.

В самой верхней строке пользователь видит список всех подключенных библиотек. Одна из библиотек выбирается в качестве текущей. Эти библиотеки независимы друг от друга. В Calibre они так же подключаются как отдельные библиотеки (не виртуальные. Виртуальные библиотеки не поддерживаются).

Под списком доступных библиотек показан список тегов (ключевых слов), который есть в текущей библиотеке. Над ним - переключатель режима работы с тегами: "1" "OR" и "AND".

Далее идет список книг, которые попадают под критерии выбора по тегам.
Каждая запись книги в списке раскрывается по клику и можно увидеть обложку книги, дополнительную информацию и ссылки для скачивания.

Переключатель режима работы с тегами действует следующим образом:

"1" - выбирается только 1 тег, в списке будут все книги, помеченные этим тегом
"OR" - возможно выбрать несколько тегов, в списке будут все книги, помеченные любым из отмеченных тегов
"AND" - возможно выбрать несколько тегов, в списке будут книги, которые помеченны всеми указанными тегами

Если не выбран ни один тег, то в списке будут книги, не помеченные тегами.

Работает этот сервер на Apache-Tomcat, т.е. может быть запущен практически на большом количестве операционных систем. Тонким моментом является необходимость останавливать Tomcat при работе с библиотекой из программы Calibre.

Отдельной проблемой оказалась генерация обложек для форматов DJVU и PDF. Как оказалось, Calibre не умеет создавать обложки для djvu. В случае с pdf при использовании Calibre обложки могут получится самых неожиданных размеров. Для массовой генерации я использую отдельный скрипт на Perl, который из первой страницы книги создает картинку в формате jpg нужного размера для всех книг библиотеки, у которых нет обложки.

В библиотеке не сделан поиск по заголовкам/авторам. По идее он нужен, но на практике пока вполне обхожусь без него. В конце концов, всегда можно приделать.

На этом я пока заканчиваю описание возможностей программы Libretto.

Следующим этапом будет установка сервера на заказаный у китайцев CubieTruck (Cubieboard 3).

В планах до осени дописать функции добавления книг и редактирования библиотеки. При этом планируется сохранить совместимость базы данных с форматом Calibre.

Так-же в планах автоматическое извлечение первых страниц книг в качестве обложки.

Выложу war-архив, инструкции по развертыванию и настройке если кто-то в комментах выскажет интерес.

Любители чтения! Если эта тема кого-то заинтересовала, буду рад увидеть в фидбек комментариях!

ОБСУЖДЕНИЯ

Аватар пользователя Vlad85

Добрый день! Интересует программа Libretto, является ли она законченным проектом. Хотел бы получше ознакомиться с Libretto и по возможности начать пользоваться данным продуктом.
Адрес E-mail для связи mvlad_85@mail.ru