Выпуск каталогизатора домашней библиотеки MyLibrary 4.3

Состоялся релиз каталогизатора домашней библиотеки MyLibrary 4.3. Код программы написан на языке программирования С++ и доступен (GitHub, GitFlic) под лицензией GPLv3. Графический интерфейс пользователя реализован с помощью библиотеки GTK4. Программа адаптирована для работы в операционных системах семейства Linux и Windows. Для пользователей Arch Linux в AUR доступен сценарий сборки готового пакета. Для пользователей Windows доступен экспериментальный инсталлятор.

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

Реализован поиск книг по различным критериям (фамилия, имя, отчество автора, название книги, серия, жанр) и их чтение через программу, по умолчанию установленную в системе для открытия соответствующих форматов файлов. При выборе книги отображаются аннотация и обложка книги, если таковые доступны. Поддерживается отображение списка файлов, входящих в коллекцию; списка книг, входящих в конкретный файл; списка авторов коллекции; списка книг, для которых пользователь создал заметки.

Возможны различные операции с коллекцией: обновление (осуществляется проверка всей коллекции и сверка хеш-сумм доступных файлов), быстрое обновление (без пересчёта хеш-сумм), экспорт и импорт базы данных коллекции, добавление книг в коллекцию и удаление книг из коллекции, добавление в коллекцию папок с книгами, добавление в коллекцию архивов с книгами (в том числе с упаковкой книг и/или папок в процессе добавления), копирование книг коллекции в произвольную папку, перемещение книг из коллекции в коллекцию. Доступно ручное редактирование записей о книгах в базе данных. Создан механизм закладок для быстрого доступа к книгам. Есть возможность создавать пользовательские заметки к книгам. Опционально доступен интерфейс для создания и подключения плагинов. Есть возможность открыть документацию по библиотекам MLBookProc, MLPluginIfc и XMLParserCPP (входят в состав проекта), если таковая создана в процессе сборки.

Значимые изменения:

  • Методы для работы с XML-файлами вынесены в библиотеку XMLParserCPP (входит в состав библиотеки MLBookProc, может использоваться полностью независимо).
  • Для библиотеки XMLParserCPP создана документация.
  • Устранены ошибки при обработке некорректно оформленных XML файлов.
  • Библиотека MLBookProc переведена на использование std::exception в качестве индикатора ошибок.
  • Некоторые методы и классы библиотеки MLBookProc объявлены устаревшими (подробности в документации).
  • В сборке на базе std::thread для некоторых функций добавлено явное распределение потоков по ядрам процессора.
  • Ускорено отображение обложек книг.
  • Улучшена работа поисковых функций.
  • Улучшена работа с кодировками текста.
  • В функцию быстрого обновления коллекции добавлена проверка наличия файлов в архивах.

Также обновлены рекомендации по использованию программы. В частности можно отметить следующее:

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

Дополнительно можно отметить обновление плагина MLInpxPlugin, предназначенного для импорта коллекций из inpx-файлов (доступен под лицензией GPLv3 на altlinux.space и GitHub). Для пользователей Arch Linux в AUR доступен сценарий сборки готового пакета. Изменения в новой версии сводятся к добавлению явного распределения потоков по ядрам процессора в сборке на базе std::thread.

Также можно отметить обновление плагина MLFBDPlugin, предназначенного для создания файлов в формате fbd. В новой версии плагин переведён на использование библиотеки XMLParserCPP для сохранения файлов в формате XML, а также исправлены некоторые недочёты.

Release. Ссылка here.