File indexing completed on 2024-05-12 04:06:41

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 }