The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

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

06.05.2026 08:03 (MSK)

Состоялся релиз каталогизатора домашней библиотеки MyLibrary 5.0. Код программы написан на языке программирования С++ и доступен (GitHub, GitFlic) под лицензией GPLv3. Графический интерфейс пользователя реализован с помощью библиотеки Qt6. Программа адаптирована для работы в операционных системах семейства 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 могут храниться любые файлы, не только книги. Контроль целостности коллекции и её изменений осуществляется за счёт создания базы данных хэш-сумм файлов и архивов.

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

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

MyLibrary может работать с коллекциями, находящимися на внешнем сервере (соответствующие папки и файлы должны быть доступны по протоколу SMB и смонтированы на локальном компьютере с помощью gvfs, kio-fuse или их аналогов).

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

  • Проект переведён на использование нового типа базы данных (коллекции, закладки, заметки).
  • Добавлен слой совместимости со старыми базами данных: коллекции, созданные в предыдущих версиях программы, загружаются и работают в режиме ограниченной функциональности (отключены функции редактирования базы данных и некоторые другие), закладки и заметки - без каких либо ограничений (старые базы будут автоматически преобразованы в новые при изменении заметок или закладок).
  • Графический интерфейс переведён на использование Qt6.
  • Изменено поведение функции создания коллекций - теперь в коллекцию можно добавлять произвольный набор папок и поддерживаемых файлов.
  • Добавлена функция создания коллекций из inpx файлов. Содержимое inpx файлов будет загружаться "на лету" при переключении на соответствующую коллекцию. Inpx коллекции работают в режиме ограниченной функциональности (отключены функции редактирования базы данных и некоторые другие).
  • Изменено поведение функции обновления коллекций. При попытке обновления устаревших и inpx коллекций они будут преобразованы в нативные. При обновлении нативных коллекций - в случае быстрого обновления - проверяются наличие и размеры файлов, если размер файла изменился - будет выполнен его повторный разбор. При обычном обновлении вместо размеров проверяются хеш-суммы файлов.
  • Изменено поведение функции добавления книг в существующую коллекцию. Новые книги теперь добавляются в базу данных без перемещения соответствующих файлов.
  • Улучшена работа поисковых алгоритмов.
  • Ускорена работа функции отображения авторов коллекции.
  • Переработан API библиотеки MLBookProc и библиотеки для подключения плагинов.
  • Улучшена работа библиотеки разбора xml файлов, добавлена начальная поддержка формата html.
  • Отключена возможность создания документации внутренних библиотек в формате pdf. Вместо неё добавлена документация в виде man страниц. Документация в формате html - без изменений.
  • Для сборки теперь требуется поддержка компилятором стандарта C++20.
  • В разряд обязательных переведена поддержка компилятором стандарта OpenMP.
  • Изменены сценарии сборки и сборочные опции.
  • Другие небольшие изменения и улучшения.

Дополнительно можно отметить обновление плагина MLFBDPlugin (доступен под лицензией GPLv3 на altlinux.space и GitHub, для пользователей Arch Linux доступен в AUR), предназначенного для создания файлов в формате fbd. В новой версии плагин переведён на использование Qt6.

Также можно отметить первый выпуск плагина MLArchiverPlugin. Плагин предназначен для создания и редактирования архивов и доступен (altlinux.space, GitHub, AUR) под лицензией GPLv3.

Репозитории плагина MLInpxPlugin переведены в архивный режим - функциональность плагина включена в состав основной программы.

  1. Главная ссылка к новости (https://github.com/ProfessorNa...)
  2. OpenNews: Релиз программы для шифрования текста и файлов Stirlitz
  3. OpenNews: Выпуск каталогизатора домашней библиотеки MyLibrary 4.3
  4. OpenNews: Выпуск p2p-мессенджера Communist 2.0 и библиотеки libcommunist 1.0
Автор новости: ProfessorNavigator
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/65371-mylibrary
Ключевые слова: mylibrary
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (50) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 08:19, 06/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    Интерфейс конечно всратый. Сейчас, в эпоху ИИ, можно попросить нейронку, она нарисует нормальный интерфейс. А такой, только для любителей 90-х.
     
     
  • 2.4, Sm0ke85 (ok), 08:22, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >Интерфейс конечно всратый. Сейчас, в эпоху ИИ, можно попросить нейронку, она нарисует нормальный интерфейс. А такой, только для любителей 90-х.

    Ты путаешь, это ж стиль Современный, просто с цветовой палитрой поиграли, погляди на ПО из 90х - там даже в консольных ТУИ-приложениях все ок (в т.ч. с тенями)...

     
  • 2.18, Bob (??), 09:22, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Тогда получше был)
     
  • 2.24, iPony128052 (?), 09:54, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Да, та же самая мысль.
    Скормить мощной нейронке с запросом "перепиши нормально".
    Хуже уж точно не будет (особо уже некуда).
     
  • 2.25, Жироватт (ok), 09:56, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Аккуратнее, аффтырь как возьмет свою библиотеку разбора ХМЛ, да как придет к тебе домой, да как пересадит тебя на мессенджер "Коммунизм"...
    Он знает, где ты живёшь - и твой дом скоро станет таким же!
     
     
  • 3.30, Аноним (30), 10:31, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Какое хорошее название у мессенджера! Надо брать!
     
  • 2.27, Аноним (27), 10:05, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Вы здесь новенький?
     
  • 2.31, Аноним (30), 10:34, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Хорошо, что молодым теперь есть, у кого попросить.
     
  • 2.38, Аноним (38), 11:18, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    "Если правый глаз твой соблазняет тебя, вырви его и брось от себя" (Матв. 5:29)
     
  • 2.40, ProfessorNavigator (ok), 11:56, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    "Быть, а не казаться". Нейронка вполне может рисовать что угодно, меня же интересует то, что люди могут создать своими руками, что они хотят этим сказать. Что я сам могу нарисовать и создать. Это в целом.

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

    С рисованием примерно аналогично - нарисовать "уважаемые" дизайнеры (нейронки) могут всё, что угодно. Дальше же встаёт вопрос конкретных графических библиотек, их возможностей, нюансов работы композиторов и т.д.

     

  • 1.2, Sm0ke85 (ok), 08:19, 06/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А будет работать со скачанной "библиотекой флибусты" на 220ГБ из зеленого магазинчика?

    Просто сейчас там под линь скриптом можно доставать книги (это конечно не напрягает, но хочется больше функционала)

     
     
  • 2.8, Аноним (8), 08:40, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем платить? Если можно заплатить только за интернет, а всё остальное с зелёного магазина.
    Пока другие "грамотные потребители" платят подписки и лишаются доступа, другие направляют эти деньги на домашний сервер, где есть библиотека контента, в высоком качестве, с несколькими языковыми дорожками, нативно без лишних приложений, без DRM, без надуманных блокировок и без VPN, запланированного устаревания, оффлайн...
     
     
  • 3.11, Bob (??), 09:04, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Слишком много барыг правообладателей задрали цены, отдавая авторам - копейки. Такое поддерживать не стоит. А на вой "правильных" - можно забить.

    Налоги с покупок идут на чебурнетизацию - так вообще смысл какой чёт покупать? Залочат же. Инет)

    На счёт сервера... Хз... А нужно ли каждому именно его деожать? Внешний hdd с роутером на open-wrt достаточно.

    Устаревание - будет. Потребительский ширпотреб и лень - делают своё дело)

     
  • 3.46, Джон Титор (ok), 12:15, 06/05/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.22, anonymously (?), 09:37, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    пример скрипта в студию?
     
  • 2.43, Джон Титор (ok), 12:14, 06/05/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.44, ProfessorNavigator (ok), 12:14, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > из зеленого магазинчика

    Не уверен, что правильно понял эзопов язык. Но всё же рискну ответить - тестировалось это всё в том числе на одной... библиотеке на 500 с лишним гигабайт. Можно использовать идущий в комплекте inpx файл (загрузка базы примерно секунд 10 - 15), можно - создать нативную коллекцию. Оба варианта имеют свои нюансы. Inpx - некоторые ограничения по функционалу (основное всё работает - открытие книг, их копирование в произвольную папку), но при этом быстро, и записи в базе оформлены более аккуратно. Нативные коллекции - долго (зависит от конкретного железа, если книги на HDD, то часов 5-6 на индексирование всей коллекции на 8 потоках), записи в базе - берутся напрямую из файлов книг (а там они оформлены порой так, что мата не хватает, и проблемы с кодировками иногда), но при этом книг будет больше (в последних версиях сделано так, что программа будет "доставать" даже совсем сбойные), плюсом доступны все опции, вроде например возможности экспорта/импорта базы данных коллекции или её ручной редактуры.

     

  • 1.3, Аноним (3), 08:22, 06/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Всегда захожу на скрины глянуть. Интерфейс менять не нужно. Это уже фишка.
     
  • 1.5, Аноним (5), 08:25, 06/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Графический интерфейс переведён на использование Qt6
    >требуется поддержка компилятором стандарта C++20

    Пример реального развития софта, а не обновление ради обновления.

     
     
  • 2.14, Bob (??), 09:19, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И зачем оно надо? Это же читалка)

    stdu viewer на винде, alreader на дроиде - вершина, которую не покорили до сих пор)
    А софтины 10+ летних версий и работают отлично.

    Можно с эпохи j2me и xp чёт вспомнить - аналогично)

    А вот гонка за новым компилятором и фреймворком мне непонятна, смысл то в чём?

    Вообще, пора бы базовый софт как PWA версии пилить, тогда все силы чисто в функционал вбрасывать можно.

     
     
  • 3.35, Аноним (30), 10:46, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    На Винде всё допотопное и окаменевшее не от хорошей жизни - сырцов нет.
    А в Линуксе вполне разумно обновиться на С++20, ккоторый теперь у свежего GCC по умолчанию, чтобы меньше кода писать, и на Qt6, чтобы не держать десять почти одинаковых рантаймов в системе (и в памяти).
     
  • 3.47, ProfessorNavigator (ok), 12:30, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > А вот гонка за новым компилятором и фреймворком мне непонятна, смысл то в чём?

    В данном конкретном случае никакой гонки нет. До этого интерфейс был на GTK4 (gtkmm), если же переводить его на Qt - что было проделано - то логично, по-моему, брать актуальную версию фреймворка.

    Со стандартом история немного другая. В С++20 были введены функциональные возможности, которые нужны для работы программы. До этого всё это нужно было реализовывать руками, теперь же - просто вызов функции из стандартной библиотеки ЯП. Иными словами - меньше возни с кодом. При этом актуальные для большинства дистрибутивов версии компиляторов более-менее нормально поддерживают новый стандарт (ему так-то уже 6 лет). Поэтом было принято решение о переходе.

     

  • 1.6, Аноним (8), 08:33, 06/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    MyLibrary + весь архив Флибуста = ❤️
     
  • 1.7, 16yo expert (?), 08:39, 06/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Глядя на этот кошмар на картинках хочется спросить - разве сегодня 1 апреля?
     
     
  • 2.32, Аноним (30), 10:37, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Глядя на парад комических артистов в комментариях, аналогичный вопрос!
     

  • 1.9, anonymos (?), 08:59, 06/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    "папки и файлы должны быть доступны по протоколу SMB" - это такой странный юмор?
     
     
  • 2.49, ProfessorNavigator (ok), 12:43, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > "папки и файлы должны быть доступны по протоколу SMB" - это такой странный юмор?

    Уже отвечал в прошлый раз, но повторюсь. Никаких специальных возможностей для работы с сетью в MyLibrary на данный момент нет. Они есть в планах. Всё, что есть сейчас, достигается за счёт правильного оформления кода. С сетью в данном случае взаимодействуют прослойки - gvfs, kio-fuse и т.п. - в MyLibrary просто используются соответствующие имена файлов (в них присутствует указание на протокол). Т.е. в стандартные функции С++ (std::fstream) отправляется правильно оформленный путь файла, дальше вызов обрабатывается ОС. Как она это делает - зависит полностью от неё. В теории может быть использован и другой протокол, но тестировалось это всё на SMB. Подразумевается, что это всё будет использоваться в локальных сетях. На свой страх и риск.

     

  • 1.10, Аноним (10), 08:59, 06/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Контроль целостности коллекции и её изменений осуществляется за счёт создания базы данных хэш-сумм файлов и архивов

    А в каком формате хэш? Вот бы это можно было юзать для восстановления побитых файлов через p2p

     
     
  • 2.17, Bob (??), 09:21, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >юзать для восстановления побитых файлов через p2p

    сам торрент перехэшируй, чудак

     
  • 2.50, ProfessorNavigator (ok), 12:47, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > А в каком формате хэш?

    При создании нативной коллекции все найденные поддерживаемые файлы хешируются. Дальше хеши используются при обновлениях коллекции для проверки наличия изменений. Используемый алгоритм - BLAKE2B.

     

  • 1.23, Pascal (??), 09:51, 06/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Блииииин, эта чо за GUI? Рак глаз получить можно.
     
  • 1.26, Жироватт (ok), 09:59, 06/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Аффтар! Почему ты забросил свои остальные программы?
    Мессенджер сейчас как-никак куда более актуальная нонче весчь, чем книгоиндексилка.
     
     
  • 2.51, ProfessorNavigator (ok), 12:54, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Мессенджер сейчас как-никак куда более актуальная нонче весчь, чем книгоиндексилка.

    Вы правы в целом. Но автор - один, и его на всё не хватает. Уже пару раз принимался за приведение в порядок мессенджера. А дальше... Нужна база данных, её нужно на чём-то обкатать. Обкатываем на MyLibrary, но для этого оказалось нужно большую часть библиотеки MlBookProc переписать. Поскольку переписывается библиотека - нужно адаптировать GUI, при этом были планы перевести всё это на Qt (который должен к тому же быть задействован в новой версии мессенджера - т.е. тоже неплохо бы на чём-нибудь обкатать). В результате - 3 месяца возни с MyLibrary.

     

  • 1.28, Аноним (-), 10:07, 06/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Графический интерфейс переведён на использование Qt6.

    Ух черт, такое и из кутей можно забабахать?! :)

     
     
  • 2.48, Жироватт (ok), 12:38, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Если постараться, да еще и этих новых кедовых виджетов налить...
     
     
  • 3.52, ProfessorNavigator (ok), 12:56, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > кедовых виджетов налить...

    Нет ни одного, всё исключительно на "голом" Qt.

     
  • 2.53, ProfessorNavigator (ok), 12:57, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Ух черт, такое и из кутей можно забабахать?! :)

    Как видите))

     

  • 1.29, Аноним (29), 10:10, 06/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот после такого люди и говорят, что UI в Linux уродлив.
     
  • 1.33, Аноним (33), 10:40, 06/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Автору уважение за труд
     
     
  • 2.58, ProfessorNavigator (ok), 13:17, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо.
     

  • 1.34, Аноним (34), 10:42, 06/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Зачем делать половину UI со светлым текстом на темном фоне, а вторую наоборот? Если удалить styles.css, то наверное будет дефолтная палитра от QT.
     
     
  • 2.54, ProfessorNavigator (ok), 12:58, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > наверное будет дефолтная палитра от QT.

    Загляните в настройки ;)

     

  • 1.36, Аноним (36), 10:51, 06/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот же ж, не успел... А я только собрался попросить упаковку в MLFBDPlugin сделать опциональной (но пусть галочка будет по умолчанию включена, чтобя поведение не менять).
     
     
  • 2.57, ProfessorNavigator (ok), 13:16, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так-то fbd - подразумевает наличие архива. Если я правильно понимаю, вы используете плагин для создания fb2? Или подразумеваются некие другие варианты использования?
     

  • 1.37, Аноним (36), 10:55, 06/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В сборочных файлах не увидел минимальную версию Qt. Возможно ли обойтись 6.4, как в Ubuntu'образных 24.04 LTS? (6.4.2, если полностью.)

    6.2.4, как в Ubuntu'образных 22.04 LTS, наверное, уже будет не очень удобно...

     
  • 1.39, kusb (?), 11:42, 06/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Мне нравится графический интерфейс, хотя кажется немного дисгармоничным. Что со мной не так...
     
     
  • 2.42, Аноним (42), 12:02, 06/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    — Этот интерфейс для аутистов
    — А мне понравился!
     

  • 1.45, Аноним (45), 12:14, 06/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    хватит это дерьмо сюда выкладывать
     
  • 1.55, Аноним (55), 13:06, 06/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Произведена косметическая перепланировка, без решения хоть каких-то серьёзных пр... большой текст свёрнут, показать
     
  • 1.56, Анонимище (?), 13:09, 06/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Прошу меня простить, я в танке: что такого можно сделать с софтом-катологизатором что будет проблематично сделать через файловую систему? У меня есть куча файлов которые неплохо бы катологизировать
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру