--- /dev/null
+/*
+ * Copyright (c) 2009 Eetu Lehmusvuo.
+ *
+ * This file is part of QtMAds.
+ *
+ * QtMAds is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * QtMAds 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 Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with QtMAds. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#include "SOMA_serviceplugin.h"
+
+#include <QDebug>
+#include <QXmlStreamReader>
+#include <QFile>
+
+#include "../qtmadsservice.h"
+#include "../qtmadsadwidget.h"
+
+SomaServicePlugin::SomaServicePlugin()
+{
+}
+
+SomaServicePlugin::~SomaServicePlugin()
+{
+}
+
+
+bool SomaServicePlugin::parseUrlParameters(
+ const QHash<QString, QVariant> &dynamicParameters, QList<QPair<QString,QString> > &parsedParameters)
+{
+ qDebug() << "QtmadsService::parseUrlParameters()";
+ QHash<QString, QString>::iterator iter = parameterTags.begin();
+ QString tag;
+ QString serviceTag;
+ QString value;
+ // go through all parameters
+ while (iter != parameterTags.end()){
+ tag.append(iter.key());
+ serviceTag.append(iter.value());
+
+ // add dynamic parameters
+ if(dynamicParameters.contains(tag)){
+ value.append(dynamicParameters.value(tag).toString());
+ if(0 == tag.compare(TAG_ADTYPE)){
+ this->reqAdType = this->getAdTypeFromString(value);
+ if(this->reqAdType == txtAd){
+ qDebug() << "txtAd";
+ }
+ }
+ }
+
+ // add service parameter
+ if(0 == tag.compare(TAG_ACCOUNTID)){
+ value.append(this->accountId);
+ }else if(0 == tag.compare(TAG_PASSWORD)){
+ value.append(this->password);
+
+ // add default ad parameters
+ }else if(0 == tag.compare(TAG_ADTYPE)){
+ if(value.isEmpty()){
+ value.append(this->getStringFromAdType(this->defAdType));
+ this->reqAdType = this->defAdType;
+ }
+ }else if(0 == tag.compare(TAG_TRANSACTIONID)){
+ if(value.isEmpty())
+ value.append(this->transactionId);
+
+ }else if(0 == tag.compare(TAG_LANGUAGE)){
+ if(value.isEmpty())
+ value.append(this->language);
+ }
+
+ //qDebug() << "tag: " << serviceTag << " value: " << value;
+ parsedParameters.append(QPair<QString,QString>(serviceTag,value));
+ tag.clear();
+ serviceTag.clear();
+ value.clear();
+ iter++;
+ }
+
+ /* userid
+ reqParameters.append(QPair<QString,QString>("accountid","1"));
+
+ reqParameters.append(QPair<QString,QString>("password","Testi1Test2"));
+ reqParameters.append(QPair<QString,QString>("transactionid","10:20:00:1"));
+ QHash<QString, QVariant>::const_iterator iter = dynamicParameters.constFind("adtype");
+ reqParameters.append(QPair<QString,QString>("messagetype", iter.value().toString()));
+ reqParameters.append(QPair<QString,QString>("transactionid","10:20:00:1"));
+ reqParameters.append(QPair<QString,QString>("language","en"));*/
+}
+
+
+bool SomaServicePlugin::parseReceivedAd(const QByteArray &response, QHash<QString, QVariant> &parsedAd)
+{
+ qDebug() << "parseReceivedAd()";
+ if(this->reqAdType == txtAd){
+ parsedAd.insert(TAG_ADTYPE, QVariant(this->getStringFromAdType(txtAd)));
+ parsedAd.insert(TAG_TEXT, QVariant((QString)response));
+ }else if(this->reqAdType == imageAd){
+ parsedAd.insert(TAG_ADTYPE, QVariant(this->getStringFromAdType(imageAd)));
+ parsedAd.insert(TAG_CONTENT_URL, QVariant((QString)response));
+ }else if(this->reqAdType == imageBannerAd){
+ parsedAd.insert(TAG_ADTYPE, QVariant(this->getStringFromAdType(imageBannerAd)));
+ parsedAd.insert(TAG_HTML, QVariant((QString)response));
+ }else if(this->reqAdType == txtBannerAd){
+ parsedAd.insert(TAG_ADTYPE, QVariant(this->getStringFromAdType(txtBannerAd)));
+ parsedAd.insert(TAG_HTML, QVariant((QString)response));
+ }else if(this->reqAdType == audioAd){
+ parsedAd.insert(TAG_ADTYPE, QVariant(this->getStringFromAdType(audioAd)));
+ parsedAd.insert(TAG_CONTENT_URL, QVariant((QString)response));
+ }else if(this->reqAdType == videoAd){
+ parsedAd.insert(TAG_ADTYPE, QVariant(this->getStringFromAdType(videoAd)));
+ parsedAd.insert(TAG_CONTENT_URL, QVariant((QString)response));
+ }else{
+ qDebug() << "Parse for ad type not found";
+ }
+}
+
+AdType SomaServicePlugin::getAdTypeFromString(QString adStr)
+{
+ AdType adType = anyAd;
+
+ if(0 == adStr.compare("txt")){
+ adType = txtAd;
+ }else if(0 == adStr.compare("picturead")){
+ adType = imageAd;
+ }else if(0 == adStr.compare("mobwebtext")){
+ adType = txtBannerAd;
+ }else if(0 == adStr.compare("mobwebbanner")){
+ adType = imageBannerAd;
+ }else if(0 == adStr.compare("audioad")){
+ adType = audioAd;
+ }else if(0 == adStr.compare("videoad")){
+ adType = videoAd;
+ }
+ return adType;
+}
+
+QString SomaServicePlugin::getStringFromAdType(AdType adType)
+{
+ QString adStr;
+ switch(adType){
+ default:
+ case anyAd:
+ adStr.append("anyAd");
+ break;
+ case txtAd:
+ adStr.append("txt");
+ break;
+ case imageAd:
+ adStr.append("picturead");
+ break;
+ case txtBannerAd:
+ adStr.append("mobwebtext");
+ break;
+ case imageBannerAd:
+ adStr.append("mobwebbanner");
+ break;
+ case audioAd:
+ adStr.append("audioad");
+ break;
+ case videoAd:
+ adStr.append("videoad");
+ break;
+ }
+ return adStr;
+}