diff --git a/YACReaderLibrary/server/controllers/comiccontroller.cpp b/YACReaderLibrary/server/controllers/comiccontroller.cpp
index e3e6daad..7ffcec58 100644
--- a/YACReaderLibrary/server/controllers/comiccontroller.cpp
+++ b/YACReaderLibrary/server/controllers/comiccontroller.cpp
@@ -2,6 +2,7 @@
#include "db_helper.h"
#include "yacreader_libraries.h"
+#include "yacreader_http_session.h"
#include "template.h"
#include "../static.h"
@@ -18,6 +19,7 @@ ComicController::ComicController() {}
void ComicController::service(HttpRequest& request, HttpResponse& response)
{
HttpSession session=Static::sessionStore->getSession(request,response,false);
+ YACReaderHttpSession *ySession = Static::yacreaderSessionStore.value(session.getId());
QString path = QUrl::fromPercentEncoding(request.getPath()).toUtf8();
QStringList pathElements = path.split('/');
@@ -44,7 +46,7 @@ void ComicController::service(HttpRequest& request, HttpResponse& response)
ComicDB comic = DBHelper::getComicInfo(libraryId, comicId);
if(!remoteComic)
- session.setDownloadedComic(comic.info.hash);
+ ySession->setDownloadedComic(comic.info.hash);
Comic * comicFile = FactoryComic::newComic(libraries.getPath(libraryId)+comic.path);
@@ -70,13 +72,13 @@ void ComicController::service(HttpRequest& request, HttpResponse& response)
if(remoteComic)
{
QLOG_TRACE() << "remote comic requested";
- session.setCurrentRemoteComic(comic.id, comicFile);
+ ySession->setCurrentRemoteComic(comic.id, comicFile);
}
else
{
QLOG_TRACE() << "comic requested";
- session.setCurrentComic(comic.id, comicFile);
+ ySession->setCurrentComic(comic.id, comicFile);
}
response.setHeader("Content-Type", "text/plain; charset=utf-8");
diff --git a/YACReaderLibrary/server/controllers/covercontroller.cpp b/YACReaderLibrary/server/controllers/covercontroller.cpp
index da414c80..b8181e9e 100644
--- a/YACReaderLibrary/server/controllers/covercontroller.cpp
+++ b/YACReaderLibrary/server/controllers/covercontroller.cpp
@@ -1,6 +1,7 @@
#include "covercontroller.h"
#include "db_helper.h" //get libraries
#include "yacreader_libraries.h"
+#include "yacreader_http_session.h"
#include "template.h"
#include "../static.h"
@@ -9,8 +10,8 @@ CoverController::CoverController() {}
void CoverController::service(HttpRequest& request, HttpResponse& response)
{
-
HttpSession session=Static::sessionStore->getSession(request,response,false);
+ YACReaderHttpSession *ySession = Static::yacreaderSessionStore.value(session.getId());
response.setHeader("Content-Type", "image/jpeg");
response.setHeader("Connection","close");
@@ -47,7 +48,7 @@ void CoverController::service(HttpRequest& request, HttpResponse& response)
if (!img.isNull()) {
int width = 80, height = 120;
- if(session.getDisplayType()=="@2x")
+ if(ySession->getDisplayType()=="@2x")
{
width = 160;
height = 240;
@@ -66,7 +67,7 @@ void CoverController::service(HttpRequest& request, HttpResponse& response)
if(folderCover)
{
- if(session.getDisplayType()=="@2x")
+ if(ySession->getDisplayType()=="@2x")
p.drawImage(0,0,QImage(":/images/f_overlayed_retina.png"));
else
p.drawImage(0,0,QImage(":/images/f_overlayed.png"));
diff --git a/YACReaderLibrary/server/controllers/foldercontroller.cpp b/YACReaderLibrary/server/controllers/foldercontroller.cpp
index d279dd7b..a8eea99b 100644
--- a/YACReaderLibrary/server/controllers/foldercontroller.cpp
+++ b/YACReaderLibrary/server/controllers/foldercontroller.cpp
@@ -11,6 +11,8 @@
#include "qnaturalsorting.h"
+#include "yacreader_http_session.h"
+
#include "QsLog.h"
struct LibraryItemSorter
@@ -26,6 +28,7 @@ FolderController::FolderController() {}
void FolderController::service(HttpRequest& request, HttpResponse& response)
{
HttpSession session=Static::sessionStore->getSession(request,response,false);
+ YACReaderHttpSession *ySession = Static::yacreaderSessionStore.value(session.getId());
response.setHeader("Content-Type", "text/html; charset=utf-8");
response.setHeader("Connection","close");
@@ -33,7 +36,7 @@ void FolderController::service(HttpRequest& request, HttpResponse& response)
//QString y = session.get("xxx").toString();
//response.writeText(QString("session xxx : %1
").arg(y));
- Template t=Static::templateLoader->getTemplate("folder_"+session.getDeviceType(),request.getHeader("Accept-Language"));
+ Template t = Static::templateLoader->getTemplate("folder_"+ySession->getDeviceType(),request.getHeader("Accept-Language"));
t.enableWarnings();
QString path = QUrl::fromPercentEncoding(request.getPath()).toUtf8();
QStringList pathElements = path.split('/');
@@ -85,17 +88,17 @@ void FolderController::service(HttpRequest& request, HttpResponse& response)
if(folderId == 1)
{
- session.clearNavigationPath();
- session.pushNavigationItem(QPair(folderId,page));
+ ySession->clearNavigationPath();
+ ySession->pushNavigationItem(QPair(folderId,page));
t.setVariable(QString("upurl"),"/");
}
else
{
if(fromUp)
- session.popNavigationItem();
+ ySession->popNavigationItem();
else //drill down or direct access
{
- QStack > path = session.getNavigationPath();
+ QStack > path = ySession->getNavigationPath();
bool found=false;
for(QStack >::const_iterator itr = path.begin(); itr!=path.end(); itr++)
if(itr->first == folderId)
@@ -106,16 +109,16 @@ void FolderController::service(HttpRequest& request, HttpResponse& response)
if(found)
{
- while(session.topNavigationItem().first != folderId)
- session.popNavigationItem();
+ while(ySession->topNavigationItem().first != folderId)
+ ySession->popNavigationItem();
- session.updateTopItem(QPair(folderId,page));
+ ySession->updateTopItem(QPair(folderId,page));
}
else
- session.pushNavigationItem(QPair(folderId,page));
+ ySession->pushNavigationItem(QPair(folderId,page));
}
- QStack > path = session.getNavigationPath();
+ QStack > path = ySession->getNavigationPath();
if(path.count()>1)
{
QPair parentItem = path.at(path.count()-2);
@@ -146,7 +149,7 @@ void FolderController::service(HttpRequest& request, HttpResponse& response)
int numFoldersAtCurrentPage = qMax(0,qMin(numFolders - indexCurrentPage, elementsPerPage));
//PATH
- QStack > foldersPath = session.getNavigationPath();
+ QStack > foldersPath = ySession->getNavigationPath();
t.setVariable(QString("library.name"),libraryName);
t.setVariable(QString("library.url"),QString("/library/%1/folder/1").arg(libraryId));
t.loop("path",foldersPath.count()-1);
@@ -195,9 +198,9 @@ void FolderController::service(HttpRequest& request, HttpResponse& response)
const ComicDB * comic = (ComicDB *)item;
t.setVariable(QString("element%1.browse").arg(i),"");
//t.setVariable(QString("element%1.downloadurl").arg(i),"/library/"+libraryName+"/comic/"+QString("%1").arg(comic->id));
- if(!session.isComicOnDevice(comic->info.hash) && !session.isComicDownloaded(comic->info.hash))
+ if(!ySession->isComicOnDevice(comic->info.hash) && !ySession->isComicDownloaded(comic->info.hash))
t.setVariable(QString("element%1.download").arg(i),QString("IMPORT").arg("/library/"+QString::number(libraryId)+"/comic/"+QString("%1").arg(comic->id)));
- else if (session.isComicOnDevice(comic->info.hash))
+ else if (ySession->isComicOnDevice(comic->info.hash))
t.setVariable(QString("element%1.download").arg(i),QString("IMPORTED
"));
else
t.setVariable(QString("element%1.download").arg(i),QString("IMPORTING
"));
diff --git a/YACReaderLibrary/server/controllers/librariescontroller.cpp b/YACReaderLibrary/server/controllers/librariescontroller.cpp
index eb65cffb..24d12612 100644
--- a/YACReaderLibrary/server/controllers/librariescontroller.cpp
+++ b/YACReaderLibrary/server/controllers/librariescontroller.cpp
@@ -1,6 +1,7 @@
#include "librariescontroller.h"
#include "db_helper.h" //get libraries
#include "yacreader_libraries.h"
+#include "yacreader_http_session.h"
#include "template.h"
#include "../static.h"
@@ -12,13 +13,14 @@ LibrariesController::LibrariesController() {}
void LibrariesController::service(HttpRequest& request, HttpResponse& response)
{
HttpSession session=Static::sessionStore->getSession(request,response,false);
+ YACReaderHttpSession *ySession = Static::yacreaderSessionStore.value(session.getId());
response.setHeader("Content-Type", "text/html; charset=utf-8");
response.setHeader("Connection","close");
- session.clearNavigationPath();
+ ySession->clearNavigationPath();
- Template t=Static::templateLoader->getTemplate("libraries_"+session.getDeviceType(),request.getHeader("Accept-Language"));
+ Template t=Static::templateLoader->getTemplate("libraries_"+ySession->getDeviceType(),request.getHeader("Accept-Language"));
t.enableWarnings();
YACReaderLibraries libraries = DBHelper::getLibraries();
diff --git a/YACReaderLibrary/server/controllers/pagecontroller.cpp b/YACReaderLibrary/server/controllers/pagecontroller.cpp
index 1ab15543..eda6fee2 100644
--- a/YACReaderLibrary/server/controllers/pagecontroller.cpp
+++ b/YACReaderLibrary/server/controllers/pagecontroller.cpp
@@ -4,6 +4,8 @@
#include "comic.h"
#include "comiccontroller.h"
+#include "yacreader_http_session.h"
+
#include
#include
@@ -16,6 +18,7 @@ PageController::PageController() {}
void PageController::service(HttpRequest& request, HttpResponse& response)
{
HttpSession session=Static::sessionStore->getSession(request,response,false);
+ YACReaderHttpSession *ySession = Static::yacreaderSessionStore.value(session.getId());
QString path = QUrl::fromPercentEncoding(request.getPath()).toUtf8();
bool remote = path.endsWith("remote");
@@ -35,14 +38,14 @@ void PageController::service(HttpRequest& request, HttpResponse& response)
if(remote)
{
QLOG_TRACE() << "se recupera comic remoto para servir páginas";
- comicFile = session.getCurrentRemoteComic();
- currentComicId = session.getCurrentRemoteComicId();
+ comicFile = ySession->getCurrentRemoteComic();
+ currentComicId = ySession->getCurrentRemoteComicId();
}
else
{
QLOG_TRACE() << "se recupera comic para servir páginas";
- comicFile = session.getCurrentComic();
- currentComicId = session.getCurrentComicId();
+ comicFile = ySession->getCurrentComic();
+ currentComicId = ySession->getCurrentComicId();
}
if(currentComicId != 0 && !QPointer(comicFile).isNull())
@@ -77,9 +80,9 @@ void PageController::service(HttpRequest& request, HttpResponse& response)
{
//delete comicFile;
if(remote)
- session.dismissCurrentRemoteComic();
+ ySession->dismissCurrentRemoteComic();
else
- session.dismissCurrentComic();
+ ySession->dismissCurrentComic();
}
response.setStatus(404,"not found"); //TODO qué mensaje enviar
response.write("404 not found",true);