Переброс в браузер при работе из ридера.
5 years 11 months ago - 5 years 11 months ago #1999
by dvs
dvs created the topic: Переброс в браузер при работе из ридера.
Обновился с версии 0.23.4 на версию 0.43.
Программа стала несколько иной. Вместо минутного заполнения файла конфигурации, правка кода подключение к БД и мышковожение в вебинтерфейсе.
Ну не суть.
Конфигурация с апачем с wsgi
Скан работает. в вебинтерфейсе все книги видятся.
Проблематика.
подключаем moonreader (pro) (да читал соседнуюю ветку)
Каталог виден, колическтво книг, авторов и т.д. видно.
При поиске перебрасывает в браузер в котором открывается xml
fbreader
каталог виден. Элементов 0.
Прикольненько.
По логам вебсервера ответы 200.
Курлом все дергается. XML получается.
Визуально XML корректный, видны все ответы.
Кто с таким сталкивался и куда копать?
Верю что проблема решается малой кровью.
То есть не заработал основной функционал.
Пока откатился обратно на 0.23.4
Программа стала несколько иной. Вместо минутного заполнения файла конфигурации, правка кода подключение к БД и мышковожение в вебинтерфейсе.
Ну не суть.
Конфигурация с апачем с wsgi
Скан работает. в вебинтерфейсе все книги видятся.
Проблематика.
подключаем moonreader (pro) (да читал соседнуюю ветку)
Каталог виден, колическтво книг, авторов и т.д. видно.
При поиске перебрасывает в браузер в котором открывается xml
fbreader
каталог виден. Элементов 0.
Прикольненько.
По логам вебсервера ответы 200.
Курлом все дергается. XML получается.
Визуально XML корректный, видны все ответы.
Кто с таким сталкивался и куда копать?
Верю что проблема решается малой кровью.
То есть не заработал основной функционал.
Пока откатился обратно на 0.23.4
Last Edit: 5 years 11 months ago by dvs.
Please Войти or Create an account to join the conversation.
- dvs
-
Topic Author
- Offline
- Новый участник
-
Less
More
- Posts: 11
5 years 11 months ago #2000
by mitshel
mitshel replied the topic: Переброс в браузер при работе из ридера.
Порпробуйте установить версию 0.44-dev с github:
git clone github.com/mitshel/sopds.git -b v0.44-devel
Если все заработает - отпишитесь пожалуйста!
git clone github.com/mitshel/sopds.git -b v0.44-devel
Если все заработает - отпишитесь пожалуйста!
Please Войти or Create an account to join the conversation.
- mitshel
-
- Offline
- Администратор
-
Less
More
- Posts: 297
- Karma: 8
5 years 11 months ago - 5 years 11 months ago #2001
by dvs
dvs replied the topic: Переброс в браузер при работе из ридера.
Спасибо за реакцию.
Эффект тот же.
Заменил только скрипты. Базу не переделывал. (Может это важно)
Исключил полностью вебсервер для чистоты эксперимента.
Ушел копать в сторону валидации. Гугл выдает что есть какие-то онлайн валидаторы.
Эффект тот же.
Заменил только скрипты. Базу не переделывал. (Может это важно)
Исключил полностью вебсервер для чистоты эксперимента.
Ушел копать в сторону валидации. Гугл выдает что есть какие-то онлайн валидаторы.
Last Edit: 5 years 11 months ago by dvs.
Please Войти or Create an account to join the conversation.
- dvs
-
Topic Author
- Offline
- Новый участник
-
Less
More
- Posts: 11
5 years 11 months ago - 5 years 11 months ago #2002
by dvs
dvs replied the topic: Переброс в браузер при работе из ридера.
Валидатор
opds-validator.appspot.com/?uri=mine.darkworlds.org/opds/
Урла поиска: /opds/search/%D0%B4%D0%BE%D0%B9%D0%BB/
Validation Failed
Урла выбора автора: /opds/authors/Та же строка:
Итого:
Если это поиск - меняем тип
<link type="application/opensearchdescription+xml" href="/opds/search/{searchTerms}/" rel="search"/>
А в нашем случае вроде все через поиск...
а если это что-то еще то... лично я не вкурил документацию, но там много вкусностей.
Оставлю на нее ссылку. Может кому будет полезно при поиске проблем с совместимостью с разными ридерами.
opds-spec.org/specs/opds-catalog-1-1-20110627/
Пропатчил немного feeds.py
Выхлоп валидацию проходит, но один фиг перебрасывает в браузер.
Патч плохой. Цель была не сделать как правильно а пройти валидацию и выявить проблему.
Так что почти не разбирался в логике кода.
Но проблему так и не выявил.
с бетой появилась ругань с варнингами (ранее не замечал)Так что еще патч.
Но собака порылась где-то еще...
Для сравнения
Текущий ответ главной страницы мунридер видит каталог, кулридер и фбридер не видят.
В конце нет перевода строки. (может важно? не проверял пока.)
Ответ старой рабочей версии
линки совсем иначе описаны, и вообще дифать сложно. совсем разные ответы.
Ушел спать
opds-validator.appspot.com/?uri=mine.darkworlds.org/opds/
Урла поиска: /opds/search/%D0%B4%D0%BE%D0%B9%D0%BB/
Validation Failed
WarningLine 9, Column 84 OPDS links SHOULD use profile parameter in type
WarningLine 9, Column 84 OPDS links SHOULD use kind parameter in type
ErrorLine 9, Column 84 Search link MUST use opensearch mimetype
Жалоба на строку
<link href="/opds/search/{searchTerms}/" type="application/atom+xml" rel="search"/>
Урла выбора автора: /opds/authors/
WarningLine 9, Column 84 OPDS links SHOULD use profile parameter in type
WarningLine 9, Column 84 OPDS links SHOULD use kind parameter in type
ErrorLine 9, Column 84 Search link MUST use opensearch mimetype
<link type="application/atom+xml" href="/opds/search/{searchTerms}/" rel="search"/>
Итого:
Если это поиск - меняем тип
<link type="application/opensearchdescription+xml" href="/opds/search/{searchTerms}/" rel="search"/>
А в нашем случае вроде все через поиск...
а если это что-то еще то... лично я не вкурил документацию, но там много вкусностей.
Оставлю на нее ссылку. Может кому будет полезно при поиске проблем с совместимостью с разными ридерами.
opds-spec.org/specs/opds-catalog-1-1-20110627/
Пропатчил немного feeds.py
Выхлоп валидацию проходит, но один фиг перебрасывает в браузер.

Warning: Spoiler!
[ Click to expand ]
[ Click to hide ]
diff --git a/opds_catalog/feeds.py b/opds_catalog/feeds.py
index 07d02d4..79a63d5 100644
--- a/opds_catalog/feeds.py
+++ b/opds_catalog/feeds.py
@@ -80,10 +80,10 @@ class opdsFeed(Atom1Feed):
handler.addQuickElement('link', None, {"href":self.feed["next_url"],"rel":"next","title":"Next Page","type":"application/atom+xml;profile=opds-catalog"})
handler.characters("\n")
if self.feed.get('search_url') is not None:
- handler.addQuickElement('link', None, {"href":self.feed["search_url"],"rel":"search","type":"application/atom+xml;profile=opds-catalog;kind=navigation"})
+ handler.addQuickElement('link', None, {"href":self.feed["search_url"],"rel":"search","type":"application/opensearchdescription+xml;profile=opds-catalog;kind=navigation"})^M
handler.characters("\n")
if self.feed.get('searchTerm_url') is not None:
- handler.addQuickElement('link', None, {"href":self.feed["searchTerm_url"],"rel":"search","type":"application/atom+xml"})
+ handler.addQuickElement('link', None, {"href":self.feed["searchTerm_url"],"rel":"search","type":"application/opensearchdescription+xml"})^M
handler.characters("\n")
diff --git a/opds_catalog/templates/opensearch.html b/opds_catalog/templates/opensearch.html
index 5c610c5..5c7968d 100644
--- a/opds_catalog/templates/opensearch.html
+++ b/opds_catalog/templates/opensearch.html
@@ -3,7 +3,7 @@
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
<ShortName>SimpleOPDS</ShortName>
<LongName>SimpleOPDS</LongName>
- <Url type="application/atom+xml" template="{% url "opds_catalog:opensearch" %}{searchTerms}/" />
+ <Url type="application/opensearchdescription+xml" template="{% url "opds_catalog:opensearch" %}{searchTerms}/" />^M
<Image width="16" height="16">http://www.sopds.ru/favicon.ico</Image>
<Tags />
<Contact />
diff --git a/sopds/settings.py b/sopds/settings.py
index 9985897..3100951 100644
--- a/sopds/settings.py
+++ b/sopds/settings.py
Патч плохой. Цель была не сделать как правильно а пройти валидацию и выявить проблему.
Так что почти не разбирался в логике кода.
Но проблему так и не выявил.
с бетой появилась ругань с варнингами (ранее не замечал)
[wsgi:error] sopds/sopds/urls.py:28: RemovedInDjango19Warning: Default value of 'RedirectView.permanent' will change from True to False in Django 1.9. Set an explicit value to silence this warning.
[wsgi:error] url(r'^', RedirectView.as_view(url=reverse_lazy("web:main"))),
Warning: Spoiler!
[ Click to expand ]
[ Click to hide ]
diff --git a/sopds/urls.py b/sopds/urls.py
index 1d54050..96268e6 100644
--- a/sopds/urls.py
+++ b/sopds/urls.py
@@ -25,5 +25,5 @@ urlpatterns = [
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"))),
+ url(r'^', RedirectView.as_view(url=reverse_lazy("web:main"),permanent=False)),
]
Но собака порылась где-то еще...
Для сравнения
Текущий ответ главной страницы мунридер видит каталог, кулридер и фбридер не видят.
В конце нет перевода строки. (может важно? не проверял пока.)
Warning: Spoiler!
[ Click to expand ]
[ Click to hide ]
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dcterms="http://purl.org/dc/terms">
<id>http://book.local/opds/</id><icon>/static/images/favicon.ico</icon>
<link type="application/atom+xml;profile=opds-catalog;kind=navigation" rel="self" href="http://book.local/opds/"/>
<link type="application/atom+xml;profile=opds-catalog;kind=navigation" rel="start" href="/opds/"/>
<title>SimpleOPDS</title>
<subtitle>SimpleOPDS Catalog by www.sopds.ru. Version 0.44-dev.</subtitle>
<updated>2017-12-21T20:39:17+00:00</updated>
<link type="application/opensearchdescription+xml" rel="search" href="/opds/search/{searchTerms}/"/>
<entry>
<id>m:1</id>
<title>По каталогам</title>
<link rel="alternate" href="http://book.local/opds/catalogs/"/>
<updated>2017-12-21T20:39:17+00:00</updated>
<content type="text">Каталогов: 115, книг: 411693.</content>
</entry><entry>
<id>m:2</id>
<title>По авторам</title>
<link rel="alternate" href="http://book.local/opds/authors/"/>
<updated>2017-12-21T20:39:17+00:00</updated>
<content type="text">Авторов: 106195.</content>
</entry><entry>
<id>m:3</id>
<title>По наименованиям</title>
<link rel="alternate" href="http://book.local/opds/books/"/>
<updated>2017-12-21T20:39:17+00:00</updated>
<content type="text">Книг: 411693.</content>
</entry><entry>
<id>m:4</id>
<title>По жанрам</title>
<link rel="alternate" href="http://book.local/opds/genres/"/>
<updated>2017-12-21T20:39:17+00:00</updated>
<content type="text">Жанров: 663.</content>
</entry><entry>
<id>m:5</id>
<title>По сериям</title>
<link rel="alternate" href="http://book.local/opds/series/"/>
<updated>2017-12-21T20:39:17+00:00</updated>
<content type="text">Серий: 27696.</content>
</entry></feed>
Ответ старой рабочей версии
Warning: Spoiler!
[ Click to expand ]
[ Click to hide ]
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/terms/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/" xmlns:opds="http://opds-spec.org/2010/catalog">
<id>id:main</id>
<title>SOPDS|Главная</title>
<subtitle>Адрес OPDS каталога: http://book.local/opds/ Version 0.23</subtitle>
<updated>2017-12-21 23:38:39</updated>
<icon>http://book.local/favicon.ico</icon>
<author>
<name>-</name>
<uri>http://book.local/</uri>
<email>admin@local</email><
/author>
<link type="application/atom+xml" rel="start" href="sopds.cgi?id=00"/>
<link href="sopds.cgi?id=09" rel="search" type="application/opensearchdescription+xml" />
<link href="sopds.cgi?searchTerm={searchTerms}" rel="search" type="application/atom+xml" />
<entry>
<title>По авторам</title>
<content type="text">Авторов: 100319.</content>
<link type="application/atom+xml;profile=opds-catalog" href="sopds.cgi?id=3002"/>
<id>id:02</id>
</entry>
<entry>
<title>По наименованию</title>
<content type="text">Книг: 315866.</content>
<link type="application/atom+xml;profile=opds-catalog" href="sopds.cgi?id=3003"/>
<id>id:03</id>
</entry>
<entry>
<title>По Жанрам</title>
<content type="text">Жанров: 638.</content>
<link type="application/atom+xml;profile=opds-catalog" href="sopds.cgi?id=04"/>
<id>id:04</id>
</entry>
<entry>
<title>По Сериям</title>
<content type="text">Серий: 26803.</content>
<link type="application/atom+xml;profile=opds-catalog" href="sopds.cgi?id=3006"/>
<id>id:06</id>
</entry>
<entry>
<title>Новинки за 30 суток</title>
<link type="application/atom+xml;profile=opds-catalog" href="sopds.cgi?id=05"/>
<id>id:05</id>
</entry></feed>
линки совсем иначе описаны, и вообще дифать сложно. совсем разные ответы.
Ушел спать
Last Edit: 5 years 11 months ago by dvs.
Please Войти or Create an account to join the conversation.
- dvs
-
Topic Author
- Offline
- Новый участник
-
Less
More
- Posts: 11
5 years 11 months ago #2003
by mitshel
mitshel replied the topic: Переброс в браузер при работе из ридера.
Спасибо за развернутый анализ. по поводу ссылки: opds-spec.org/specs/opds-catalog-1-1-20110627/ - собственно по этой спеке и старался делать фид, Вероятно в каких-то местах отклонялся от нее основываясь (возможно зря) на работе некоторых читалок и анализе других opds-каталогов. Короче пострааюсь исправить вашу проблему в течении недели-двух.
Please Войти or Create an account to join the conversation.
- mitshel
-
- Offline
- Администратор
-
Less
More
- Posts: 297
- Karma: 8
5 years 11 months ago #2004
by dvs
dvs replied the topic: Переброс в браузер при работе из ридера.
Премного благодарен.
Никуда не спешу, прекрасно работает старая версия.
Интересно по какой спеке делают читалки.
Идея на будущее.
Если так много кастома в ридерах может разбирать их по юзерагенту? И какая-то дефолтная версия по спеке если не распознался.
Пример юзерагентов:
Никуда не спешу, прекрасно работает старая версия.
Интересно по какой спеке делают читалки.
Идея на будущее.
Если так много кастома в ридерах может разбирать их по юзерагенту? И какая-то дефолтная версия по спеке если не распознался.
Пример юзерагентов:
Warning: Spoiler!
[ Click to expand ]
[ Click to hide ]
"CoolReader/3.3 (Qt)" - CoolReader win
"CoolReader/3(Android)" - CoolReader Android
"FBReader/2.5.9-ics (Android 6.0.1, serranoltexx, GT-I9195)" - FBReader Android палит модель телефона
"OPDS/Stanza iPhone/Aldiko/Moon+ Reader(Android)" - MoonReader Android
"CoolReader/3(Android)" - CoolReader Android
"FBReader/2.5.9-ics (Android 6.0.1, serranoltexx, GT-I9195)" - FBReader Android палит модель телефона
"OPDS/Stanza iPhone/Aldiko/Moon+ Reader(Android)" - MoonReader Android
Please Войти or Create an account to join the conversation.
- dvs
-
Topic Author
- Offline
- Новый участник
-
Less
More
- Posts: 11
Time to create page: 0.179 seconds