From dd52ac8255e76889dd366907c404defef6f34024 Mon Sep 17 00:00:00 2001 From: Matthieu Gautier Date: Tue, 13 Nov 2018 18:11:57 +0100 Subject: [PATCH] Move the urlSchemeHandler content handling in a specific method. Just a bit of code reformating. --- src/urlschemehandler.cpp | 20 ++++++++++++++++---- src/urlschemehandler.h | 2 ++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/urlschemehandler.cpp b/src/urlschemehandler.cpp index a8c4461..409a976 100644 --- a/src/urlschemehandler.cpp +++ b/src/urlschemehandler.cpp @@ -13,7 +13,7 @@ UrlSchemeHandler::UrlSchemeHandler() void -UrlSchemeHandler::requestStarted(QWebEngineUrlRequestJob *request) +UrlSchemeHandler::handleContentRequest(QWebEngineUrlRequestJob *request) { auto qurl = request->requestUrl(); std::string url = qurl.path().toUtf8().constData(); @@ -30,18 +30,18 @@ UrlSchemeHandler::requestStarted(QWebEngineUrlRequestJob *request) kiwix::Entry entry; try { entry = reader->getEntryFromPath(url); - } catch (kiwix::NoEntry& e) { + } catch (kiwix::NoEntry&) { url = "A/" + url; try { entry = reader->getEntryFromPath(url); - } catch (kiwix::NoEntry& e) { + } catch (kiwix::NoEntry&) { request->fail(QWebEngineUrlRequestJob::UrlNotFound); return; } } try { entry = entry.getFinalEntry(); - } catch (kiwix::NoEntry& e) { + } catch (kiwix::NoEntry&) { request->fail(QWebEngineUrlRequestJob::UrlNotFound); return; } @@ -51,3 +51,15 @@ UrlSchemeHandler::requestStarted(QWebEngineUrlRequestJob *request) connect(buffer, &QIODevice::aboutToClose, buffer, &QObject::deleteLater); request->reply(mimeType, buffer); } + +void +UrlSchemeHandler::requestStarted(QWebEngineUrlRequestJob *request) +{ + auto qurl = request->requestUrl(); + auto host = qurl.host(); + if (host.endsWith(".zim")) { + handleContentRequest(request); + } else { + request->fail(QWebEngineUrlRequestJob::UrlNotFound); + } +} diff --git a/src/urlschemehandler.h b/src/urlschemehandler.h index 97b2320..bb61f52 100644 --- a/src/urlschemehandler.h +++ b/src/urlschemehandler.h @@ -8,6 +8,8 @@ class UrlSchemeHandler : public QWebEngineUrlSchemeHandler public: UrlSchemeHandler(); void requestStarted(QWebEngineUrlRequestJob *request); +private: + void handleContentRequest(QWebEngineUrlRequestJob *request); }; #endif // URLSCHEMEHANDLER_H