Менее года назад на Хабре был анонсирован проект для организации домашней библиотеки под названием TinyOPDS. Отличная программа, действительно позволяет очень удобно организовать доступ к домашней библиотеке с читалок, на смартфонах, планшетах и возможно с электронных книг (если они могут подключаться к Интернет и имеют в своем арсенале клиента OPDS).
Все бы хорошо, но мой домашний сервер реализован на Linux и выполняет большое количество задач, такие как файл-сервер, медиаплейер, сервер телефонии, закачивает торренты и так далее. Еще одним желанием было организовать доступ к своей электронной библиотеке. Перерыв весь Интернет ничего подходящего кроме как Calibre найдено не было, но с ней случилось то-же, что и у автора TinyOPDS. Calibre сканировала книги крайне медленно. За несколько недель так и не получилось вогнать в нее всю мою библиотеку. TinyOPDS к моему сожалению предназначена для Windows-систем, хотя сейчас уже доступен консольный клиент и делаются попытки работы с ней в Linux c использованием библиотеки mono.
Но прогресс не стоит на месте, поэтому не так давно, в самом конце недавно ушедшего года на просторах интернета был обнаружен еще один проект, делающий ровно то, что мне и было нужно.
Называется проект Simple OPDS, сайт проекта: www.sopds.ru.
Проект Simple OPDS состоит из двух следующих компонентов, написанных на python:
Таким образом, сервером Simple OPDS не является, и для ее работы требуются дополнительные компоненты, такие как Web-сервер Apache и БД Mysql. Сам проект разработан в среде Fedora, для других систем специально не адаптировался, но сделать это по видимому несложно.
Проект не имеет GUI, что позволяет его использовать на устройствах NAS, которые в большинстве своем в качестве основы как-раз используют Linux-системы.
Для работы проекта необходимо установить следующие зависимости:
yum install httpd
yum install mysql
yum install python3
yum install mysql-connector-python3
Загрузить проект можно с сайта 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"
Перед началом работы необходимо внести необходимые настройки в файл конфигурации ./conf/sopds.conf
Для работы каталога необходимо создать(пересоздать) базу данных sopds при помощи скрипта:
./db/db_create.sh
Для сканирования каталога с электронными книгами запустить скрипт sopds-scan.py
Для сервера Apache необходимо разрешить запуск cgi-скрипта ./py/sopds.cgi
при помощи директивы, помещенной в .htacess:
Options ExecCGI
или
Options +ExecCGI
Ввести OPDS каталог и следующий URL: your_domain_name/opds/py/sopds.cgi
Поскольку мой домашний сервер также функционирует под Fedora, то особых проблем по установке и настройке системы Simple 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 у меня не возникло, и теперь я счастливый обладатель собственной библиотеки, доступной мне и моим близким с мобильных устройств.