Состоялся релиз открытого каталогизатора домашней библиотеки MyLibrary 4.0. Программа адаптирована для работы в операционных системах семейства Linux и Windows. Для пользователей Arch Linux в AUR доступен готовый сценарий сборки пакета. Для пользователей Windows доступен экспериментальный инсталлятор. Исходный код решения написан на языке программирования С++ и опубликован на GitHub и GitFlic под лицензией GPLv3. Графический интерфейс пользователя в проекте реализован с помощью библиотеки GTK4. Версия MyLibrary 3.0 вышла в февраля 2024 года.
Проект MyLibrary каталогизирует файлы книг в формате fb2, epub, pdf, djvu, как доступные напрямую, так и упакованные в архивы (zip, 7z, jar, cpio, iso, tar, tar.gz, tar.bz2, tar.xz, rar), и создаёт собственную базу данных, не изменяя исходные файлы и не меняя их положения. Контроль целостности коллекции и её изменений осуществляется за счёт создания базы данных хэш‑сумм файлов и архивов.
В решении реализован поиск книг по различным критериям (фамилия, имя, отчество автора, название книги, серия, жанр) и их чтение через программу, по умолчанию установленную в системе для открытия соответствующих форматов файлов. При выборе книги отображаются аннотация и обложка книги, если таковые доступны. Проектом поддерживается отображение списка файлов, входящих в коллекцию, и списка книг, входящих в конкретный файл.
В MyLibrary возможны различные операции с коллекцией, включая обновление (осуществляется проверка всей коллекции и сверка хэш‑сумм доступных файлов), экспорт и импорт базы данных коллекции, добавление книг в коллекцию и удаление из неё, добавление в коллекцию папок с книгами, добавление в коллекцию архивов с книгами, копирование книг коллекции в произвольную папку, перемещение книг из коллекции в коллекцию. В проекте доступно ручное редактирование записей о книгах в базе данных, а также создан механизм закладок для быстрого доступа к книгам.
По информации OpenNET, основные изменения и доработки в MyLibrary 4.0:
функции для работы с коллекциями, закладками и заметками вынесены в отдельную библиотеку MLBookProc (может быть использована как полностью независимый проект);
добавлен опциональный интерфейс для создания и подключения плагинов (MLPluginIfc);
обеспечена полная поддержка многопоточности на базе OpenMP (доступны два эквивалентных по функциональным возможностям варианта сборки: на базе OpenMP или на базе std::thread);
улучшена работа варианта сборки на базе OpenMP;
улучшена балансировка нагрузки на ЦП в варианте сборки на базе std::thread;
добавлена возможность создания пользовательских заметок к книгам;
добавлена функция отображения авторов коллекции;
добавлена функция отображения книг коллекции с пользовательскими заметками;
переработаны функции разбора файлов с разметкой XML;
исправлены ошибки в работе с книгами в формате djvu;
добавлена возможность настройки цвета рамки виджетов Gtk::Frame (пользователям, которые изменяли настройки внешнего вида, необходимо вручную добавить в файл ~/.config/MyLibrary/MLStyles.css вставку «#MLFrame {border-color: black;}», или удалить данный файл и произвести настройку внешнего вида заново);
создана документация для библиотеки MLBookProc;
создана документация для MLPluginIfc;
убрана сборочная опция USE_TBB (при необходимости подключение библиотеки tbb теперь происходит автоматически).
Источник: habr.com