Домашняя электронная библиотека: MyHomeLib + FBD

в 8:09, , рубрики: Delphi, FBD, каталогизация, метки: ,

Думаю, практически каждый любитель электронного чтения сталкивался с ситуацией, когда объем скачанных из сети книг увеличивается настолько, что найти в папке с ними нужную книгу становится сложнее, чем скачать ее заново. В этом случае многие пытаются систематизировать коллекцию, некоторые оставляют все как есть и продолжают скачивать все подряд в надежде когда–нибудь привести все в порядок, другие же просто перестают скачивать книги в надежде на то, что при необходимости все нужное найдется в интернете.


В итоге, первые рано или поздно забрасывают неблагодарный труд по поддержанию коллекции книг в порядке, вторые имеют огромную кучу книг, с которыми практически невозможно работать, а третьи рискуют в один прекрасный момент обнаружить любимый книжный сайт закрытым или переведенным на коммерческую основу.
В любом случае, вопрос организации домашней библиотеки и поиск в ней нужной книги является довольно актуальным.
Когда речи идет о файлах в формате fb2, то вопрос каталогизации решается весьма просто — устанавливаем бесплатную программу MyHomeLib, создаем пустую коллекцию, запускаем импорт и… вуаля! Через несколько минут имеем всю свою коллекцию отсортированную по авторам, сериям и жанрам. Выглядит это примерно так:
Домашняя электронная библиотека: MyHomeLib + FBD
В части работы с файлами fb2, возможности программы весьма обширны. Изначально MyHomeLib создавалась для работы с архивами on-line библиотеки Либрусек и от отпочковавшейся от него Флибусты.
Перечислю лишь основные из них с некоторыми пояснениями:

Основные возможности

  • неограниченное количество коллекций — например, можно одновременно работать с архивами либрусека, с библиоткекой Флибуста в режиме on-line и собственными коллекциями файлов в форматах fb2 и fbd.
  • удобный просмотр коллекций книг в виде древовидного списка с группировкой по автору/серии
  • возможность работы со списками книг в табличном режиме с сортировкой по любому столбцу
  • отображение обложки и аннотации при просмотре списка книг
  • чтение эл. книг в форматах fb2, html, doc, txt без установки дополнительных программ (используется AlReader 2)
  • автоматический импорт fb2 из папок и zip-архивов
  • не-fb2 коллекции, возможность работать с любыми типами файлов (в этом режиме книги в базу нужно вносить в ручную или используя список в формате inpx)
  • Полноценна поддержка формата FBD (импорт, конвертация, редактирование)
  • быстрый поиск по автору, названию книги
  • полный поиск по автору, названию, серии, жанру и т.п.
  • обмен пользовательскими коллекциями с помощью файлов inpx
  • настраиваемые шаблоны имен папок и файлов при экспорте книг из коллекций
  • экспорт fb2-книг в формате fb2.zip, txt, lrf (используется конвертор fb2lrf)
  • быстрое подключение конвертеров e-pub и pdf
  • импорт/экспорт пользовательских коллекций в формате xml и inpx
  • подключение пользовательских скриптов для обработки книг (создание сборников, конвертация)
  • редактируемые индивидуальные списки жанров любого уровня вложенности
  • рейтинги и отзывы о книгах, отметки о прочтении
  • работа с группами книг (Избранное, К прочтению и т.п.)
  • возможность «в два клика» подключать другие коллекции (Библиотека Траума и др.)

Работа с архивами библиотеки Lib.rus.ec:

  • поддержка fb2- и usr- архивов библиотеки Lib.rus.ec
  • автоматическое обновление списков книг для архивов Lib.rus.ec
  • загрузка рецензий с сайта Lib.rus.ec

Работа с библиотеками на движке Lib.rus.ec (Флибуста и т.п.) в режиме on-line

  • менеджер закачек
  • загрузка книг в фоновом режиме
  • автоматическое обновление on-line коллекций
  • загрузка рецензий с сайта

Интерфейс программы представляет собой несколько листков-закладок. Первые три закладки позволяют работать со списками книг, отсортированными по авторам, сериям и жанрам. Закладка «Поиск» позволяет быстро отыскать нужную книгу. В ранних версиях MHL существовал упрощенный поиск по слову или фрагменту слова. В нынешних релизах используются исключительно квази-SQL запросы.
Домашняя электронная библиотека: MyHomeLib + FBD
Допустим, вам требуется найти книгу, о которой вы помните лишь то, что в ее названии было слово «каникулы». Щелкаем на кнопке «многоточие» рядом с полем «Название». Откроется редактор запросов. Теперь нужно кликнуть по надписи «LIKE» (поиск подобия).
В поле ввода запроса появится
LIKE "%%"
Между знаками «%» вводим искомое слово, лучше без окончания. Закрываем окно. Формируется запрос:
LIKE "%каникул%"
Жмите кнопку «Применить» и спустя секунду-другую можете перебирать список результатов. А если вы вдруг еще вспомнили, что в начале названия искомой книги было что-то летнее, вновь открываем конструктор запросов и добавляем это условие. Должно получиться что-то вроде:
LIKE "%каникул%" AND LIKE «летн%»
Сформулированные условия поиска можно сохранять для последующего использования, как пресеты.
MyHomeLib позволяет разделять книги на группы. Две из них предусмотрены по умолчанию, это «Избранное» и «К прочтению», но никто не мешает пользователю создавать собственные группы. Для просмотра списков отобранных книг существует закладка, которая так и называется «Группы». В случае выбора онлайн-коллекции Либрусек будет еще закладка менеджера закачек.
Основной рабочей закладкой будут, конечно же, «Авторы». По умолчанию перечень авторов разбит по буквам алфавита, но, если потребуется, можно вызвать и полный список.
Произведения текущего автора выводятся в виде удобной древовидной структуры с разбиением по сериям, но можно переключиться в плоски режим (таблица).
Почти все действия с книгами осуществляются посредством контекстного меню. Кроме разделения по группам, MyHomeLib позволяет выделять книги для массового копирования, переноса или удаления, оценивать их по пятибалльной системе, помечать уже прочитанные.
Команда контекстного меню «Информация о книге» позволяет не только просмотреть аннотацию FB2, но и добавлять рецензии. Для «либрусечных» книг можно даже скачивать отзывы пользователей с основного сайта.
Все эти пометки, рейтинги, рецензии, как «надстройки» над основной базой, можно проэкспортировать в XML-файл, чтобы, допустим, после обновления базы вернуть пользовательские данные обратно.
Файлы баз данных MHL компактностью не отличаются. Однако предусмотрена возможность их экспорта в XML-файл или же в формат inpx, что дает выигрыш по объему в десятки раз. Полученный файл можно без проблем выложить в Сеть или же послать по электронной почте. Развертывание inpx обратно в рабочую базу не отнимает много времени.
Для чтения txt, html, doc и FB2-книг в комплект MyHomeLib входит продвинутая читалка AlReader. Но если вы привыкли к другой «смотрелке», например, CoolReader, ее без проблем можно подключить через настройки.
Чтобы извлечь отдельные FB-шки из архивов Либрусека, нужно воспользоваться функцией «Отправить на устройство». Книга будет сохранена в предварительно указанную папку. При этом она может быть упакована в архив zip и переименована согласно настройкам в разделе «Папки/Устройства» функции «Настройки программы». Например: Автор – Название (Серия). Там же можно установить опцию, чтобы программа каждый раз запрашивала, куда же следует положить файл.Есть возможность использовать транслитерацию как всего имени файла/папки, так и отдельных частей (удобно для старых ридеров Sony).

Формат FBD

К сожалению, все, сказанное выше насчет легкости удобства каталогизации относится далеко не ко всем форматам книг. Книги в формате FB2 содержат всю необходимую для каталогизации информацию и их легко обрабатывать с помощью программ-каталогизаторов. Достаточно нажать пару кнопок и из десятков тысяч книг будет извлечена вся необходимая информация, включая обложки и аннотации, файлы будут переименованы и разложены по папкам в соответствии с заданным шаблоном.
Решить проблему с обработкой других форматов электронных книг и призван формат FBD, предложенный авторами программы Fb2Librarian
По сути, FBD — это обычный пустой файл в формате FB2 с заполненным дескрипшеном, имеющим то же имя, что и сама книга.
Таким образом, мы имеем саму книгу в любом из распространенных форматов (PDF, DjVu, CHM, TXT, DOC, etc.) и файл-спутник в формате FBD, содержащий всю необходимую информацию о книге, включая обложку и аннотацию, упакованные а один архив.

Достоинства такого подхода к хранению информации о книге:

  1. Вся информация хранится и передается вместе с книгой
  2. Формат позволяет хранить всю возможную информацию о книге
  3. Книги могут быть обработаны программами-каталогизаторами и онлайн-библиотеками в автоматическом режиме.
  4. Файл описания может быть создан в любом редакторе FB2-книг.

Недостаток (а вернее – теоретически разрешимая проблема), на мой взгляд, только один – стандартные жанры FB2 не подходят для нехудожественной литературы.

Поддержка формата

На данный момент FBD поддерживается библиотекой Либрусек и каталогизаторами MyHomeLib и Fb2Librarian. Насколько я знаю, Поддержка в MyRuLib — в планах.
В настоящее время ведется работа над редактором FBD Maker. Интерфейс редактора строился на подобие интерфейсов редакторов mp3-тэгов, с учетом специфики задач. Он больше подходит для массовой конвертации книг — например, подшивок журналов (в этом случае удобно использовать маски и шаблоны) или архивов библиотеки Генезис (можно получать информацию прямо из нее).
Домашняя электронная библиотека: MyHomeLib + FBD
Домашняя электронная библиотека: MyHomeLib + FBD
Что он умеет на данный момент:

  • заполнять поля по маске данными из имени файла
  • автоматически загружать информацию из базы библиотеки Генезис, используя md5-хеш
  • автоматически конвертировать все отмеченные файлы
  • автоматически вставлять обложку из файла jpg
  • редактировать одиночные файла
  • перезаписывать отдельные поля у групп файлов
  • автоматическая конвертация и переименование файлов с генезиса
  • импорт обложек из DjVu

Конвертацию отдельных книг можно осуществлять непосредственно в MyHomeLib в момент добавления в коллекцию.
Оба проекта (MyHomeLib и FBD Maker) имеет написаны на Delphi. В качестве движка БД используется SQLite. В довесок имеется небольшая утилита для редактирования списка жанров.
Домашняя страница
Исходники открыты и доступны на Assembla:
MyHomeLib
FBD Maker
Приглашаются все желающие принять участие в обсуждении, тестировании и разработке.

Автор: koreec

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js