TinyOPDS или «сам себе либрусек»

в 22:02, , рубрики: OPDS, open source, электронные книги, метки: , ,

image

Хочу представить вниманию посетителей сайта программу TinyOPDS — легкий «однокнопочный» OPDS-сервер с открытым кодом, написанный на C#.

Страница проекта: tinyopds.codeplex.com

Краткая предыстория написания программы

Я с давних пор являюсь большим любителем OPDS-доступа к электронным библиотекам. Идея написать простой «домашний» OPDS сервер, работающий под Windows, появилась у меня довольно давно, только вот никак не удавалось выкроить время на этот проект. Однако, недавние события все-таки подтолкнули меня к тому, чтобы воплотить идею в код.

Поскольку не люблю «изобретать велосипед», сначала я попытался выяснить, не написал-ли кто-нибудь нечто подобное. Однако, Google нашел лишь одну программу под Windows, могущую работать, как OPDS-сервер. Это оказалась небезызвестная Calibre Ковида Гаяла (я помню эту программу еще со времен первого анонса на mobileread.com; к слову сказать, уже тогда она мне не очень понравилась)

Желая все-таки дать шанс творению Ковида, я скачал и установил 60 «метров» Калибри. Честно признаюсь, что помощь к программе я не читал, и, вероятно, сделал что-то не по инструкции. А именно — я «натравил» Калибри на небольшой (сравнительно — 42 GB ;) ) архив из 15 zip-архивов с книгами, содержащими около 150 тысяч книг, и запустил сканирование (Калибри сначала должна добавить книги в свою базу). После, примерно, 40 минут лихорадочного шуршания диском и 80% загрузки 4-х процессоров и 2 гигабайт памяти, Калибри радостно мне сообщила, что успешно добавила в базу все… 15 книг :) После чего, естественно, она была беспощадно снесена с компьютера, и был дан зарок — никогда больше не загружать индусские «творения» (не в обиду фанатам Калибри — возможно, вас эта программа полностью устраивает, но меня однозначно НЕТ).

Также кратко я просмотрел OPDS-сервера, присутствующие на гитхабе. Замечу, однако, что если для продвинутого Linux администратора установка и настройка представленных там скриптов и не составит большого труда (хотя куда проще поднять обыкновенное «зеркало» «Флибусты», например!), то у обычного Windows-пользователя «гитхабовские» программки вызовут лишь сильное недоумение

Надеюсь, что TinyOPDS будет понятен и удобен практически любому пользователю Windows, вне зависимости от степени «продвинутости» :)

Итак, TinyOPDS — это небольшая по размеру, но весьма полезная программа, позволяющая Вам превратить Ваш домашний компьютер в производительный OPDS каталог. Для тех, кто не знает, что такое OPDS каталоги, вкратце поясню: OPDS — это спецификация для поиска и распространения электронных изданий, работающая через HTTP-протокол (как самый обычный сайт), но основанная на «атомах» (специальных XML документах). Множество программ-читалок для iOS (iPhone, iPad), Android, Windows Phone 7/8, Windows 8, Linux умеют использовать OPDS: это очень удобно и практично.

Установка TinyOPDS

TinyOPDS не требуется установка (возможно, в будущем, я добавлю инсталлятор). Просто загрузите исполняемый файл, создайте папку в своем профиле (можно даже на десктопе), и скопируйте туда программу. Все служебные файлы (файл базы данных, лог-файл) TinyOPDS создаст в этом каталоге. Исключение составляют лишь настройки программы; они сохранятся в папке C:Users[User]AppDataLocalTinyOPDSuser.config

Подготовка к работе

«TinyOPDS» относится к так называемым «однокнопочным решениям»; это означает, что подготовка программы к работе очень проста.

На странице сканера

image

выберите путь к папке с книгами или книжными архивами, и нажмите кнопку «Начать сканирование». Сканер автоматически просканирует выбранную папку, найдет и добавит в базу данных файлы электронных книг в форматах fb2 и epub (примечание: поддерживаются только zip-архивы). Собственно, с этого момента Ваш персональный OPDS сервер готов к работе! Сканирование происходит достаточно быстро; на моем десктопе (далеко не «топовом», скорее, относящегося к «бюджетным» PC) скорость сканирования достигает примерно 2200 книг в минуту. Таким образом, сканирование даже относительно большой библиотеки, объемом в 200000 книг, занимает вполне разумное время (примерно полтора часа).
(Примечание: при сканировании в папке с программой будет создан файл базы данных, с именем, состоящим из преобразованного в GUID пути к папке с книгами)
Также на этом экране отображается текущая статистика сканера.

Следующая страница

image

позволит Вам настроить параметры OPDS-сервера: номер порта для доступа (напомню, что портом по умолчанию для протокола HTTP явлеятся порт с номером 80), а также префикс пути доступа к OPDS (если таковой требуется). Также, Вы можете воспользоваться функцией форвардинга порта через UPnP-роутер (примечание: проверено только на Netgear FVG318, но должно работать на всех UPnP-совместимых роутерах).

На странице «Разное»

image

Вы сможете настроить различные параметры «TinyOPDS» (в том числе, и указать язык интерфейса и сервера; в настоящее время поддерживаются русский и английский). Названия параметров говорят сами за себя, так что я не буду подробно их описывать.

Однако, хочу обратить Ваше внимание на один *очень* важный параметер — на «Путь к ePub конвертору». Дело в том, что стандартом OPDS предусмотрена работа только с книгами в формате epub, и большинство клиентов (про исключения см. ниже) рассчитывают получить ссылку на книги только в этом формате. Однако, если Ваша библиотека составлена из книг в формате fb2, Вам потребуется (*в обязательном порядке!*) установить бесплатный конвертор fb2epub.
(Примечание: некоторые OPDS клиенты для Android, такие, как FBReader и Moon+ Reader, умеют загружать книги в формате fb2 через OPDS. Если Вы используете только эти клиенты то конвертер Вам не потребуется)

Информацию для разработчиков я опубликую немного позже (сейчас цейтнот со временем).

Если Вас заинтересовала эта программа, просьба оставлять баг-репорты и фиче-реквесты на сайте tinyopds.codeplex.com

Благодарю за внимание!

P.S. К сожалению, я не могу опубликовать эту информацию в хабе «Электронные книги» — а там бы она наверняка заинтересовала любителей электронного чтения.

Автор: sensboston

Источник

Поделиться

* - обязательные к заполнению поля