File indexing completed on 2024-05-12 08:02:43
0001 // SPDX-FileCopyrightText: 2021 Carl Schwan <carlschwan@kde.org> 0002 // SPDX-License-Identifier: LGPL-2.0-or-later 0003 0004 #include "bookserver.h" 0005 0006 using namespace Qt::StringLiterals; 0007 0008 #include <QFileInfo> 0009 0010 BookServer::BookServer() 0011 { 0012 server.route(u"/book/"_s, [](const QHttpServerRequest &request) { 0013 const auto fileName = QUrl::fromPercentEncoding(request.query().queryItemValue(u"url"_s).toUtf8()).replace(QLatin1Char('+'), QLatin1Char(' ')); 0014 QFileInfo fileInfo(fileName.mid(7)); 0015 return QHttpServerResponse::fromFile(fileName.mid(7)); 0016 }); 0017 0018 server.afterRequest([](QHttpServerResponse &&resp) { 0019 resp.setHeader("Access-Control-Allow-Origin", "*"); 0020 return std::move(resp); 0021 }); 0022 0023 const auto port = server.listen(QHostAddress::Any, 45961); 0024 if (!port) { 0025 qWarning() << "Server failed to listen on a port."; 0026 return; 0027 } 0028 0029 qWarning() << u"Running on http://127.0.0.1:%1/ (Press CTRL+C to quit)"_s.arg(port); 0030 }