",true);
+
+ /*if (request.getParameter("action")=="show") {
response.write("");
response.write("Name = ");
response.write(request.getParameter("name"));
@@ -28,6 +59,6 @@ void FormController::service(HttpRequest& request, HttpResponse& response) {
response.write(" ");
response.write("");
response.write("",true);
- }
+ }*/
}
diff --git a/YACReaderLibrary/server/controllers/librariescontroller.cpp b/YACReaderLibrary/server/controllers/librariescontroller.cpp
new file mode 100644
index 00000000..8cfc459c
--- /dev/null
+++ b/YACReaderLibrary/server/controllers/librariescontroller.cpp
@@ -0,0 +1,31 @@
+#include "librariescontroller.h"
+#include "library_window.h" //get libraries
+
+#include "template.h"
+#include "../static.h"
+
+extern LibraryWindow * mw;
+
+LibrariesController::LibrariesController() {}
+
+void LibrariesController::service(HttpRequest& request, HttpResponse& response)
+{
+ response.setHeader("Content-Type", "text/html; charset=ISO-8859-1");
+
+ Template t=Static::templateLoader->getTemplate("libraries",request.getHeader("Accept-Language"));
+ t.enableWarnings();
+
+ QMap libraries = mw->getLibraries();
+ QList names = libraries.keys();
+
+ t.loop("library",names.length());
+ int i=0;
+ while (ivalue("maxThreads",10).toInt();
+ //CAMBIADO
+ int maxConnectionHandlers= 100;//settings->value("maxThreads",10).toInt();
if (pool.count()setSocketDescriptor(socketDescriptor);
connect(socket, SIGNAL(disconnected()), socket, SLOT(deleteLater()));
+ //CAMBIADO 503 por 429
socket->write("HTTP/1.1 503 too many connections\r\nConnection: close\r\n\r\nToo many connections\r\n");
socket->disconnectFromHost();
}
diff --git a/YACReaderLibrary/server/lib/bfHttpServer/httpresponse.cpp b/YACReaderLibrary/server/lib/bfHttpServer/httpresponse.cpp
index efa3ee8a..3c6ea03b 100644
--- a/YACReaderLibrary/server/lib/bfHttpServer/httpresponse.cpp
+++ b/YACReaderLibrary/server/lib/bfHttpServer/httpresponse.cpp
@@ -104,6 +104,11 @@ void HttpResponse::write(QByteArray data, bool lastPart) {
}
}
+void HttpResponse::writeText(QString text, bool lastPart)
+{
+ write(text.toAscii(),lastPart);
+}
+
bool HttpResponse::hasSentLastPart() const {
return sentLastPart;
diff --git a/YACReaderLibrary/server/lib/bfHttpServer/httpresponse.h b/YACReaderLibrary/server/lib/bfHttpServer/httpresponse.h
index 3c28a903..14c54a88 100644
--- a/YACReaderLibrary/server/lib/bfHttpServer/httpresponse.h
+++ b/YACReaderLibrary/server/lib/bfHttpServer/httpresponse.h
@@ -83,6 +83,7 @@ public:
@param lastPart Indicator, if this is the last part of the response.
*/
void write(QByteArray data, bool lastPart=false);
+ void writeText(QString text, bool lastPart=false);
/**
Indicates wheter the body has been sent completely. Used by the connection
diff --git a/YACReaderLibrary/server/lib/bfHttpServer/staticfilecontroller.cpp b/YACReaderLibrary/server/lib/bfHttpServer/staticfilecontroller.cpp
index 6ffc10a3..670682ce 100644
--- a/YACReaderLibrary/server/lib/bfHttpServer/staticfilecontroller.cpp
+++ b/YACReaderLibrary/server/lib/bfHttpServer/staticfilecontroller.cpp
@@ -119,6 +119,8 @@ void StaticFileController::setContentType(QString fileName, HttpResponse& respon
else if (fileName.endsWith(".html") || fileName.endsWith(".htm")) {
response.setHeader("Content-Type", qPrintable("text/html; charset=charset="+encoding));
}
+ else if (fileName.endsWith(".js"))
+ response.setHeader("Content-Type", qPrintable("text/javascript; charset=charset="+encoding));
// Todo: add all of your content types
}
diff --git a/YACReaderLibrary/server/requestmapper.cpp b/YACReaderLibrary/server/requestmapper.cpp
index 107cba28..59755b33 100644
--- a/YACReaderLibrary/server/requestmapper.cpp
+++ b/YACReaderLibrary/server/requestmapper.cpp
@@ -12,6 +12,10 @@
#include "controllers/fileuploadcontroller.h"
#include "controllers/sessioncontroller.h"
+#include "controllers/librariescontroller.h"
+#include "controllers/foldercontroller.h"
+#include "controllers/covercontroller.h"
+
RequestMapper::RequestMapper(QObject* parent)
:HttpRequestHandler(parent) {}
@@ -19,28 +23,47 @@ void RequestMapper::service(HttpRequest& request, HttpResponse& response) {
QByteArray path=request.getPath();
qDebug("RequestMapper: path=%s",path.data());
- if (path.startsWith("/dump")) {
- DumpController().service(request, response);
- }
+ //primera petición, se ha hecho un post, se sirven las bibliotecas si la seguridad mediante login no está habilitada
+ if(path == "/")
+ {
+ LibrariesController().service(request, response);
+ }
- else if (path.startsWith("/template")) {
- TemplateController().service(request, response);
- }
+ //listar el contenido del folder
+ if(path.contains("folder") && !path.contains("info"))
+ {
+ FolderController().service(request, response);
+ }
- else if (path.startsWith("/form")) {
- FormController().service(request, response);
- }
+ if(path.contains("cover") )
+ {
+ CoverController().service(request, response);
+ }
+ else
+ {
+ if (path.startsWith("/dump")) {
+ DumpController().service(request, response);
+ }
- else if (path.startsWith("/file")) {
- FileUploadController().service(request, response);
- }
+ else if (path.startsWith("/template")) {
+ TemplateController().service(request, response);
+ }
- else if (path.startsWith("/session")) {
- SessionController().service(request, response);
- }
+ else if (path.startsWith("/form")) {
+ FormController().service(request, response);
+ }
- // All other pathes are mapped to the static file controller.
- else {
- Static::staticFileController->service(request, response);
- }
+ else if (path.startsWith("/file")) {
+ FileUploadController().service(request, response);
+ }
+
+ else if (path.startsWith("/session")) {
+ SessionController().service(request, response);
+ }
+
+ // All other pathes are mapped to the static file controller.
+ else {
+ Static::staticFileController->service(request, response);
+ }
+ }
}
diff --git a/YACReaderLibrary/server/server.pri b/YACReaderLibrary/server/server.pri
index 1f4e5df4..4330dbe5 100644
--- a/YACReaderLibrary/server/server.pri
+++ b/YACReaderLibrary/server/server.pri
@@ -9,7 +9,15 @@ HEADERS += \
$$PWD/controllers/templatecontroller.h \
$$PWD/controllers/formcontroller.h \
$$PWD/controllers/fileuploadcontroller.h \
- $$PWD/controllers/sessioncontroller.h
+ $$PWD/controllers/sessioncontroller.h \
+ $$PWD/controllers/comiccontroller.h \
+ $$PWD/controllers/errorcontroller.h \
+ $$PWD/controllers/foldercontroller.h \
+ $$PWD/controllers/folderinfocontroller.h \
+ $$PWD/controllers/librariescontroller.h \
+ $$PWD/controllers/pagecontroller.h \
+ $$PWD/controllers/sessionmanager.h \
+ $$PWD/controllers/covercontroller.h
SOURCES += \
$$PWD/static.cpp \
@@ -19,7 +27,15 @@ SOURCES += \
$$PWD/controllers/templatecontroller.cpp \
$$PWD/controllers/formcontroller.cpp \
$$PWD/controllers/fileuploadcontroller.cpp \
- $$PWD/controllers/sessioncontroller.cpp
+ $$PWD/controllers/sessioncontroller.cpp \
+ $$PWD/controllers/comiccontroller.cpp \
+ $$PWD/controllers/errorcontroller.cpp \
+ $$PWD/controllers/foldercontroller.cpp \
+ $$PWD/controllers/folderinfocontroller.cpp \
+ $$PWD/controllers/librariescontroller.cpp \
+ $$PWD/controllers/pagecontroller.cpp \
+ $$PWD/controllers/sessionmanager.cpp \
+ $$PWD/controllers/covercontroller.cpp
include(lib/bfLogging/bfLogging.pri)
include(lib/bfHttpServer/bfHttpServer.pri)
diff --git a/release/server/docroot/login.html b/release/server/docroot/login.html
new file mode 100644
index 00000000..9d5e625d
--- /dev/null
+++ b/release/server/docroot/login.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+ Login
+
+
+
+
+
LOGIN
+
YACREADER LIBRARY
+
+
+
+
+
+
\ No newline at end of file
diff --git a/release/server/templates/folder.tpl b/release/server/templates/folder.tpl
new file mode 100644
index 00000000..a5b33a87
--- /dev/null
+++ b/release/server/templates/folder.tpl
@@ -0,0 +1,19 @@
+
+
+