The OpenNET Project / Index page

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

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

24.04.2025 21:37

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

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

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

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

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

  • Функции для работы с коллекциями, закладками и заметками вынесены в отдельную библиотеку MLBookProc (может быть использована как полностью независимый проект).
  • Добавлен опциональный интерфейс для создания и подключения плагинов (MLPluginIfc).
  • Обеспечена полная поддержка многопоточности на базе OpenMP (доступны два эквивалентных по функциональным возможностям варианта сборки: на базе OpenMP или на базе std::thread).
  • Улучшена работа варианта сборки на базе OpenMP (см. README).
  • Улучшена балансировка нагрузки на ЦП в варианте сборки на базе std::thread.
  • Добавлена возможность создания пользовательских заметок к книгам.
  • Добавлена функция отображения авторов коллекции.
  • Добавлена функция отображения книг коллекции с пользовательскими заметками.
  • Переработаны функции разбора файлов с разметкой XML.
  • Исправлены ошибки в работе с книгами в формате djvu.
  • Добавлена возможность настройки цвета рамки виджетов Gtk::Frame (пользователям, которые изменяли настройки внешнего вида, необходимо вручную добавить в файл ~/.config/MyLibrary/MLStyles.css вставку "#MLFrame {border-color: black;}", или удалить данный файл и произвести настройку внешнего вида заново).
  • Создана документация для библиотеки MLBookProc.
  • Создана документация для MLPluginIfc.
  • Убрана сборочная опция USE_TBB (при необходимости подключение библиотеки tbb теперь происходит автоматически).
  • Другие небольшие изменения и улучшения.

Дополнительно можно отметить релиз плагина MLInpxPlugin. Плагин предназначен для импорта коллекций книг из файлов в формате "inpx" и доступен (altlinux.space, GitHub) под лицензией GPLv3. Для пользователей Arch Linux в AUR размещён готовый сценарий сборки пакета. Для пользователей Windows подготовлен экспериментальный инсталлятор.

  1. Главная ссылка к новости (https://github.com/ProfessorNa...)
  2. OpenNews: Выпуск каталогизатора домашней библиотеки MyLibrary 3.2
  3. OpenNews: Релиз системы управления коллекцией электронных книг Calibre 6.0
Автор новости: ProfessorNavigator
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/63135-mylibrary
Ключевые слова: mylibrary
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (45) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 22:12, 24/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кому оно нужно? Кто-то серьезно пользуется каталогизаторами?
     
     
  • 2.7, Аноним (-), 22:41, 24/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Та да, странно. Я за компом вообще сидя не могу читать. Только лёжа, да и глаза вытекают, если это не бумага или электронная книга с специфическим экраном.
     
     
  • 3.22, ProfessorNavigator (ok), 23:32, 24/04/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Та да, странно. Я за компом вообще сидя не могу читать. Только
    > лёжа, да и глаза вытекают, если это не бумага или электронная
    > книга с специфическим экраном.

    Это ж не читалка)) Оно может открыть файл в вашей любимой читалке, но основная задача - сначала найти нужное. После того как найдено, можно и скопировать на ваш планшетик (хотя я бы всё же порекомендовал для чтения специальные читалки на e-ink или чём-то подобном использовать, если есть возможность - глаза меньше устают).


     
     
  • 4.35, Аноним (35), 01:37, 25/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Оно может открыть файл

    Это программа для открытия файлов? Зачем лишнее действие, я и так могу открыть файл
    >основная задача - сначала найти нужное

    То есть если я хочу прочитать SICP - мне нужно сначала найти SICP? Но я и так могу его найти через браузер.
    >можно и скопировать на ваш планшетик

    Господи, зачем?! Что мешает открыть книгу сразу на плнашетике? Что за усложнения?
    >читалки на e-ink

    Да, только в читалках уже стоят нормальные каталоги книг.

     
     
  • 5.44, User (??), 08:46, 25/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, понимаете - не у всех "домашняя библиотека" на компьютере ограничивается вот ровно одной книгой в папке "загрузки". Вот как только этих самых книг становится столько, что в экран перестают влезать - появляется необходимость в чем-то вот эдаком, да?
    Те-о-ре-ти-чес-ки любая плюс-минус современная читалка этот самый "каталогизатор" в себе несет - но если у вас устройств опять-таки больше одного, да еще не дай б-г разные (FBReader на linux, windows, android таки прям СИЛЬНО разные программы), и вот с форматами зоопарк (Ииии, дааа! Не все эти форматы сами по себе сколько-нибудь нормально умеют в "метаданные" для автоматической каталогизации) - имеет смысл задуматься о чем-то подобном.
     
  • 3.23, Аноним (23), 23:34, 24/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это не для читать.
     

  • 1.2, Аноним (2), 22:15, 24/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Поддерживает ли эта штука BelMarс или UniMarc?
     
     
  • 2.4, ProfessorNavigator (ok), 22:26, 24/04/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Поддерживает ли эта штука BelMarс или UniMarc?

    Нет, не поддерживает. Но если есть желание - можете написать свой плагин. Интерфейс для создания плагинов в общем-то за тем и добавлен. Чтобы, не лазая в основной код, можно было своё что-то на коленке сочинить.

     

  • 1.3, prokoudine (ok), 22:15, 24/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Оно настолько тяжелое, что ему нужна многопоточность? Или предполагает работу с гуём, пока что-то фоново считается?
     
     
  • 2.8, ProfessorNavigator (ok), 22:41, 24/04/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Оно настолько тяжелое, что ему нужна многопоточность? Или предполагает работу с гуём, пока что-то фоново считается?

    Коллекции разные бывают. Если там скажем тысяч сто+ книг, то многопоточность очень даже нужна. В процессе создания коллекции или в процессе поиска по базе данных. Чтобы по базе на 600 тысяч книг поиск был не полчаса, а порядка секунды. Утрирую, конечно, но тем не менее распараллеливание кое-какой выигрыш по времени даёт. Ну и мелочи всякие, вроде чтения баз данных в память без блокировки GUI. Базу данных мегабайт на 90 оно может читать и парсить несколько секунд. И тут нужно либо пользователю под нос окно с предупреждением вывешивать, что мол подожди мил человек - работаем, либо выводить всё это дело в отдельный поток, чтобы GUI не подвешивать. Ну и, кстати, многопоточность сделана регулируемой - перед началом создания коллекции или перед её обновлением пользователь в ручную задаёт ограничение максимального числа используемых потоков.  

     
     
  • 3.10, Аноним (-), 22:44, 24/04/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > 600 тысяч книг

    Да столько ни в одной библиотеке нет. Даже какой-нибудь супер известной типа им. ленина в москвабаде.

     
     
  • 4.25, Аноним (23), 23:35, 24/04/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Библиотека Либрусек (lib.rus.ec) + Libruks(17 апреля 2025 г.) — книг в архивах 439.567
     
  • 4.38, prokoudine (ok), 04:17, 25/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >> 600 тысяч книг
    > Да столько ни в одной библиотеке нет. Даже какой-нибудь супер известной типа
    > им. ленина в москвабаде.

    Библиотека конгресса США -- более 30 млн книг. И всего 150+ миллионов единиц хранения (газеты в томах, карты, рукописи и т.д.).

     
  • 3.36, Аноним (35), 01:39, 25/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Нафига нужно на компьютере 600 тысяч книг? Ты за жизнь прочитаешь от силы пару сотен по 1 разу.
     
     
  • 4.37, prokoudine (ok), 04:15, 25/04/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Нафига нужно на компьютере 600 тысяч книг? Ты за жизнь прочитаешь от
    > силы пару сотен по 1 разу.

    Всего две книги в месяц — и твой скудный предел в 200 книг выбран меньше чем за два года.

     
     
  • 5.45, User (??), 08:50, 25/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Да ты что?! Столько в туалете зависать - это прям со здоровьем проблемы, к гастроэнтерологу бы сходить...
     
  • 4.40, Аноним (23), 04:58, 25/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Пара сотен многовато как-то, достаточно двух — букваря и той, синей.
     

  • 1.5, Аноним (5), 22:38, 24/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Прога нужная, автор молодец!
     
     
  • 2.15, ProfessorNavigator (ok), 23:09, 24/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Прога нужная, автор молодец!

    Спасибо на добром слове.

     

  • 1.6, Аноним (-), 22:39, 24/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Блин, ну дизайн... моё почтение :D П.с. GTK4 для кроссплатформенной софтины - крайне странное решение. Вообще, похоже на чью-то курсовую. Прямо почти как карточная игра в "дурака", которую я когда-то писал на турбо поскале.
     
     
  • 2.14, ProfessorNavigator (ok), 23:08, 24/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Откройте окно настроек И прошлую новость по MyLibray - там скриншоты с демонст... большой текст свёрнут, показать
     
     
  • 3.17, Аноним (-), 23:16, 24/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > особенностей работы данной с позволения сказать ОС

    Каких? А то мои программы (примерно вашего уровня, но под производственные задачи) написанные в Delphi 7 до сих пор открываются на Win 11 и работают великолепно.

    В целом, звучит всё очень мощно. Но по фактам такие каталогизаторы существовали даже во времена ДОС.

     
     
  • 4.26, ProfessorNavigator (ok), 00:06, 25/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вот этих самых, из-за которых ваши программы продолжают работать Не только из-з... большой текст свёрнут, показать
     
     
  • 5.27, Аноним (-), 00:16, 25/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > windows.h

    А вы точно пишите под современную винду? А то даже не представляю чтобы кто-то на столь низком уровне писал прикладные проги в 2к25 году.

     
     
  • 6.28, Аноним (28), 00:26, 25/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Мда, windows.h для современного поколения, оказывается, уже забытые технологии древних.
     
     
  • 7.31, Аноним (-), 00:51, 25/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не запрещено писать хоть в машинных кодах. А так то для каждой задачи хорош свой инструмент и опускаться до windows.h для __прикладного_софта__ - через чур.
     
  • 2.42, Нуину (?), 06:18, 25/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Прямо почти как карточная игра в "дурака", которую я когда-то писал на турбо поскале.

    Ну если там нет функции игры на раздевание — это только 3.

     

  • 1.9, Аноним (-), 22:43, 24/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кстати непонятен прикол про многопоточность. Ведь тут для этой функциональности было бы достаточно производительности 80386 из 80х годов (если писать на каком-нибудь visual basic 3.0 или delphi 1.0 под win 3.x).
     
     
  • 2.12, Аноним (12), 22:56, 24/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    На опеннете новый форс? Часто в комментах 386 вспоминают.
     
     
  • 3.16, Аноним (-), 23:10, 24/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Часто в комментах 386 вспоминают.

    Ну здесь упомянули довольно уместно. Прога действительно overkill по своим возможностям. Сразу видно, что писалась в академических целях.

     
     
  • 4.19, ProfessorNavigator (ok), 23:21, 24/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Сразу видно, что писалась в академических целях.

    А я то и не знал, зачем я её писал. Спасибо - подсказали ;) Вы в код-то загляните - посмотрите где, как и зачем используется многопоточность например. Если знаний не хватает или совсем лень - спросите автора. Он вам может быть даже ответит, если спрашивать будете вежливо))

     
     
  • 5.21, Аноним (-), 23:23, 24/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Вы в код-то загляните

    Дружище, никто даже не пытается обесценить твою работу, поверь, просто такие новости ЗДЕСЬ, это как атомный взрыв.

     

  • 1.11, Аноним (11), 22:56, 24/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Зачем использовать GTK и нарушать вообще все принципы разработки интерфейсов?

    GNOME Human Interface Guidelines писали как раз для GTK приложений.

    Это на QT люди привыкли делать что угодно и в каком угодно стиле. Но на GTK принято делать нормальные современные интерфейсы.

     
     
  • 2.13, Аноним (12), 22:57, 24/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >GTK
    >нормальный интерфейс

    Трусы или крестик

     
  • 2.18, ProfessorNavigator (ok), 23:17, 24/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Зачем использовать GTK и нарушать вообще все принципы разработки интерфейсов?

    Какие именно?)) "Все" - слишком широкое понятие. И в целом - если вам что-то не нравится, то постарайтесь сформулировать - что конкретно и почему. Откроете для себя много нового. Например бывает так, что "плохой дизайн" по итогу трансформируется в банальное "оно непривычно выглядит". Что не делает объект критики чем-то плохим или неудобным в использовании (а это как раз самое главное - чтобы программой было удобно пользоваться). А потом откройте окно настроек. Вдруг там есть ответы на некоторые ваши претензии? ;)

     
     
  • 3.24, Peter (??), 23:34, 24/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    GNOME Human Interface Guidelines https://developer.gnome.org/hig/

    Выше же написано...

     
     
  • 4.29, Аноним (28), 00:29, 25/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Аа, это тот самый HIG, над которым не посмеялся только совсем далекий от IT человек?
     
     
  • 5.30, Аноним (11), 00:48, 25/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    IT давно не ограничен кучкой красноглазиков, которые отказываются принимать современные подходы к разработке. Интерфейсы сейчас делают для массового пользователя, а не только для кучки энтузиастов. Human interface guidelines везде примерно однаковый, что на MacOS, что на Android. Это результат долгих лет развития технологий UI\UX, это просто работает.
     
     
  • 6.33, Аноним (33), 01:12, 25/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > это просто работает.

    Пруфы будут?
    Опыт показывает обратное.

     
  • 2.20, Аноним (-), 23:21, 24/04/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Но на GTK принято делать нормальные современные интерфейсы.

    Это там, где отступы в два мужыцких пальца толщиной и практически уже круглый интерфейс (вот-вот и окна станут идеальным математическим кругом, подождите 2-3 года)? Эх... где мой турбопоскаль и поиск-2...

     
     
  • 3.34, Аноним (33), 01:16, 25/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Это там, где отступы в два мужыцких пальца толщиной

    Надо же чем-то твоим 32 дюйма забить, когда в интерфейсе 2 кнопки. Это как, когда тебе сказали сделать сочинение на 2 листа, ты вымучал полстраницы... и начинаешь крутить шрифты, отступы...

    > окна станут идеальным математическим кругом

    Ой, зря... Ща же понабегут "почему дисплеи обязаны быть квадратными?", "в природе нет квадрата" и т.д.

     

  • 1.32, Аноним (33), 01:09, 25/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Зачем использовать GTK и нарушать вообще все принципы разработки интерфейсов?

    ГТК и Гном выкинули на помойку десятилетия развития интерфейсов...

    > Но на GTK принято делать нормальные современные интерфейсы.

    Жирно... Почти купился.

     
  • 1.39, Аноним (39), 04:33, 25/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вообще прикольно. Я бы добавил возможность хранить файлы других форматов и получилось бы такая mdm/pdm система на минималках.
     
  • 1.43, Жироватт (ok), 08:00, 25/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Почему нет в Реестре Российского ПО?
    Почему не разделен гуй и ядро на разные подпроекты?
    Почему ты заставляешь Тёму плакать?
     
  • 1.46, жявамэн (ok), 09:23, 25/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    нужно переписать на жяву.
    и да гуй выделить в отдельное приложение с веб интерфейсом.
    ядро же реализовать с апи для гуя
     

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



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

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