From a7bd1ddb954417f7d0c43d79e1a96576d480e13b Mon Sep 17 00:00:00 2001 From: Nikolay Pultsin Date: Sat, 18 Feb 2012 02:06:16 +0000 Subject: [PATCH] related catalog links --- ChangeLog | 1 + src/org/geometerplus/fbreader/network/opds/OPDSBookItem.java | 4 ++-- .../fbreader/network/opds/OPDSCatalogInfoHandler.java | 2 +- .../geometerplus/fbreader/network/opds/OPDSLinkXMLReader.java | 4 ++-- .../fbreader/network/opds/OpenSearchXMLReader.java | 2 +- 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9be941693..4597ccaa7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,7 @@ ===== 1.3.8 (Feb ??, 2012) ===== * striked through/underlined text support * asynchronous bonjour scanning: user can select any found network even if scanning is still in progress +* better support for "related" catalogs in book descriptions ===== 1.3.7 (Feb 9, 2012) ===== * Font smoothing settings (Settings -> Text -> Font properties) diff --git a/src/org/geometerplus/fbreader/network/opds/OPDSBookItem.java b/src/org/geometerplus/fbreader/network/opds/OPDSBookItem.java index 01a5f85f2..f69ee0ea1 100644 --- a/src/org/geometerplus/fbreader/network/opds/OPDSBookItem.java +++ b/src/org/geometerplus/fbreader/network/opds/OPDSBookItem.java @@ -125,7 +125,7 @@ public class OPDSBookItem extends NetworkBookItem implements OPDSConstants { if (MimeType.IMAGE_PNG.equals(type) || MimeType.IMAGE_JPEG.equals(type)) { urls.addInfo(new UrlInfo(UrlInfo.Type.Image, href)); } - } else if (MimeType.APP_ATOM.Name.equals(type.Name) && + } else if (MimeType.APP_ATOM.weakEquals(type) && "entry".equals(type.getParameter("type"))) { urls.addInfo(new UrlInfo(UrlInfo.Type.SingleEntry, href)); } else if (UrlInfo.Type.BookBuy == referenceType) { @@ -273,7 +273,7 @@ public class OPDSBookItem extends NetworkBookItem implements OPDSConstants { @Override public OPDSCatalogItem createRelatedCatalogItem(RelatedUrlInfo info) { - if (MimeType.APP_ATOM.equals(info.Mime)) { + if (MimeType.APP_ATOM.weakEquals(info.Mime)) { return new OPDSCatalogItem((OPDSNetworkLink)Link, info); } return null; diff --git a/src/org/geometerplus/fbreader/network/opds/OPDSCatalogInfoHandler.java b/src/org/geometerplus/fbreader/network/opds/OPDSCatalogInfoHandler.java index f6c3ba93c..bceb99d84 100644 --- a/src/org/geometerplus/fbreader/network/opds/OPDSCatalogInfoHandler.java +++ b/src/org/geometerplus/fbreader/network/opds/OPDSCatalogInfoHandler.java @@ -55,7 +55,7 @@ class OPDSCatalogInfoHandler extends AbstractOPDSFeedHandler { if ("search".equals(rel)) { if (MimeType.APP_OPENSEARCHDESCRIPTION.equals(type)) { myOpensearchDescriptionURLs.add(ZLNetworkUtil.url(myBaseURL, link.getHref())); - } else if (MimeType.APP_ATOM.equals(type)) { + } else if (MimeType.APP_ATOM.weakEquals(type)) { final String template = ZLNetworkUtil.url(myBaseURL, link.getHref()); final OpenSearchDescription descr = OpenSearchDescription.createDefault(template); if (descr.isValid()) { diff --git a/src/org/geometerplus/fbreader/network/opds/OPDSLinkXMLReader.java b/src/org/geometerplus/fbreader/network/opds/OPDSLinkXMLReader.java index 41a9a4c42..2eeb38aef 100644 --- a/src/org/geometerplus/fbreader/network/opds/OPDSLinkXMLReader.java +++ b/src/org/geometerplus/fbreader/network/opds/OPDSLinkXMLReader.java @@ -95,11 +95,11 @@ class OPDSLinkXMLReader extends OPDSXMLReader implements OPDSConstants { infos.addInfo(new UrlInfoWithDate(UrlInfo.Type.Image, href)); } } else if (rel == null) { - if (MimeType.APP_ATOM.equals(type)) { + if (MimeType.APP_ATOM.weakEquals(type)) { infos.addInfo(new UrlInfoWithDate(UrlInfo.Type.Catalog, href)); } } else if (rel == "search") { - if (MimeType.APP_ATOM.equals(type)) { + if (MimeType.APP_ATOM.weakEquals(type)) { final OpenSearchDescription descr = OpenSearchDescription.createDefault(href); if (descr.isValid()) { // TODO: May be do not use '%s'??? Use Description instead??? (this needs to rewrite SEARCH engine logic a little) diff --git a/src/org/geometerplus/fbreader/network/opds/OpenSearchXMLReader.java b/src/org/geometerplus/fbreader/network/opds/OpenSearchXMLReader.java index 6aade443f..4af5eb472 100644 --- a/src/org/geometerplus/fbreader/network/opds/OpenSearchXMLReader.java +++ b/src/org/geometerplus/fbreader/network/opds/OpenSearchXMLReader.java @@ -105,7 +105,7 @@ class OpenSearchXMLReader extends ZLXMLReaderAdapter { if (tagPrefix == myOpenSearchNamespaceId && tag == TAG_URL) { final MimeType type = MimeType.get(attributes.getValue("type")); final String rel = attributes.getValue("rel"); - if (MimeType.APP_ATOM.equals(type) + if (MimeType.APP_ATOM.weakEquals(type) && (rel == null || rel == "results")) { final String template = ZLNetworkUtil.url(myBaseURL, attributes.getValue("template")); final int indexOffset = parseInt(attributes.getValue("indexOffset"));