diff options
| author | 2019-02-12 23:59:24 +0100 | |
|---|---|---|
| committer | 2019-02-12 23:59:24 +0100 | |
| commit | f2051fb35b1ad49c4d940e6fbba2acc98b216e13 (patch) | |
| tree | 03117f493191d35104ac37eba72e916d41c849f2 /webserver | |
| parent | 210a222b894caa3c8af38ccb6653db0fd8491f6e (diff) | |
| download | OneRoll-f2051fb35b1ad49c4d940e6fbba2acc98b216e13.tar.gz OneRoll-f2051fb35b1ad49c4d940e6fbba2acc98b216e13.zip | |
clang format
Diffstat (limited to 'webserver')
| -rw-r--r-- | webserver/diceserver.cpp | 205 | ||||
| -rw-r--r-- | webserver/diceserver.h | 9 | ||||
| -rw-r--r-- | webserver/main.cpp | 38 |
3 files changed, 125 insertions, 127 deletions
diff --git a/webserver/diceserver.cpp b/webserver/diceserver.cpp index c1e1ca0..a3f094d 100644 --- a/webserver/diceserver.cpp +++ b/webserver/diceserver.cpp @@ -1,52 +1,49 @@ #include "diceserver.h" +#include "qhttp/src/qhttpfwd.hpp" #include "qhttp/src/qhttpserver.hpp" #include "qhttp/src/qhttpserverrequest.hpp" #include "qhttp/src/qhttpserverresponse.hpp" -#include "qhttp/src/qhttpfwd.hpp" #include <QHostAddress> #include <QUrl> -DiceServer::DiceServer(int port) - : QObject(),m_diceParser(new DiceParser()) +DiceServer::DiceServer(int port) : QObject(), m_diceParser(new DiceParser()) { - - m_diceParser->setPathToHelp("<span><a href=\"https://github.com/Rolisteam/DiceParser/blob/master/HelpMe.md\">Documentation</a>"); - // using namespace ; - m_server = new qhttp::server::QHttpServer(this); + m_diceParser->setPathToHelp( + "<span><a href=\"https://github.com/Rolisteam/DiceParser/blob/master/HelpMe.md\">Documentation</a>"); + // using namespace ; + m_server= new qhttp::server::QHttpServer(this); m_server->listen( // listening on 0.0.0.0:8080 - QHostAddress::Any, port, - [=](qhttp::server::QHttpRequest* req, qhttp::server::QHttpResponse* res) + QHostAddress::Any, port, [=](qhttp::server::QHttpRequest* req, qhttp::server::QHttpResponse* res) { + req->collectData(1024); + + // qhttp::THeaderHash hash = req->headers(); + // qDebug() << hash << res->headers() << qhttp::Stringify::toString(req->method()) << + // qPrintable(req->url().toString()) << req->collectedData().constData(); + QString getArg= req->url().toString(); + getArg= getArg.replace("/?", ""); + QStringList args= getArg.split('&'); + QHash<QString, QString> m_hashArgs; + for(auto argument : args) { - req->collectData(1024); - - // qhttp::THeaderHash hash = req->headers(); - // qDebug() << hash << res->headers() << qhttp::Stringify::toString(req->method()) << qPrintable(req->url().toString()) << req->collectedData().constData(); - QString getArg = req->url().toString(); - getArg=getArg.replace("/?",""); - QStringList args = getArg.split('&'); - QHash<QString,QString> m_hashArgs ; - for( auto argument : args) + QStringList keyValue= argument.split('='); + if(keyValue.size() == 2) { - QStringList keyValue = argument.split('='); - if(keyValue.size()==2) - { - m_hashArgs.insert(keyValue[0],keyValue[1]); - } + m_hashArgs.insert(keyValue[0], keyValue[1]); } + } - if(m_hashArgs.contains("cmd")) - { - qDebug() << QUrl::fromPercentEncoding(m_hashArgs["cmd"].toLocal8Bit()); - QString result = startDiceParsing(QUrl::fromPercentEncoding(m_hashArgs["cmd"].toLocal8Bit())); - qDebug() << result; - - res->setStatusCode(qhttp::ESTATUS_OK); - res->addHeader("Access-Control-Allow-Origin", "*"); - res->addHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS"); - res->addHeader("Access-Control-Allow-Headers", "x-requested-with"); + if(m_hashArgs.contains("cmd")) + { + qDebug() << QUrl::fromPercentEncoding(m_hashArgs["cmd"].toLocal8Bit()); + QString result= startDiceParsing(QUrl::fromPercentEncoding(m_hashArgs["cmd"].toLocal8Bit())); + qDebug() << result; + res->setStatusCode(qhttp::ESTATUS_OK); + res->addHeader("Access-Control-Allow-Origin", "*"); + res->addHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS"); + res->addHeader("Access-Control-Allow-Headers", "x-requested-with"); - QString html("<!doctype html>\n" + QString html("<!doctype html>\n" "<html>\n" "<head>\n" " <meta charset=\"utf-8\">\n" @@ -58,30 +55,29 @@ DiceServer::DiceServer(int port) "</body>\n" "</html>\n"); - res->end(html.arg(result).toLocal8Bit()); - } - else - { - res->setStatusCode(qhttp::ESTATUS_OK); - res->end("No Command found!\n"); - } - + res->end(html.arg(result).toLocal8Bit()); + } + else + { + res->setStatusCode(qhttp::ESTATUS_OK); + res->end("No Command found!\n"); + } }); - if ( !m_server->isListening() ) { - qDebug() << "failed to listen"; - - } + if(!m_server->isListening()) + { + qDebug() << "failed to listen"; + } else { - qDebug()<< "Server is On!!"; + qDebug() << "Server is On!!"; } } DiceServer::~DiceServer() { - qDebug()<< "destructor"; + qDebug() << "destructor"; } -QString DiceServer::diceToText(ExportedDiceResult& dice,bool highlight,bool homogeneous) +QString DiceServer::diceToText(ExportedDiceResult& dice, bool highlight, bool homogeneous) { QStringList resultGlobal; foreach(int face, dice.keys()) @@ -89,43 +85,42 @@ QString DiceServer::diceToText(ExportedDiceResult& dice,bool highlight,bool homo QStringList result; QStringList currentStreak; QList<QStringList> allStreakList; - ListDiceResult diceResult = dice.value(face); - bool previousHighlight=false; + ListDiceResult diceResult= dice.value(face); + bool previousHighlight= false; QString previousColor; QString patternColor("<span class=\"dice\">"); - foreach (HighLightDice tmp, diceResult) + foreach(HighLightDice tmp, diceResult) { if(previousColor != tmp.getColor()) { if(!currentStreak.isEmpty()) { QStringList list; - list << patternColor+currentStreak.join(',')+"</span>"; + list << patternColor + currentStreak.join(',') + "</span>"; allStreakList.append(list); currentStreak.clear(); } if(tmp.getColor().isEmpty()) { - patternColor = QStringLiteral("<span class=\"dice\">"); + patternColor= QStringLiteral("<span class=\"dice\">"); } else { - patternColor = QStringLiteral("<span style=\"color:%1;font-weight:bold\">").arg(tmp.getColor()); + patternColor= QStringLiteral("<span style=\"color:%1;font-weight:bold\">").arg(tmp.getColor()); } } QStringList diceListStr; - if((previousHighlight)&&(!tmp.isHighlighted())) + if((previousHighlight) && (!tmp.isHighlighted())) { if(!currentStreak.isEmpty()) { QStringList list; - list << patternColor+currentStreak.join(',')+"</span>"; + list << patternColor + currentStreak.join(',') + "</span>"; allStreakList.append(list); currentStreak.clear(); } - } - else if((!previousHighlight)&&(tmp.isHighlighted())) + else if((!previousHighlight) && (tmp.isHighlighted())) { if(!currentStreak.isEmpty()) { @@ -135,17 +130,17 @@ QString DiceServer::diceToText(ExportedDiceResult& dice,bool highlight,bool homo currentStreak.clear(); } } - previousHighlight = tmp.isHighlighted(); - previousColor = tmp.getColor(); - for(int i =0; i < tmp.getResult().size(); ++i) + previousHighlight= tmp.isHighlighted(); + previousColor= tmp.getColor(); + for(int i= 0; i < tmp.getResult().size(); ++i) { - qint64 dievalue = tmp.getResult()[i]; + qint64 dievalue= tmp.getResult()[i]; diceListStr << QString::number(dievalue); } - if(diceListStr.size()>1) + if(diceListStr.size() > 1) { - QString first = diceListStr.takeFirst(); - first = QString("%1 [%2]").arg(first).arg(diceListStr.join(',')); + QString first= diceListStr.takeFirst(); + first= QString("%1 [%2]").arg(first).arg(diceListStr.join(',')); diceListStr.clear(); diceListStr << first; } @@ -155,7 +150,7 @@ QString DiceServer::diceToText(ExportedDiceResult& dice,bool highlight,bool homo if(previousHighlight) { QStringList list; - list << patternColor+currentStreak.join(',')+"</span>"; + list << patternColor + currentStreak.join(',') + "</span>"; allStreakList.append(list); } else @@ -171,7 +166,7 @@ QString DiceServer::diceToText(ExportedDiceResult& dice,bool highlight,bool homo { result << a; } - if(dice.keys().size()>1) + if(dice.keys().size() > 1) { resultGlobal << QString(" d%2:(%1)").arg(result.join(",")).arg(face); } @@ -186,53 +181,57 @@ QString DiceServer::diceToText(ExportedDiceResult& dice,bool highlight,bool homo QString DiceServer::startDiceParsing(QString cmd) { QString result(""); - bool highlight = true; + bool highlight= true; if(m_diceParser->parseLine(cmd)) { - m_diceParser->Start(); - if(!m_diceParser->getErrorMap().isEmpty()) + m_diceParser->Start(); + if(!m_diceParser->getErrorMap().isEmpty()) + { + result+= "<span style=\"color: #FF0000\">Error:</span>" + m_diceParser->humanReadableError() + "<br/>"; + } + else + { + ExportedDiceResult list; + bool homogeneous= true; + m_diceParser->getLastDiceResult(list, homogeneous); + QString diceText= diceToText(list, highlight, homogeneous); + QString scalarText; + QString str; + + if(m_diceParser->hasIntegerResultNotInFirst()) + { + scalarText= QString("%1").arg(m_diceParser->getLastIntegerResult()); + } + else if(!list.isEmpty()) + { + scalarText= QString("%1").arg(m_diceParser->getSumOfDiceResult()); + } + if(highlight) { - result += "<span style=\"color: #FF0000\">Error:</span>" + m_diceParser->humanReadableError() + "<br/>"; + str= QString("Result: <span class=\"dice\">%1</span>, details:[%3 (%2)]") + .arg(scalarText) + .arg(diceText) + .arg(m_diceParser->getDiceCommand()); } else { + str= QString("Result: %1, details:[%3 (%2)]") + .arg(scalarText) + .arg(diceText) + .arg(m_diceParser->getDiceCommand()); + } - ExportedDiceResult list; - bool homogeneous = true; - m_diceParser->getLastDiceResult(list,homogeneous); - QString diceText = diceToText(list,highlight,homogeneous); - QString scalarText; - QString str; - - if(m_diceParser->hasIntegerResultNotInFirst()) - { - scalarText = QString("%1").arg(m_diceParser->getLastIntegerResult()); - } - else if(!list.isEmpty()) - { - scalarText = QString("%1").arg(m_diceParser->getSumOfDiceResult()); - } - if(highlight) - { - str = QString("Result: <span class=\"dice\">%1</span>, details:[%3 (%2)]").arg(scalarText).arg(diceText).arg(m_diceParser->getDiceCommand()); - } - else - { - str = QString("Result: %1, details:[%3 (%2)]").arg(scalarText).arg(diceText).arg(m_diceParser->getDiceCommand()); - } - - if(m_diceParser->hasStringResult()) - { - str = m_diceParser->getStringResult(); - } - result += str + "<br/>"; + if(m_diceParser->hasStringResult()) + { + str= m_diceParser->getStringResult(); } + result+= str + "<br/>"; + } } else { - result += "<span style=\"color: #00FF00\">Error:</span>" + m_diceParser->humanReadableError() + "<br/>"; + result+= "<span style=\"color: #00FF00\">Error:</span>" + m_diceParser->humanReadableError() + "<br/>"; } - return result; } diff --git a/webserver/diceserver.h b/webserver/diceserver.h index 330b71a..fa32814 100644 --- a/webserver/diceserver.h +++ b/webserver/diceserver.h @@ -1,18 +1,17 @@ -#include <QObject> #include "diceparser.h" #include "qhttp/src/qhttpserver.hpp" - +#include <QObject> class DiceServer : public QObject { Q_OBJECT public: - DiceServer(int port = 8085); + DiceServer(int port= 8085); virtual ~DiceServer(); - QString startDiceParsing(QString cmd); - QString diceToText(ExportedDiceResult &dice, bool highlight, bool homogeneous); + QString diceToText(ExportedDiceResult& dice, bool highlight, bool homogeneous); + private: DiceParser* m_diceParser; qhttp::server::QHttpServer* m_server; diff --git a/webserver/main.cpp b/webserver/main.cpp index 10952f1..664a026 100644 --- a/webserver/main.cpp +++ b/webserver/main.cpp @@ -1,29 +1,29 @@ /*************************************************************************** - * Copyright (C) 2016 by Renaud Guezennec * - * http://www.rolisteam.org/contact * - * * - * rolisteam is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ + * Copyright (C) 2016 by Renaud Guezennec * + * http://www.rolisteam.org/contact * + * * + * rolisteam is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ #include <QCoreApplication> #include "diceparser.h" #include "diceserver.h" -int main(int argc, char *argv[]) +int main(int argc, char* argv[]) { QCoreApplication app(argc, argv); |