Примечание: в текущем виде установка системы для работы с библиотекой Либрусек не вполне автоматизирована и требует некоторого мастерства.
Система состоит из двух частей: программы индексации и программы поиска. Поиск написан на 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
.