Меню

Opds cops не работает поиск

COPS для MyHomeLib + [FB2]

Это форк проекта COPS 0.90 (Calibre OPDS PHP Server) для работы с базой программы MyHomeLib и локальными архивом Lib.Rus.Ec [FB2], флибусты или пользовательскими библиотеками, которые ведутся в программе.

MyHomeLib и архив библиотеки в данную сборку не включены! Их можно найти на торрентах поиском в гугле по запросу «lib.rus.ec myhomelib fb2».

  • Статус форка — бета.
  • На слабых серверах работает медленно, на Synology 213+ стартовый экран при первом запуске отдаёт за 3 секунды, на Synology 212j до 1 минуты (на нечищеной базе, читаем ниже)! Поиск по названию на 213+ 2-30 секунд, в зависимости от количества найденного, категорий поиска и установленных фильтров.
  • 0.9.0.fb20140506. Первая версия релиза форка, отданная на сторону 🙂
  • 0.9.0.fb20140512.
    • Исправлены ошибки:
      1. Ощибка в функции getBooksByStartingLetter, возвращал неверное количество книг, из-за этого в подвале появлялись неработающие ссылки
      2. Добавлен вызов sqliteCreateCollation(‘MHL_SYSTEM_NOCASE’, . ), это недокументированная функция, отсутствие ее вызова приводило к падению программы на некоторых версиях PHP
      3. Починил поиск из OPDS FBReader
    • Добавлено:
      1. Параметр $config[‘myhomelib_database’] для имени базы данных. Задел под флибусту
      2. Параметр $config[‘use_fb2_disk_cache’]. Сохранять ли кеш данных на диске сервера. Имеет смысл ставить в TRUE только если $config[‘get_metadata_from_fb2’] также TRUE.
      3. Параметр $config[‘cops_use_fb2_zip’] Упаковывать книги FB2 в zip-архив при выгрузке.
  • 0.9.0.fb20140522.
    • Добавлено:
      1. Все запросы проверены и приведены к совместимости с MySQL. Соответственно добавлены параметры в $config для использования базы MySQL. Конвертер уже есть, но пока не публичный.
      2. Небольшая оптимизация функции поиска.
      3. Из всех запросов удален литерал «Books.IsDeleted=0», вместо этого добавлен параметр $config[‘cops_global_del_filter’]. Отмена фильтрации по удаленным на медленных машинах сильно ускоряет запросы.
      4. Добавлен скрипт clear_db.php. Можно использвать при условии, что COPSFB использует КОПИЮ базы librusec_local_fb2.hlc2. Физически удаляет записи, помеченные как удаленные (Books.IsDeleted=1). Может удалить все книги с неиспользуемыми вами языками. Удаляет неиспользуемые COPSFB индексы. Сжимает (vacuum) базу. Все это позволяет при работе программы не использовать фильтры ( where ) по удаленным и по языку. Ускоряет работу программы в разы.
  • 0.9.0.fb20140617.
    • Исправления:
      1. Полностью переписан парсер fb2. По идее, должно теперь работать несколько быстрее, описание книги теперь вытаскивается корректно, перестал падать на невалидных fb2.
      2. Бэкпорт функции поиска из 1.0RC
      3. Правки для совместимости с OPDS-клиентом AlReader.Droid
      4. Добавлена функция очистки дискового кеша. Вызывается только при загрузке книги. Для ее работы два новых параметра в конфиге: $config[‘max_cache_size’] и $config[‘cache_clear_size’]
      5. Исправлено имя загружаемого файла, если user agent — Internet Explorer.
  • 0.9.0.fb20140720.
    • Внимание! В этой версии изменены параметры настройки.
    • 1. Все настройки, связанные с путями, вынесены в файл config_local.php.
    • 2. $config[‘myhomelib_librusec_path’] больше не используется, удален.
    • 3. $config[‘calibre_directory’] используется для указания директории с книгами (архивами книг).
    • 4. $config[‘myhomelib_database’] теперь должен указывать не только имя БД, а путь и имя БД MyHomeLib, например $config[‘myhomelib_database’] = ‘./lib/librusec_local_fb2.hlc2’.
    • Прошу прощения у всех, кто ставит update!
    • Изменения:
      1. checkconfig.php теперь проверяет настройки путей, спецефичные для форка.
      2. Теперь поддерживаются пользовательские библиотеки MyHomeLib, но пока только fb2.
      3. Один экземпляр COPSFB может поддерживать несколько библиотек. Но все библиотеки должны быть одного типа — либо MyHomeLib, либо Calibre.
  • 0.9.0.fb20141003.
    • Добавлено:
      1. Поддержка библиотеки Траума. Тестировал на версии traum_library_2-33_all_ru, т.е. поддерживаются FB2 и non-FB2 книги.
      2. Новый параметр в настройках $config[‘cops_use_translit’] — переводить имена файлов при загрузке в транслит.
  • 0.9.0.fb20150215.
    • Исправления:
      1. Отправка книг по почте теперь работает и для MyHomeLib-библиотек. Должен быть правильно настроен параметр $config[‘cops_mail_configuration’].
  • 0.9.0.fb20160519.
    • Добавлено:
      1. Новый параметр в настройках $config[‘cops_global_filter’] — глобальный фильтр для базы. SQL выражение, накладывающее фильтр на все выборки из БД. Можно использлвать, например, чтобы посмотреть обновления с заданной даты:
        1. $config[‘cops_global_filter’] = «date(books.[UpdateDate]) > date(‘2015-04-01’)»;
      2. В load_inp.php добавлен параметр $skip_genres, список жанров, которые не надо грузить.
    • Исправления:
      1. В opds_feed выдавались записи с пустым ID, что приводило к проблемам на некоторых OPDS клиентах.
      2. Несколько мелких исправлений в load_inp.php
  • 0.9.0.fb20180422.
    • Добавлено:
      1. Новый параметр в настройках $config[‘cops_series_order’] — Сортировка книг при выводе по автору по сериям или алфавиту
    • Исправления:
      1. Несколько мелких исправлений в load_inp.php для корректной загрузки последнего обновления либрусек.
Читайте также:  Не работает чайник борк 516

Требования при установке те же, что и для исходного COPS:

  • PHP 5.3 / 5.4 with GD image processing & SQLite3 support;
  • web server with PHP support (Nginx, Apache, Cherokee, Lighttpd, IIS);
    • кроме того:
  • + наличие на сервере внешнего разархиватора для zip, т.к. unzip в php не работает с архивами больше 2ГБ.
  • + наличие на сервере (или «видимой» с сервера) базы данных MyHomeLib
  • + наличие на сервере (или «видимой» с сервера) библиотеки

При работе над форком тестировалось под Windows 7/8.1 на XAMPP Version: 1.8.3 (Apache/2.4.7 (Win32) PHP/5.5.6) и на Synology 213+ (DSM 4.3-3810 Update 1 и 5.0-4482). Установка пакета аналогична прототипу и описана автором http://blog.slucas.fr/en/oss/calibre-opds-php-server.

Параметры конфигурации описаны на следующей странице.

Источник

Зачем нужны и как работают электронные каталоги OPDS

На GT мы уже рассказывали об истории и принципах работы форматов электронных книг DjVu, FB2 и его «младшего брата» FB3. Сегодня мы решили поговорить о стандарте, который помогает эти книги распространять. Расскажем, зачем нужны электронные каталоги OPDS и как они «устроены».

Что такое OPDS?

OPDS (Open Publication Distribution System) — это формат синдикации для электронных публикаций. Его цель — предоставить пользователям приложений и устройств для чтения возможность просматривать и скачивать книги из электронных библиотек.

Проект начали разрабатывать в апреле 2009 года. В нем приняли участие несколько организаций и компаний, включая Internet Archive, Feedbooks, O’Reilly и Lexcycle, занимавшаяся разработкой ПО для чтения электронной литературы. В основу стандарта положили технологии HTTP (RFC2616) и Atom (RFC4287).

Atom — это другой формат синдикации, основанный на XML. Он позволяет описывать наборы веб-ресурсов: новостные ленты, анонсы статей в блоге и так далее. По своей сути он похож на RSS и решает те же задачи, однако не имеет ряда его недостатков, в частности, он лучше стандартизирован (взаимоотношения между разными версиями RSS довольно запутанны — они могут быть несовместимы друг с другом). На сегодняшний день Atom поддерживает компания Google во многих своих проектах, например в Feedburner.

Что «внутри» OPDS-каталога

OPDS-каталоги позаимствовали концепцию фидов (feeds) и записей (entries) у формата Atom. По сути, фиды представляют собой контейнеры для записей и делятся на две категории: навигационные (navigation feeds) и загрузочные (acquisition feeds). Первые задают иерархию для поиска контента, а вторые — содержат списки записей с информацией о доступных публикациях. В каждой записи имеются метаданные: формат электронной книги, заголовок, способ получения и др.

Читайте также:  Не работает юсб концентратор

Записи в списке представляют собой ссылки, которые или направляют пользователя к другому фиду, или предоставляют ему возможность скачать публикацию. В Atom, на котором основывается OPDS, ссылка представляет собой тег с атрибутом rel (relationship). Это отношение обозначает способ приобретения и правила предоставления литературы. Поддерживаются следующие варианты:

  • открытый доступ без каких-либо ограничений;
  • книга приобретается за деньги (цена отражается в ссылке);
  • подписка на периодическое издание;
  • фрагмент публикации (например, первая глава книги) для ознакомления.

На официальном сайте проекта OPDS приводится следующий пример оформления такой ссылки:

Если одна публикация доступна в нескольких форматах, то они представляются группой ссылок в одной записи:

Иногда ссылка не ведет к книге напрямую. Это происходит в том случае, если публикация запакована в zip-архив, где лежит несколько файлов (например, те же копии книги в разных форматах). Для описания «внутренностей» такого компонента используется элемент opds:indirectAcquisition, где типом является формат медиаэлемента:

А вот пример оформления ссылки для ситуации, когда публикация является платной. Атрибут currencycode определяет валюту:

Где найти OPDS-каталоги и как с ними работать?

Одними из первых начали использовать OPDS издатели и библиотеки. Позже к сообществу присоединились разработчики приложений-читалок и продавцы электронной литературы. Чаще всего они и выступают создателями OPDS-каталогов. Список самых популярных каталогов можно найти на сайте со спецификацией OPDS.

Например, там есть Feedbooks, который распространяет более 3 млн электронных книг каждый месяц. В коллекции Internet Archive находится почти 2 млн публикаций, а O’Reilly Media предлагает тысячи экземпляров технической литературы. Также можно выделить каталоги The Pragmatic Programmers и Revues.org.

В целом же в сети можно найти множество каталогов OPDS на разных языках. При этом у пользователей есть возможность сформировать собственный каталог, чтобы организовать доступ к своей книжной библиотеке с любого устройства. Есть даже специальные программы, которые могут с этим помочь. Например, такую утилиту предлагает FBReader — она основана на коде books.fbreader.org.

Работу с OPDS поддерживают и другие ридеры, в частности, Cool Reader, Bluefire Reader, QuickReader, AlReader и OReader. Последний является адаптацией AlReader специально для ридеров ONYX-BOOX, которую доработал сам создатель оригинального приложения. Читалка получила единое интерфейсное меню и встроенный сканер метаданных, используемых системой. Еще в OReader была добавлена поддержка технологии SNOW Field, которая не работает в AlReader. SNOW Field улучшает «перерисовку» страницы на экране с электронными чернилами, снижая количество артефактов при перелистывании (и исключает частые «заливки» дисплея черным).

Отметим, что некоторые приложения, хотя и работают с OPDS, не поддерживают мультимедийный контент. Отличаются программы и по количеству поддерживаемых форматов электронной литературы.

В целом же для работы с OPDS нужно подключить интересующие сетевые библиотеки. О том, как это сделать на читалках ONYX, можно узнать в одном из материалов на нашем сайте. После можно начать просматривать публикации, ориентируясь по фидам и спискам записей.

Отметим, что пользователь может находить нужные книги не только с помощью фидов, но и с помощью функции поиска. Поиск OPDS основан на формате Open Search. В этом случае создается отдельный XML-файл с описанием параметров поиска — OpenSearch Description. Вот пример заполнения такого файла из репозитория Open Search на GitHub:

Читайте также:  Микролифт для крышки унитаза как починить

Обычно он называется OpenSearch.xml и лежит в корне каталога.


/ Flickr / Dave Collie / CC

Развитие экосистемы

На сегодняшний день выпущено несколько спецификаций OPDS: это версии OPDS Catalog 0.9 (2010 год), OPDS Catalog 1.0 (2010 год) и OPDS Catalog 1.1 (2011 год), которая является последней выпущенной на сегодняшний день. Однако существует «черновик» новой версии стандарта — 1.2. В нем должен появиться функционал, который позволит сдавать книги в аренду, то есть выдавать их на определенный промежуток времени. Дополнительно будут добавлены новые атрибуты для типов медиаконтента, элементы для обозначения рейтинга и числа скачиваний книги, а также профили OPDS для пользователей.

При этом сообщество, в лице продавцов электронной литературы, рабочей группы OPDS и других участников индустрии, работает над спецификацией ODL (Open Distribution Libraries) и механизмов аутентификации OPDS, чтобы сделать возможной «горизонтальную» интеграцию библиотек и коммерческих сервисов, продающих книги, друг с другом.

Формат ODL уже используется распространителями электронной литературы для пересылки информации о лицензиях библиотекам (например, в Feedbooks). Что же касается новой версии OPDS 1.2, то пока её спецификация существует только в формате черновика (draft), а дата полноценного выхода стандарта остается неизвестной.

Источник

Opds cops не работает поиск

Please Войти or Create an account to join the conversation.

  • blacklion
  • Topic Author —>
  • Offline
  • Новый участник

Please Войти or Create an account to join the conversation.

  • mitshel
  • —>
  • Offline
  • Администратор

1) FreeBSD 10.3-STABLE
2) sqlite3 3.20.1 + py-sqlite3 3.4.7
3) apache 2.2, mod_wsgi 3.4.8, sopds.wsgi из поставки
4) git diff показывает, что отличаетс яодна строчка: путь к базе SQLite (вмеcто «os.path.join(BASE_DIR, ‘db.sqlite3’)»)
5)
SOPDS_SCAN_START_DIRECTLY True
SOPDS_AUTH True
SOPDS_COVER_SHOW True
SOPDS_SERVER_LOG /usr/home/hosted/opds/log/sopds_server.log
SOPDS_DOUBLES_HIDE True
SOPDS_SCANNER_PID /usr/home/hosted/opds/tmp/sopds_scanner.pid
SOPDS_ZIPSCAN True
SOPDS_INPX_SKIP_UNCHANGED True
SOPDS_SPLITITEMS 300
SOPDS_SCAN_SHED_DOW *
SOPDS_INPX_ENABLE False
SOPDS_SERVER_PID /usr/home/hosted/opds/tmp/sopds_server.pid
SOPDS_TITLE_AS_FILENAME True
SOPDS_SCAN_SHED_DAY *
SOPDS_DELETE_LOGICAL False
SOPDS_FB2SAX True
SOPDS_INPX_TEST_FILES False
SOPDS_FB2TOEPUB /usr/home/hosted/opds/backup/fb2epub
SOPDS_FB2TOMOBI /usr/home/hosted/opds/backup/fb2mobi
SOPDS_ZIPCODEPAGE cp866
SOPDS_SCAN_SHED_HOUR 0,12
SOPDS_LANGUAGE en-US
SOPDS_MAXITEMS 60
SOPDS_ROOT_LIB /usr/home/hosted/opds/data/fb2.Flibusta.Net
SOPDS_TEMP_DIR /usr/home/hosted/opds/tmp
SOPDS_INPX_TEST_ZIP False
SOPDS_BOOK_EXTENSIONS .pdf .djvu .fb2 .epub .mobi
SOPDS_ALPHABET_MENU True
SOPDS_NOCOVER_PATH /usr/home/hosted/opds/sopds/static/images/nocover.jpg
SOPDS_SCANNER_LOG /usr/home/hosted/opds/log/sopds_scanner.log
SOPDS_SCAN_SHED_MIN 0

P.S. В форме редактора сообщения не вводятся переводы строк в FireFox 56 на Windows.

Please Войти or Create an account to join the conversation.

  • blacklion
  • Topic Author —>
  • Offline
  • Новый участник

Please Войти or Create an account to join the conversation.

  • mitshel
  • —>
  • Offline
  • Администратор

Вот всё, что сказано про Virtual Host этого сервера (перед ним стоит прозрачно nginx, поэтому тут 127.0.0.1, но конфиг nginx там в 3 строки: proxy_pass и всё.):

ServerAdmin Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.
DocumentRoot /usr/home/hosted/opds/www/SERVER-NAME-HIDDEN/data

CustomLog /usr/home/hosted/opds/www/SERVER-NAME-HIDDEN/log/httpd-access.log combined

ErrorLog /usr/home/hosted/opds/www/SERVER-NAME-HIDDEN/log/httpd-error.log
LogLevel debug

Options ExecCGI Indexes
DirectoryIndex sopds.wsgi

Alias /static/ «/usr/home/hosted/opds/sopds/static/»

Options -ExecCGI -Indexes

И при заходе на /web/ авторизация (та, что basic) не спрашивается.

Да, если бразуером сначала залогиниться в /web/ через форму, то потом и в /opds/ пускает, но FBReader / ALReader так не могут.

Please Войти or Create an account to join the conversation.

Источник

Adblock
detector