Skip to content

orivej/cl-librusec

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Локальная библиотека Либрусек/FB2 в Linux: индексация и поиск

Примечание: в текущем виде установка системы для работы с библиотекой Либрусек не вполне автоматизирована и требует некоторого мастерства.

Система состоит из двух частей: программы индексации и программы поиска. Поиск написан на Python 3, индексация была переписана с него на Common Lisp, когда версия на Python 3 почему-то перестала работать с архивами, добавленными в конце 2011 года.

Для работы все файлы FB2 должны содержаться в одной директории. Я предпочитаю хранить их в ZIP не распаковывая, для этого я задействую AVFS (быструю виртуальную файловую систему для прозрачного доступа к архивам), собирая в ~/librusec/separated ссылки вида ~/.avfs/.../fb2-153556-158325.zip#, а в ~/librusec/united соответственно ../separated/fb2-153556-158325/154934.fb2.

После размещения всех файлов FB2 в одной директории нужно запустить индексацию. Либо

make
./construct-db "путь к директории с файлами FB2" "путь к будущей базе"

либо из запущенного SBCL с установленным QuickLisp и librusec.asd в области поиска ASDF командами:

(qlql :librusec)
(librusec:enable-verbose) ; Показывает прогресс; лучше не включать
                          ; на медленных эмуляторах терминала
(librusec:construct-db "путь к директории с файлами FB2" "путь к будущей базе")

После завершения индексации по указанному пути (по-умолчанию — ~/librusec/librusec.sqlite) будет создана база данных. Теперь нужно указать в начале search.py правильные пути к файлам и базе данных.

Если сделать алиас с s на search.py, можно искать книги командой s “фрагмент названия” и открывать их в FBReader F индекс или CoolReader C индекс. Дополнительные опции поиска — s --help.

About

Локальная индексация и поиск в архивах lib.rus.ec'а

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published