La version 4.0 du catalogueur de bibliothèque personnelle MyLibrary a été publiée. Le code du programme est écrit en C++ et est disponible (GitHub, GitFlic) sous la licence GPLv3. L'interface graphique utilisateur est implémentée à l'aide de la bibliothèque GTK4. Le programme est adapté pour fonctionner sur les systèmes d'exploitation de la famille Linux et Windows. Pour les utilisateurs d'Arch Linux, un script de construction de paquet est disponible dans l'AUR. Pour les utilisateurs de Windows, un installateur expérimental est disponible.
MyLibrary catalogue les fichiers de livres au format fb2, epub, pdf, djvu, disponibles à la fois directement et empaquetés dans des archives (zip, 7z, jar, cpio, iso, tar, tar.gz, tar.bz2, tar.xz, rar), et crée sa propre base de données sans modifier les fichiers d'origine ni leur emplacement. L'intégrité de la collection et ses modifications sont vérifiées grâce à la création d'une base de données de valeurs de hachage des fichiers et des archives.
Différentes opérations sur la collection sont possibles : mise à jour (une vérification de l'ensemble de la collection et une comparaison des sommes de contrôle des fichiers disponibles sont effectuées), mise à jour rapide (les tailles des fichiers sont comparées), exportation et importation de la base de données de la collection, ajout de livres à la collection et suppression de livres de la collection, ajout de dossiers de livres à la collection, ajout d'archives de livres à la collection, copie de livres de la collection dans un dossier arbitraire. Une édition manuelle des enregistrements de livres dans la base de données est disponible. Un mécanisme de signets a été créé pour un accès rapide aux livres. Il est possible de créer des notes personnelles sur les livres. Une interface est disponible pour créer et connecter des plugins.
Différentes opérations peuvent être réalisées sur la collection : mise à jour (vérification de l'ensemble de la collection et concordance des sommes de contrôle des fichiers disponibles), mise à jour rapide (sans recalcul des sommes de contrôle), exportation et importation de la base de données de collection, ajout et suppression de livres dans la collection, ajout de dossiers contenant des livres à la collection, ajout d'archives de livres à la collection, copie de livres de la collection vers un dossier arbitraire, déplacement de livres d'une collection à une autre. La possibilité d'éditer manuellement les enregistrements de livres dans la base de données est disponible. Un mécanisme de favoris a été créé pour un accès rapide aux livres. Il est possible de créer des notes utilisateur pour les livres. Une interface pour la création et la connexion de plugins est disponible en option. La documentation des bibliothèques MLBookProc et MLPluginIfc (qui font partie du projet), si elle a été créée lors de la construction, peut être ouverte.
Modifications significatives :
- Les fonctions de gestion des collections, des favoris et des notes ont été extraites dans une bibliothèque séparée, MLBookProc (peut être utilisée comme un projet totalement indépendant).
- Une interface optionnelle pour la création et la connexion de plugins (MLPluginIfc) a été ajoutée.

- Un support complet du multithreading basé sur OpenMP a été assuré (deux variantes de construction équivalentes en termes de fonctionnalités sont disponibles : basées sur OpenMP ou sur std::thread).
- L'opération de la variante de construction basée sur OpenMP a été améliorée (voir README).
- L'équilibrage de la charge sur le CPU a été amélioré dans la variante de construction basée sur std::thread.
- La possibilité de créer des notes utilisateur pour les livres a été ajoutée.

- Une fonction d'affichage des auteurs de la collection a été ajoutée.

- Une fonction d'affichage des livres de la collection avec des notes utilisateur a été ajoutée.
- Les fonctions d'analyse des fichiers avec balisage XML ont été repensées.
- Des erreurs dans le traitement des livres au format djvu ont été corrigées.
- Ajout de la possibilité de configurer la couleur de la bordure des widgets Gtk::Frame (les utilisateurs qui ont modifié les paramètres d'affichage doivent manuellement ajouter dans le fichier ~/.config/MyLibrary/MLStyles.css l'instruction «#MLFrame {border-color: black;}», ou supprimer ce fichier et reconfigurer l'affichage).
- Documentation créée pour la bibliothèque MLBookProc.

- Documentation créée pour MLPluginIfc.
- L'option de compilation USE_TBB a été supprimée (le lien à la bibliothèque tbb se fait désormais automatiquement si nécessaire).
- D'autres petits changements et améliorations.
De plus, nous pouvons mentionner la sortie du plugin MLInpxPlugin. Ce plugin est destiné à l'importation de collections de livres à partir de fichiers au format «inpx» et est disponible (altlinux.space, GitHub) sous licence GPLv3. Un script de construction de paquet est disponible dans l'AUR pour les utilisateurs d'Arch Linux. Un installateur expérimental a été préparé pour les utilisateurs de Windows.
Source : opennet.ru




