Foi lançado o catalogador de biblioteca doméstica MyLibrary 4.3. O código do programa foi escrito na linguagem de programação C++ e está disponível (GitHub, GitFlic) sob a licença GPLv3. A interface gráfica do usuário foi implementada usando a biblioteca GTK4. O programa foi adaptado para funcionar em sistemas operacionais da família Linux e Windows. Para usuários do Arch Linux, um script de construção do pacote pronto está disponível no AUR. Para usuários do Windows, um instalador experimental está disponível.
MyLibrary catalogiza arquivos de livros nos formatos fb2, epub, pdf, djvu, odt, txt, md, tanto diretamente acessíveis quanto embalados em arquivos (zip, 7z, jar, cpio, iso, tar, tar.gz, tar.bz2, tar.xz, rar), e cria seu próprio banco de dados, sem modificar os arquivos de origem e suas localizações. O formato fbd (arquivo de livro, embalado em um arquivo junto com um arquivo com a extensão fbd, contendo a tag description do formato fb2) também está disponível para catalogação. No formato fbd, é possível armazenar qualquer arquivo, não apenas livros. O controle de integridade da coleção e suas alterações é feito através da criação de um banco de dados de hashes dos arquivos e arquivos compactados.
Foi implementada a busca de livros por vários critérios (sobrenome, nome, patronímico do autor, título do livro, série, gênero) e sua leitura através do programa, que está definido como padrão no sistema para abrir os formatos de arquivo correspondentes. Ao selecionar um livro, uma sinopse e a capa do livro são exibidas, se disponíveis. O suporte para exibir a lista de arquivos que fazem parte da coleção; a lista de livros que fazem parte de um arquivo específico; a lista de autores da coleção; a lista de livros para os quais o usuário criou notas é mantido.
Diversas operações com a coleção são possíveis: atualização (verificando toda a coleção e conferindo os hashes dos arquivos disponíveis), atualização rápida (sem recalcular os hashes), exportação e importação do banco de dados da coleção, adição de livros à coleção e remoção de livros da coleção, adição de pastas com livros à coleção, adição de arquivos compactados com livros à coleção (inclusive com a troca de livros e/ou pastas durante o processo de adição), cópia de livros da coleção para uma pasta arbitrária, e movimentação de livros de uma coleção para outra. A edição manual de registros de livros no banco de dados está disponível. Um mecanismo de favoritos foi criado para acesso rápido aos livros. É possível criar anotações personalizadas para os livros. Opcionalmente, uma interface para criação e conexão de plugins está disponível. Há a opção de abrir a documentação das bibliotecas MLBookProc, MLPluginIfc e XMLParserCPP (inclusas no projeto), se esta for criada durante a construção.
Mudanças significativas:
- Os métodos para trabalhar com arquivos XML foram extraídos para a biblioteca XMLParserCPP (parte da biblioteca MLBookProc, podendo ser utilizada de forma totalmente independente).
- Uma documentação foi criada para a biblioteca XMLParserCPP.
- Erros ao processar arquivos XML mal formatados foram corrigidos.
- A biblioteca MLBookProc foi atualizada para usar std::exception como indicador de erros.
- Alguns métodos e classes da biblioteca MLBookProc foram marcados como obsoletos (veja a documentação para mais detalhes).
- Na versão baseada em std::thread, a distribuição explícita de threads entre núcleos de CPU foi adicionada para algumas funções.
- A exibição das capas dos livros foi acelerada.
- A funcionalidade de pesquisa foi aprimorada.
- O suporte a diferentes codificações de texto foi melhorado.
- Foi adicionada uma verificação de arquivos nos arquivos compactados à função de atualização rápida da coleção.
As recomendações para o uso do programa também foram atualizadas. Em particular, podemos destacar o seguinte:
- A string de busca 'Sobrenome' pode ser utilizada como uma string de busca universal para autores. Ou seja, os usuários podem inserir sobrenome, nome, patronímico e/ou pseudônimo do autor, e não apenas o sobrenome.
- Os livros da coleção podem ser armazenados em um servidor. Nesse caso, os usuários precisam configurar o acesso ao servidor via protocolo SMB, após o qual a pasta principal da coleção deve ser montada nas máquinas cliente usando gvfs, kio-fuse ou ferramentas semelhantes (mantendo a autorização durante a sessão, se necessário). Se tudo estiver configurado corretamente, o MyLibrary poderá trabalhar com pastas conectadas na rede como se fossem locais, sem necessidade de configurações adicionais. Para agilizar o funcionamento, após a conexão via protocolo SMB, as coleções devem ser criadas apenas em um PC, depois utilizando as funções de exportação e importação da base de dados da coleção.
Adicionalmente, vale ressaltar a atualização do plugin MLInpxPlugin, que é destinado à importação de coleções de arquivos inpx (disponível sob a licença GPLv3 no altlinux.space e GitHub). Para usuários do Arch Linux, um script de construção do pacote está disponível no AUR. As alterações nesta nova versão consistem na adição da distribuição explícita de threads entre núcleos de CPU na versão baseada em std::thread.
Além disso, há uma atualização do plugin MLFBDPlugin, que visa criar arquivos no formato fbd. Na nova versão, o plugin foi atualizado para usar a biblioteca XMLParserCPP para salvar arquivos em formato XML, e alguns problemas foram corrigidos.
Fonte: opennet.ru
