mitshel / sopds

Simple opds catalog
http://www.sopds.ru/
Other
211 stars 80 forks source link

Странная работа opds #43

Closed gudvindll closed 5 years ago

gudvindll commented 5 years ago

День добрый, началось все с проблемы в читалке kyBook добавив свой сервер на котором развернут opds) ничего не предвещало беды, но как только я пытаюсь работать с opds из читалки вылезает ряд проблем например. По Авторам - (Рус) - нажав на любую букву из списка я вылетаю на www.мое_зеркало.pro/web и читалка пишет мне ошибку opds каталог вернул неправильный content-type text/html charset=utf-8 раньше был телеграмм бот, и в приницпе особо не парило это, сейчас телеграмм бот не работает. web версия для читалки на ios это тот еще танец с бубнами.

заметил особенность если перейти по url вида www.мое_зеркало.pro/opds нас редиректит на /web если перейти по url .pro/opds/ мы получаем полноценный xml который кормится читалке на ура. так вот быть может из за этого и происходит ошибка, т.к. opds каталог перестает отображаться в читалке и я в этот момент вижу стартовую страницу своего sopds сервера.

смущает еще такая история

?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dcterms="http://purl.org/dc/terms">
<id>http://192.168.10.205/opds/</id><icon>/static/images/favicon.ico</icon>
<link href="http://192.168.10.205/opds/" rel="self" type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
<link href="/opds/" rel="start" type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
<title>SimpleOPDS</title>
<subtitle>SimpleOPDS Catalog by www.sopds.ru. Version 0.46.</subtitle>
<updated>2018-10-19T12:46:50+00:00</updated>
<link href="/opds/search/{searchTerms}/" rel="search" type="application/atom+xml"/>
<entry>
<id>m:1</id>
<title>По каталогам</title>
<link href="http://192.168.10.205/opds/catalogs/" rel="alternate"/>
<link href="/opds/catalogs/" rel="subsection" type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
<updated>2018-10-19T12:46:50+00:00</updated>
<content type="text">Каталогов: 121, книг: 349928.</content>

"http://192.168.10.205/opds/catalogs/" ip локальной машины а не внешний ip или домен при попытках запустить sopds_server start --host **** --deamon сервер не запускается

mitshel commented 5 years ago
  1. Действительно, любой URL в SimpleOPDS должен завершаться слэшем, и во всех ответах именно такие ссылки выдает sopds, однако, видимо kybook по какой-то причине удаляет слэши в конце URL. К сожалению у меня отсутствуют устройства Apple для проверки и тестирования именно KyBook. Как только в руках появится что-нибудь из Apple протестирую данную проблему с kybook. Однако, пока вы можете попробовать закомментировать практически последнюю строку в файле sopds/urls.py, чтобы содержимое правил переадресации выгядело так: urlpatterns = [ url(r'^opds/', include('opds_catalog.urls', namespace='opds')), url(r'^web/', include('sopds_web_backend.urls', namespace='web')), url(r'^admin/', admin.site.urls),

    url(r'^logout/$', logout, {'next_page':'/web/'},name='logout'),

    url(r'^', include('sopds_web_backend.urls', namespace='web', app_name='opds_web_backend')),

    url(r'^', RedirectView.as_view(url=reverse_lazy("web:main"))),

    ] В результате такого исправления SimpleOPDS будет просто добавлять конечный слэш в неправильные адреса без слэша, а не переадреовывать на /web/

  2. "http://192.168.10.205/opds/catalogs/" - 192.168.10.205 этот тот адрес к которому вы обратились из браузера, если бы исходный url был http://ebook.myserver.ru/opds/catalog/ , то соответственно и ответы были бы с вашим URL

  3. По умолчанию сервер запускается, как ... sopds_server start --host 0.0.0.0 где 0.0.0.0 означает, что SimpleOPDS будет слушать все имеющееся интерфейсы.

gudvindll commented 5 years ago

Да действительно, коммент последней строки где редирект на web:main помог :) Спасибо за совет)