README.md

MyLibrary

Описание

MyLibrary - это простая программа для создания и поддержания коллекций книг в форматах .fb2, .epub, .pdf, .djvu, .odt, .txt, .md и .fbd (fbd - для любых файлов, не только для книг). Возможна также работа с книгами, упакованными в различные типы архивов. Поддерживаются архивы zip, 7z, jar, cpio, iso, tar, tar.gz, tar.bz2, tar.xz, rar (см. Замечания). В процессе формирования коллекции создаётся собственная база данных, исходные файлы книг, их расположение и названия при этом не изменяются. Поддерживается работа с inpx коллекциями. См. также секцию Использование.

Установка

Linux

cmake -DCMAKE_BUILD_TYPE=Release -B _build
cmake --build _build
cmake --install _build

Дополнительно может понадобиться установить префикс с помощью опции CMAKE_INSTALL_PREFIX (префикс по умолчанию /usr/local).

В состав MyLibrary входит библиотека MLBookProc (см. Замечания). Для создания документации к библиотеке установите опцию BUILD_MLBOOKPROC_DOCS в ON (см. также секцию Зависимости).

В состав библиотеки MLBookProc входит библиотека XMLParserCPP (см. секцию Замечания). Для сборки документации XMLParserCPP необходимо установить опцию cmake CREATE_DOCS_XMLPARSERCPP в ON.

В MyLibrary имеется возможность подключения плагинов. Если вам необходима документации по созданию плагинов, установите опцию BUILD_MLPLUGIN_DOCS в ON (см. также секцию Зависимости).

Windows

В данный момент установка возможна с помощью проекта MSYS2. Выполните инструкции по установке с сайта проекта, а также установите зависимости, указанные в секции Зависимости. Кроме того вам может понадобиться git. Сборка может быть осуществлена в терминале MinGW с помощью следующих команд:

cmake -DCMAKE_BUILD_TYPE=Release -B ../_build
cmake --build ../_build
cmake --install ../_build

Вам также обязательно нужно установить префикс с помощью опции CMAKE_INSTALL_PREFIX (в зависимости от выбранного в MSYS2 типа пакетов, он может быть например /ucrt64 или /mingw64).

В состав MyLibrary входит библиотека MLBookProc (см. Замечания). Для создания документации к библиотеке установите опцию BUILD_MLBOOKPROC_DOCS в ON (см. также секцию Зависимости).

В состав библиотеки MLBookProc входит библиотека XMLParserCPP (см. секцию Замечания). Для сборки документации XMLParserCPP в формате html необходимо установить опцию cmake CREATE_DOCS_XMLPARSERCPP в ON.

В MyLibrary имеется возможность подключения плагинов. Если вам необходима документации по созданию плагинов, установите опцию BUILD_MLPLUGIN_DOCS в ON (см. также секцию Зависимости).

Если всё прошло корректно, то исполняемый файл mylibrary.exe будет находиться в msys_dir/mingw_dir/bin. Иконка для создания ярлыка на рабочем столе - в msys_dir/mingw_dir/share/icons/hicolor/512x512/apps/mylibrary.ico.

Также теперь доступен экспериментальный инсталлятор (см. релизы).

Зависимости

В MyLibrary используются следующие бибилиотеки: Qt6 (компоненты: Core, Widgets, LinguistTools), poppler, DjVuLibre, libarchive, icu (версия >= 69), libgcrypt, libgpg-error, Magick++, LibUDB. Все библиотеки для сборки должны иметь заголовочные файлы, т.е. если вы используете например Debian Linux, то вам потребуются также …-dev версии пакетов. Кроме того для сборки понадобятся CMake и, например, make или ninja.

Для сборки необходима поддержка компилятором стандарта OpenMP, поэтому вам может потребоваться установить соответствующие библиотеки (например libgomp).

Для создания документации необходим doxygen.

Использование

Базовое использование

Всё просто: создайте коллекцию с помощью соответствующего пункта меню, выполните поиск и откройте книгу (щелчок правой кнопкой мыши на строке с книгой в таблице с результатами поиска). Книга откроется в программе, используемой в системе для обработки соответствующего типа файлов по умолчанию. Кроме того вы можете удалить книгу из коллекции, добавить книгу в коллекцию, добавить в коллекцию папку с книгами, скопировать книгу коллекции в нужную вам папку, добавить в коллекцию архив с книгами. Также возможно обновление коллекции, её удаление, возможен экспорт и импорт базы данных коллекции и ручное редактирование записей в базе данных. Доступен механизм закладок для быстрого доступа к книгам. Возможно создание пользовательских заметок к книгам. Кроме того вы можете подключать и отключать плагины (потребуется указать полный путь до соответствующей библиотеки). Доступны функции просмотра файлов коллекции и просмотра списка авторов книг из коллекции. Доступно создание коллекций из inpx файлов. См. также секцию Замечания.

Продвинутое использование.

Строка поиска Фамилия может быть использован как универсальная строка поиска по авторам. Т.е. вы можете вводить в неё фамилию, имя, отчество и/или псевдоним автора, а не только фамилию.

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

Книги коллекции могут быть размещены на внешнем сервере. В этом случае вам необходимо настроить доступ к серверу по протоколу SMB, после чего смонтировать на машинах-клиентах родительскую папку коллекции с помощью gvfs, kio-fuse или их аналогов (с сохранением авторизации на протяжении сеанса, если таковая требуется). Если всё было настроено корректно, то MyLibrary сможет работать с подключенными по сети папками также, как с локальными, без каких либо дополнительных настроек. Для ускорения работы, после подключения по протоколу SMB, коллекции можно создавать только на одном ПК, после чего воспользоваться функциями экспорта и импорта базы данных коллекции.

Замечания

Замечания по типам коллекций

Начиная с версии 5.0 программа поддерживает три разных типа коллекций: устаревшие, inpx и нативные. Устаревшие коллекции - это коллекции, созданные с помощью предыдущих версий программы. Inpx - это коллекции, созданные из inpx файлов. Нативные - это коллекции созданные в текущей версии программы. Устаревшие и inpx коллекции поддерживаются в режиме ограниченной функциональности: отключены функции редактирования записей в базах данных и некоторые другие. Функция обновления коллекции в случае с устаревшими и inpx типами пересоздаст коллекцию в виде нативной. В случае inpx коллекций, если нет желания конвертировать их в нативные, то для обновления можно просто заменить inpx файл в папке коллекции на новый, после чего перезагрузить коллекцию (функция перезагрузки доступна в главном меню).

Замечания по использованию архивов

  1. rar архивы поддерживаются частично - доступны лишь операции, связанные с чтением архивов. Операции, требующие осуществления записи в архив, будут отклоняться с выводом соответствующего предупреждения.
  2. При работе с rar архивами может произойти нештатное завершение программы (ошибка в libarchive). В связи с этим пользователям рекомендуется перепаковать книги в любой другой поддерживаемый тип архивов вручную.

Замечания по библиотеке MLBookProc

С версии 4.0 функции по работе с книгами, коллекциями, закладками и заметками вынесены в отдельную библиотеку MLBookProc. MLBookProc входит в состав MyLibrary и является неотъемлемой частью данной программы. Однако MLBookProc также может быть собрана и использоваться полностью автономно (в соответствии с лицензией GPLv3). Для автономной сборки необходимо установить зависимости, указанные в секции Зависимости (все, кроме Qt и Magick++). После этого необходимо перейти в директорию MLBookProc и выполнить команды cmake, аналогичные указанным в секции Установка. Библиотека может быть подключена к вашему проекту командами cmake:

find_package(MLBookProc REQUIRED)
target_link_libraries(<mytarget> PUBLIC MLBookProc::MLBookProc)

Замечания по библиотеке XMLParserCPP

С версии 4.3 функции по работе с xml файлами вынесены в библиотеку XMLParserCPP (входит в состав MLBookProc). Данная библиотека может быть собрана и использоваться независимо (в соответствии с дицензией GPLv3). Для автономной сборки необходимо установить icu (см. секцию Зависимости). После этого необходимо перейти в директорию MLBookProc/XMLParserCPP и выполнить команды cmake, аналогичные указанным в секции Установка. Для XMLParserCPP актуальна опция CREATE_DOCS_XMLPARSERCPP. В состав XMLParserCPP входят методы и классы для начального разбора xml файлов, для записи xml файлов, а также методы для работы с кодировками текста (определение и преобразование, пригодны для работы не только с xml файлами). См. документацию по XMLParserCPP для получения более подробной информации по доступным методам.

Библиотека может быть подключена к вашему проекту командами cmake:

find_package(XMLParserCPP REQUIRED)
target_link_libraries(<mytarget> PUBLIC XMLParserCPP::XMLParserCPP)

Замечания по использованию OpenMP

Для максимальной эффективности использования перед запуском программы необходимо установить системную переменную OMP_CANCELLATION в true. Если вы запускаете программу через .desktop файл, установленный из репозитория программы, то никаких дополнительных действий предпринимать не нужно (необходимое значение переменной OMP_CANCELLATION устанавливается при запуске программы автоматически). В противном случае команда запуска MyLibrary может выглядеть следующим образом:

OMP_CANCELLATION=true MyLibrary

Отсутствие переменной OMP_CANCELLATION или её установка в false не вызовут каких-либо ошибок в работе программы, однако некоторые функции могут работать медленнее.

Замечания по использованию в Windows

В сборке, используемой в инсталляторе, отсутствует документация по MLBookProc, XMLParserCPP и созданию плагинов. Также отсутствуют заголовочные файлы, необходимые для создания плагинов, и заголовочные файлы MLBookProc и XMLParserCPP. Если вы хотите создать плагин или использовать библиотеки в собственном проекте, то воспользуйтесь проектом MSYS2.

Официально поддерживаемые плагины

MLArchiverPlugin

Плагин для создания архивов.
Ссылка 1
Ссылка 2

MLFBDPlugin

Плагин для создания книг в формате fbd (файл книги упаковывается в архив вместе с файлом с расширением fbd, в котором содержится тег description формата fb2). Возможно добавление любых файлов, не только книг.
Ссылка 1
Ссылка 2

Лицензия

GPLv3 (см. COPYING).

Поддержка

Если есть желание поддержать проект, то можно пройти по следующей ссылке: поддержка

Контакты автора

Вопросы, пожелания, предложения и отзывы можно направлять на следующий адрес:
bobilev_yury@mail.ru

Описание
Домашний библиотекарь
Релизы
последний
Конвейеры
0 успешных
0 с ошибкой
Разработчики