a?adido comic flow con opengl a yacreaderlibrary

modificados los paginadores

soporte multidispositivo del servidor a?adido

nuevos templates de la web agregados
This commit is contained in:
Luis Ángel San Martín
2012-10-02 07:58:12 +02:00
parent 0487531bb6
commit 4e43e66df3
26 changed files with 1952 additions and 82 deletions

View File

@ -42,7 +42,8 @@ void ComicController::service(HttpRequest& request, HttpResponse& response)
{
HttpSession session=Static::sessionStore->getSession(request,response);
QStringList pathElements = ((QString)request.getPath()).split('/');
QString path = QUrl::fromPercentEncoding(request.getPath()).toLatin1();
QStringList pathElements = path.split('/');
QString libraryName = pathElements.at(2);
qulonglong comicId = pathElements.at(4).toULongLong();

View File

@ -16,7 +16,7 @@ void CoverController::service(HttpRequest& request, HttpResponse& response)
QMap<QString,QString> libraries = mw->getLibraries();
QString path = request.getPath();
QString path = QUrl::fromPercentEncoding(request.getPath()).toLatin1();
QStringList pathElements = path.split('/');
QString libraryName = pathElements.at(2);
QString fileName = pathElements.at(4);

View File

@ -12,6 +12,16 @@ ErrorController::ErrorController(int errorCode)
void ErrorController::service(HttpRequest& request, HttpResponse& response)
{
response.setStatus(300,"redirect");
response.write("<html> <head> <meta http-equiv=\"refresh\" content=\"0; URL=/\"> </head> <body> </body> </html>", true);
switch(error)
{
case 300:
response.setStatus(300,"redirect");
response.write("<html> <head> <meta http-equiv=\"refresh\" content=\"0; URL=/\"> </head> <body> </body> </html>", true);
break;
case 404:
response.setStatus(404,"not found");
response.write("404 not found",true);
break;
}
}

View File

@ -29,25 +29,24 @@ void FolderController::service(HttpRequest& request, HttpResponse& response)
QString y = session.get("xxx").toString();
//response.writeText(QString("session xxx : %1 <br/>").arg(y));
Template t=Static::templateLoader->getTemplate("folder",request.getHeader("Accept-Language"));
Template t=Static::templateLoader->getTemplate("folder_"+session.getDeviceType(),request.getHeader("Accept-Language"));
t.enableWarnings();
QString path = request.getPath();
QString path = QUrl::fromPercentEncoding(request.getPath()).toLatin1();
QStringList pathElements = path.split('/');
QString libraryName = pathElements.at(2);
qulonglong parentId = pathElements.at(4).toULongLong();
QList<LibraryItem *> folderContent = mw->getFolderContentFromLibrary(libraryName,parentId);
QList<LibraryItem *> folderComics = mw->getFolderComicsFromLibrary(libraryName,parentId);
response.writeText(libraryName);
folderContent.append(folderComics);
qSort(folderContent.begin(),folderContent.end(),LibraryItemSorter());
folderComics.clear();
qulonglong backId = mw->getParentFromComicFolderId(libraryName,parentId);
int page = 0;
QByteArray p = request.getParameter("page");
if(p.length() != 0)
@ -57,11 +56,10 @@ void FolderController::service(HttpRequest& request, HttpResponse& response)
//QString currentPath = session.get("currentPath").toString();
//QStringList pathSize = currentPath.split("/").last().toInt;
if(backId == 1 && parentId == 1)
t.setVariable(QString("upurl"),"/?page=0");
else
t.setVariable(QString("upurl"),"/library/" + libraryName + "/folder/" +QString("%1").arg(backId));//.arg(upPage));
t.setVariable(QString("upurl"),"/library/" + QUrl::toPercentEncoding(libraryName) + "/folder/" +QString("%1").arg(backId));//.arg(upPage));
/*if(currentPath.length()>0)
{
@ -115,19 +113,23 @@ void FolderController::service(HttpRequest& request, HttpResponse& response)
t.setVariable(QString("element%1.browse").arg(i),QString("<a href=\"%1\">Browse</a>").arg(QString("/library/%1/folder/%2").arg(libraryName).arg(item->id)));
//t.setVariable(QString("element%1.url").arg(i),"/library/"+libraryName+"/folder/"+QString("%1").arg(folderContent.at(i + (page*10))->id));
t.setVariable(QString("element%1.downloadurl").arg(i),"/library/"+libraryName+"/folder/"+QString("%1/info").arg(folderContent.at(i + (page*elementsPerPage))->id));
//t.setVariable(QString("element%1.downloadurl").arg(i),"/library/"+libraryName+"/folder/"+QString("%1/info").arg(folderContent.at(i + (page*elementsPerPage))->id));
t.setVariable(QString("element%1.download").arg(i),QString("<a href=\"%1\">Download</a>").arg("/library/"+QUrl::toPercentEncoding(libraryName)+"/folder/"+QString("%1/info").arg(folderContent.at(i + (page*elementsPerPage))->id)));
}
else
{
const ComicDB * comic = (ComicDB *)item;
t.setVariable(QString("element%1.browse").arg(i),"");
t.setVariable(QString("element%1.image.width").arg(i),"80px");
t.setVariable(QString("element%1.downloadurl").arg(i),"/library/"+libraryName+"/comic/"+QString("%1").arg(comic->id));
//t.setVariable(QString("element%1.image.url").arg(i),"/images/f.png");
if(session.isComicOnDevice(comic->info.hash))
t.setVariable(QString("element%1.image.url").arg(i),"/images/f.png");
//t.setVariable(QString("element%1.downloadurl").arg(i),"/library/"+libraryName+"/comic/"+QString("%1").arg(comic->id));
if(!session.isComicOnDevice(comic->info.hash))
t.setVariable(QString("element%1.download").arg(i),QString("<a href=\"%1\">Download</a>").arg("/library/"+QUrl::toPercentEncoding(libraryName)+"/comic/"+QString("%1").arg(comic->id)));
else
t.setVariable(QString("element%1.image.url").arg(i),QString("/library/%1/cover/%2.jpg").arg(libraryName).arg(comic->info.hash));
t.setVariable(QString("element%1.download").arg(i),QString(""));
//t.setVariable(QString("element%1.image.url").arg(i),"/images/f.png");
t.setVariable(QString("element%1.image.url").arg(i),QString("/library/%1/cover/%2.jpg").arg(QString(QUrl::toPercentEncoding(libraryName))).arg(comic->info.hash));
}
i++;
}
@ -172,8 +174,8 @@ void FolderController::service(HttpRequest& request, HttpResponse& response)
t.setVariable(QString("elementcomic%1.name").arg(j),comic->name);
//else
// t.setVariable(QString("elementcomic%1.name").arg(i),*comic->info.title);
t.setVariable(QString("elementcomic%1.url").arg(j),"/library/"+libraryName+"/comic/"+QString("%1").arg(comic->id));
t.setVariable(QString("elementcomic%1.coverulr").arg(j),"/library/"+libraryName+"/cover/"+QString("%1").arg(comic->info.hash + ".jpg"));
t.setVariable(QString("elementcomic%1.url").arg(j),"/library/"+QUrl::toPercentEncoding(libraryName)+"/comic/"+QString("%1").arg(comic->id));
t.setVariable(QString("elementcomic%1.coverulr").arg(j),"/library/"+QUrl::toPercentEncoding(libraryName)+"/cover/"+QString("%1").arg(comic->info.hash + ".jpg"));
j++;
}
@ -210,7 +212,7 @@ void FolderController::service(HttpRequest& request, HttpResponse& response)
{
//response.writeText(QString("%1 - %2 <br />").arg(*itr).arg(count));
t.setVariable(QString("index%1.indexname").arg(i), *itr);
t.setVariable(QString("index%1.url").arg(i),QString("/library/%1/folder/%2?page=%3").arg(libraryName).arg(parentId).arg(indexPage));
t.setVariable(QString("index%1.url").arg(i),QString("/library/%1/folder/%2?page=%3").arg(QString(QUrl::toPercentEncoding(libraryName))).arg(parentId).arg(indexPage));
i++;
count += indexCount.value(*itr);
indexPage = count/elementsPerPage;
@ -222,13 +224,19 @@ void FolderController::service(HttpRequest& request, HttpResponse& response)
while(z < numPages)
{
t.setVariable(QString("page%1.url").arg(z),QString("/library/%1/folder/%2?page=%3").arg(libraryName).arg(parentId).arg(z));
t.setVariable(QString("page%1.url").arg(z),QString("/library/%1/folder/%2?page=%3").arg(QString(QUrl::toPercentEncoding(libraryName))).arg(parentId).arg(z));
t.setVariable(QString("page%1.number").arg(z),QString("%1").arg(z));
if(page == z)
t.setVariable(QString("page%1.number").arg(z),QString("<strong>%1</strong>").arg(z));
t.setVariable(QString("page%1.current").arg(z),"current");
else
t.setVariable(QString("page%1.number").arg(z),QString("%1").arg(z));
t.setVariable(QString("page%1.current").arg(z),"");
z++;
}
t.setVariable("page.first",QString("/library/%1/folder/%2?page=%3").arg(QString(QUrl::toPercentEncoding(libraryName))).arg(parentId).arg(0));
t.setVariable("page.previous",QString("/library/%1/folder/%2?page=%3").arg(QString(QUrl::toPercentEncoding(libraryName))).arg(parentId).arg((page==0)?page:page-1));
t.setVariable("page.next",QString("/library/%1/folder/%2?page=%3").arg(QString(QUrl::toPercentEncoding(libraryName))).arg(parentId).arg((page==numPages-1)?page:page+1));
t.setVariable("page.last",QString("/library/%1/folder/%2?page=%3").arg(QString(QUrl::toPercentEncoding(libraryName))).arg(parentId).arg(numPages-1));
}
else
{

View File

@ -15,7 +15,7 @@ void FolderInfoController::service(HttpRequest& request, HttpResponse& response)
{
response.setHeader("Content-Type", "plain/text; charset=ISO-8859-1");
QString path = request.getPath();
QString path = QUrl::fromPercentEncoding(request.getPath()).toLatin1();
QStringList pathElements = path.split('/');
QString libraryName = pathElements.at(2);
qulonglong parentId = pathElements.at(4).toULongLong();
@ -26,14 +26,14 @@ void FolderInfoController::service(HttpRequest& request, HttpResponse& response)
for(QList<LibraryItem *>::const_iterator itr = folderContent.constBegin();itr!=folderContent.constEnd();itr++)
{
currentFolder = (Folder *)(*itr);
response.writeText(QString("/library/%1/folder/%2/info\n").arg(libraryName).arg(currentFolder->id));
response.writeText(QString("/library/%1/folder/%2/info\n").arg(QString(QUrl::toPercentEncoding(libraryName))).arg(currentFolder->id));
}
ComicDB * currentComic;
for(QList<LibraryItem *>::const_iterator itr = folderComics.constBegin();itr!=folderComics.constEnd();itr++)
{
currentComic = (ComicDB *)(*itr);
response.writeText(QString("/library/%1/comic/%2\n").arg(libraryName).arg(currentComic->id));
response.writeText(QString("/library/%1/comic/%2\n").arg(QString(QUrl::toPercentEncoding(libraryName))).arg(currentComic->id));
}
}

View File

@ -13,21 +13,28 @@ void LibrariesController::service(HttpRequest& request, HttpResponse& response)
response.setHeader("Content-Type", "text/html; charset=ISO-8859-1");
HttpSession session=Static::sessionStore->getSession(request,response);
session.set("xxx","yyy");
session.set("ySession","ok");
QString postData = QString::fromUtf8(request.getBody());
response.writeText(postData);
QList<QString> data = postData.split("\n");
session.setDeviceType(data.at(0).split(":").at(1));
session.setDisplayType(data.at(1).split(":").at(1));
QList<QString> comics = data.at(2).split(":").at(1).split("\t");
foreach(QString hash,comics)
if(data.length() > 2)
{
session.setComicOnDevice(hash);
session.setDeviceType(data.at(0).split(":").at(1));
session.setDisplayType(data.at(1).split(":").at(1));
QList<QString> comics = data.at(2).split(":").at(1).split("\t");
foreach(QString hash,comics)
{
session.setComicOnDevice(hash);
}
}
else //valores por defecto, con propositos de depuraci<63>n
{
session.setDeviceType("iphone");
session.setDisplayType("retina");
}
Template t=Static::templateLoader->getTemplate("libraries",request.getHeader("Accept-Language"));
Template t=Static::templateLoader->getTemplate("libraries_"+session.getDeviceType(),request.getHeader("Accept-Language"));
t.enableWarnings();
QMap<QString,QString> libraries = mw->getLibraries();
@ -36,7 +43,7 @@ void LibrariesController::service(HttpRequest& request, HttpResponse& response)
t.loop("library",names.length());
int i=0;
while (i<names.length()) {
t.setVariable(QString("library%1.name").arg(i),names.at(i));
t.setVariable(QString("library%1.name").arg(i),QUrl::toPercentEncoding(names.at(i)));
t.setVariable(QString("library%1.label").arg(i),names.at(i));
i++;
}

View File

@ -13,7 +13,8 @@ void PageController::service(HttpRequest& request, HttpResponse& response)
{
HttpSession session=Static::sessionStore->getSession(request,response);
QStringList pathElements = ((QString)request.getPath()).split('/');
QString path = QUrl::fromPercentEncoding(request.getPath()).toLatin1();
QStringList pathElements = path.split('/');
QString libraryName = pathElements.at(2);
qulonglong comicId = pathElements.at(4).toULongLong();
unsigned int page = pathElements.at(6).toUInt();