Сделал свое книгохранилище с читалкой и синхронизацией прогресса - polka
Для ЛЛ: запилил свое бесплатное книгохранилище с синхронизацией прогресса чтения и закладок. Пользуйтесь. Проект https://github.com/vestigiumincaligne/polka
Всем привет!
Собирать книги в свою библиотеку начал давно. Изначально пользовался MyHomeLib. Пока работал на винде – было норм: хороший поиск, рейтинг, возможность сохранить книгу сразу на читалку и телефон. Проблем в целом было мало: тормозило на больших объемах, и не было возможности начать читать книгу на компе, а закончить – на телефоне. Читать в таком формате техническую литературу было сложно: на телефоне читать удобно, но при этом периодически на компьютер нужно копировать какие-то куски. Тут уже – больно. Найти книгу, найти нужную страницу и т.д. Но в целом жить было можно.
Стало хуже, когда я пересел на Linux в качестве десктопной ОС. MyHomeLib – проект на delphi. На linux его просто так не портировать. Из альтернатив – calibre и flibrary (может, есть что-то еще). Я попробовал пожить на flibrary. Функционал в целом богат, даже есть opds для поддержки читалок, но интерфейс устарел, и, самое главное, на моем дистрибе проблемы со стабильностью и скоростью работы.
В общем, хотелось чего-то более современного, быстрого и избавляющего от головной боли с синхронизацией книг. Изначально думал просто форкнуть и заредизайнить flibrary. Но при погружении появилось слишком много архитектурных сложностей, которые приходилось решать. Постоянно тормозил поиск (при запросах в sqlite юзается LIKE ‘%...%’), индексы пересчитываются при каждой вставке и т.д. В общем, морда постоянно отваливалась. Починить сложно, геморно, но можно, однако концептуально это не решило бы одну из задач все равно – синхронизацию прогресса. Решил делать с нуля.
Делал его в первую очередь для себя и семьи, но, надеюсь, будет полезен не только мне.
О плюсах:
– Весь сервер – один бинарь на Go на 16 МБ. Можно развернуть в докере.
– Работает быстро. Полки на главной локально открываются за 85 мс. Если бы вдруг я захотел импортнуть весь архив Флибусты на 700к книг, это заняло бы около минуты. Быстродействие в первую очередь за счёт оптимизации работы с базой, на самом деле.
– Понимает inpx
– Визуально приятная читалка, понимает основные форматы и сохраняет прогресс даже в pdf
– Тянет с внешних сервисов оценки (можно отключить в конфиге и остаться только на внутреннем рейтинге) и рекомендации по похожим книгам
– Есть десктопные приложения под винду и linux. Они могут как коннектиться к серверу, забирая с него книги и синхронизируя прогресс, так и работать автономно, с локальной библиотекой на устройстве. Весь функционал (списки чтения, оценки, подборки) сохранится.
– Есть opds для читалок.
– Есть фильтр дублей книг. Работает по названию и ISBN
Минусы:
Проект свежий, веду его сам (дай Бог здоровья Антропику), поэтому баги могут быть. Найдете – пишите, пожалуйста
А еще:
– Читалки пока что только через OPDS, к сожалению. То есть синхронизировать прогресс с читалкой не получится, только получать библиотеку. Надеюсь, однажды смогу сделать приложение под них
– Нет конвертации форматов книг. Но мне и не нужно, честно говоря. Если что - пишите. – Нет плагинов, редактирования метаданных и еще многих фич, которые сообщество пилило годами.
Отдельно хочу выразить почтение разрабам, сопровождающим опенсорсные библиотеки. Это огромная работа, и, ввязываясь в это, я не представлял, насколько она огромна. Я столкнулся с кучей граблей, от архитектуры до дизайна. Хватит на отдельный пост.
В общем, буду рад, если кому-то окажется полезным. И репортам о багах.
Потыкать демо:






