Разработка библиотечного софта
И да-да, я знаю, что наверняка что-то похожее есть. Но мне хочется написать своё, которое будет работать так, как я хочу.
Что хочется
Программа, которая будет следить за папкой, в которой будут появляется мои книги, разбирать их, добавлять в базу данных, по которой потом можно будет найти любую книгу. Должна работать с:
- FB2
- EPUB
- иметь возможность достаточно быстро расширяться под какой-то новый формат
Автоматически следить за новыми книгами в папке, разбирать их и добавлять в библиотеку.
Иметь web-интерфейс (ну кто сейчас пользуется толстыми клиентами, кроме 1С 😁).
По хорошему — иметь APIшку, вдруг стрельнёт и народ начнёт писать собственные клиенты для этого.
Что пока получается
Я накидал каркас приложения, с фоновым сервисом, который смотрит в указанную папку, берёт оттуда файлики и пытается их разобрать (но только тех форматов, что разрешено).
Пока делал понял, что FB2 в целом очень даже не плохой формат, потому что EPUB СЛИШКОМ гибок, но имеет больше возможностей.
Файлы разбираются и раскладываются по установленным местам. Не знаю зачем я сделал разные папки для хранения, но мне хочется иметь каталоги с книгами по типам файлов, а не одну большую помойку. Пусть будет три не очень больших.
Всё это складывается в базу данных, которая пока может хранить информацию о книге, авторе, жанре и серии книг.
Сверху прикручиваю простой web-интерфейс на JSP + PureCSS + Vanilla JS, который пока просто показывает меню и кнопку загрузки новой книги.

Да, давно я не верстал (очень давно). Да и PureCSS пока не очень знакомый для меня. Но ничего, справимся.
Из интересного:
- Узнал, что встроенный в Spring Boot Tomcat не умеет в компиляцию JSP, потому что подключает только:
tomcat-embed-core
tomcat-annotations-api
tomcat-embed-el
tomcat-embed-websocket
tomcat-annotations-api
И как видим, ничего про JSP/JSTL тут нет. Поэтому пришлось подключать tomcat-embed-jasper. Он уже умеет. - Также узнал, что не всем нравятся BootstrapCSS, поэтому есть микро сборки, который поддерживают только сетку, например.
- Следующим открытием для меня стало то, что EPUB — это, под капотом, такой же HTML, как и FB2, но немножко более структурированный. Но всю мета-информацию не стандартизировали, а добавляют через Дублинское ядро, но при этом есть возможность каждому редактору напихать чего-то своего. В целом, я всегда читал только в формате FB2, поэтому с EPUB просто не сталкивался.
- В PDF можно добавить много полезной информации, но хранение — на усмотрение приложения, которое его редактировало, но есть пара общих полей.
- Человек, придумавший FB2 не умеет писать XSD.
- Вспомнил, какой классный JSP и как классно можно шаблонизировать через tags.
Последние комменатрии