2 * Copyright (c) 2009 Eetu Lehmusvuo.
4 * This file is part of QtMAds.
6 * QtMAds is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU Lesser General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
11 * QtMAds is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public License
17 * along with QtMAds. If not, see <http://www.gnu.org/licenses/>.
21 #include "SOMA_serviceplugin.h"
24 #include <QXmlStreamReader>
27 #include "../qtmadsservice.h"
28 #include "../qtmadsadwidget.h"
30 SomaServicePlugin::SomaServicePlugin()
34 SomaServicePlugin::~SomaServicePlugin()
39 bool SomaServicePlugin::parseUrlParameters(
40 const QHash<QString, QVariant> &dynamicParameters, QList<QPair<QString,QString> > &parsedParameters)
42 qDebug() << "QtmadsService::parseUrlParameters()";
43 QHash<QString, QString>::iterator iter = parameterTags.begin();
47 // go through all parameters
48 while (iter != parameterTags.end()){
49 tag.append(iter.key());
50 serviceTag.append(iter.value());
52 // add dynamic parameters
53 if(dynamicParameters.contains(tag)){
54 value.append(dynamicParameters.value(tag).toString());
55 if(0 == tag.compare(TAG_ADTYPE)){
56 this->reqAdType = this->getAdTypeFromString(value);
57 if(this->reqAdType == txtAd){
63 // add service parameter
64 if(0 == tag.compare(TAG_ACCOUNTID)){
65 value.append(this->accountId);
66 }else if(0 == tag.compare(TAG_PASSWORD)){
67 value.append(this->password);
69 // add default ad parameters
70 }else if(0 == tag.compare(TAG_ADTYPE)){
72 value.append(this->getStringFromAdType(this->defAdType));
73 this->reqAdType = this->defAdType;
75 }else if(0 == tag.compare(TAG_TRANSACTIONID)){
77 value.append(this->transactionId);
79 }else if(0 == tag.compare(TAG_LANGUAGE)){
81 value.append(this->language);
84 //qDebug() << "tag: " << serviceTag << " value: " << value;
85 parsedParameters.append(QPair<QString,QString>(serviceTag,value));
93 reqParameters.append(QPair<QString,QString>("accountid","1"));
95 reqParameters.append(QPair<QString,QString>("password","Testi1Test2"));
96 reqParameters.append(QPair<QString,QString>("transactionid","10:20:00:1"));
97 QHash<QString, QVariant>::const_iterator iter = dynamicParameters.constFind("adtype");
98 reqParameters.append(QPair<QString,QString>("messagetype", iter.value().toString()));
99 reqParameters.append(QPair<QString,QString>("transactionid","10:20:00:1"));
100 reqParameters.append(QPair<QString,QString>("language","en"));*/
104 bool SomaServicePlugin::parseReceivedAd(const QByteArray &response, QHash<QString, QVariant> &parsedAd)
106 qDebug() << "parseReceivedAd()";
107 if(this->reqAdType == txtAd){
108 parsedAd.insert(TAG_ADTYPE, QVariant(this->getStringFromAdType(txtAd)));
109 parsedAd.insert(TAG_TEXT, QVariant((QString)response));
110 }else if(this->reqAdType == imageAd){
111 parsedAd.insert(TAG_ADTYPE, QVariant(this->getStringFromAdType(imageAd)));
112 parsedAd.insert(TAG_CONTENT_URL, QVariant((QString)response));
113 }else if(this->reqAdType == imageBannerAd){
114 parsedAd.insert(TAG_ADTYPE, QVariant(this->getStringFromAdType(imageBannerAd)));
115 parsedAd.insert(TAG_HTML, QVariant((QString)response));
116 }else if(this->reqAdType == txtBannerAd){
117 parsedAd.insert(TAG_ADTYPE, QVariant(this->getStringFromAdType(txtBannerAd)));
118 parsedAd.insert(TAG_HTML, QVariant((QString)response));
119 }else if(this->reqAdType == audioAd){
120 parsedAd.insert(TAG_ADTYPE, QVariant(this->getStringFromAdType(audioAd)));
121 parsedAd.insert(TAG_CONTENT_URL, QVariant((QString)response));
122 }else if(this->reqAdType == videoAd){
123 parsedAd.insert(TAG_ADTYPE, QVariant(this->getStringFromAdType(videoAd)));
124 parsedAd.insert(TAG_CONTENT_URL, QVariant((QString)response));
126 qDebug() << "Parse for ad type not found";
130 AdType SomaServicePlugin::getAdTypeFromString(QString adStr)
132 AdType adType = anyAd;
134 if(0 == adStr.compare("txt")){
136 }else if(0 == adStr.compare("picturead")){
138 }else if(0 == adStr.compare("mobwebtext")){
139 adType = txtBannerAd;
140 }else if(0 == adStr.compare("mobwebbanner")){
141 adType = imageBannerAd;
142 }else if(0 == adStr.compare("audioad")){
144 }else if(0 == adStr.compare("videoad")){
150 QString SomaServicePlugin::getStringFromAdType(AdType adType)
156 adStr.append("anyAd");
162 adStr.append("picturead");
165 adStr.append("mobwebtext");
168 adStr.append("mobwebbanner");
171 adStr.append("audioad");
174 adStr.append("videoad");