Как стать автором
Обновить

OPDS каталогизатор для Linux

Менее года назад на Хабре был анонсирован проект для организации домашней библиотеки под названием TinyOPDS. Отличная программа, действительно позволяет очень удобно организовать доступ к домашней библиотеке с читалок, на смартфонах, планшетах и возможно с электронных книг (если они могут подключаться к Интернет и имеют в своем арсенале клиента OPDS).
Все бы хорошо, но мой домашний сервер реализован на Linux и выполняет большое количество задач, такие как файл-сервер, медиаплейер, сервер телефонии, закачивает торренты и так далее. Еще одним желанием было организовать доступ к своей электронной библиотеке. Перерыв весь Интернет ничего подходящего кроме как Calibre найдено не было, но с ней случилось то-же, что и у автора TinyOPDS. Calibre сканировала книги крайне медленно. За несколько недель так и не получилось вогнать в нее всю мою библиотеку. TinyOPDS к моему сожалению предназначена для Windows-систем, хотя сейчас уже доступен консольный клиент и делаются попытки работы с ней в Linux c использованием библиотеки mono.
Но прогресс не стоит на месте, поэтому не так давно, в самом конце недавно ушедшего года на просторах интернета был обнаружен еще один проект, делающий ровно то, что мне и было нужно.

Называется проект Simple OPDS, сайт проекта: www.sopds.ru.

Проект Simple OPDS состоит из двух следующих компонентов, написанных на python:
  • sopds-scan.py — программа каталогизации. Рекурсивно обходит, указанный в конфигурационном файле каталог с электронными книгами, создавая каталог книг в БД MySQL;
  • sopds.cgi — cgi-скрипт для сервера, организующий доступ к электронному каталогу по протоколу OPDS.


Таким образом, сервером Simple OPDS не является, и для ее работы требуются дополнительные компоненты, такие как Web-сервер Apache и БД Mysql. Сам проект разработан в среде Fedora, для других систем специально не адаптировался, но сделать это по видимому несложно.
Проект не имеет GUI, что позволяет его использовать на устройствах NAS, которые в большинстве своем в качестве основы как-раз используют Linux-системы.

Основные возможности Simple OPDS


  • Рекурсивный обход, указанного в конфигурационном файле каталога.
  • Размещение в каталоге электронных книг, любых форматов, указанных в конфигурационном файле.
  • Извлечение метаинформации из электронных книг FB2 (название, авторы, жанр, язык).
  • Извлечение и показ обложек электронных книг FB2.
  • Обнаружение дубликатов книг.
  • Поиск книг в zip-архивах.
  • В каталоге доступны пять возможных сортировок: по каталогам, по авторам, по наименованиям, по жанрам, последние добавленные.
  • сортировка «по каталогам» полностью повторяет структуру каталогов библиотеки, что позволяет отыскать книгу в форматах pdf, djvu и других, из которых при сканировании метаинформация не извлекается.
  • Произвольный поиск книг по наименованию.
  • Можно задать ограничение выдачи элементов на страницу.
  • Архивация книг при скачивании.


Установка Simple OPDS в Fedora


1. Зависимости

Для работы проекта необходимо установить следующие зависимости:
yum install httpd
yum install mysql
yum install python3
yum install mysql-connector-python3

2. Установка

Загрузить проект можно с сайта www.sopds.ru.
Проект имеет следующую структуру:
opds — каталог проекта (можно задать свое имя каталога)
py — каталог с программами на Python
db — каталог инициализационные скрипты для создания БД
conf — каталог с файлом конфигурации
README.md — файл README

Для работы CGI-скрипта необходимо разрешить доступ к каталогу opds, например при помощи следующих директив конфигурационного файла web-сервера Apache httpd.conf:

<Directory "/home/www/opds">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all

Alias /opds "/home/www/opds"

3. Конфигурационный файл

Перед началом работы необходимо внести необходимые настройки в файл конфигурации ./conf/sopds.conf

4. Инициализация базы данных

Для работы каталога необходимо создать(пересоздать) базу данных sopds при помощи скрипта:
./db/db_create.sh

5. Сканирование каталога с книгами

Для сканирования каталога с электронными книгами запустить скрипт sopds-scan.py

6. Доступ к OPDS каталогу через WWW

Для сервера Apache необходимо разрешить запуск cgi-скрипта ./py/sopds.cgi
при помощи директивы, помещенной в .htacess:
Options ExecCGI
или
Options +ExecCGI

7. Использование OPDS каталога с устройств поддерживающих OPDS

Ввести OPDS каталог и следующий URL: your_domain_name/opds/py/sopds.cgi

Поскольку мой домашний сервер также функционирует под Fedora, то особых проблем по установке и настройке системы Simple OPDS у меня не возникло, и теперь я счастливый обладатель собственной библиотеки, доступной мне и моим близким с мобильных устройств.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.