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 "ADHERE_serviceplugin.h"
24 #include <QXmlStreamReader>
27 #include "../qtmadsservice.h"
28 #include "../qtmadsadwidget.h"
30 AdhereServicePlugin::AdhereServicePlugin()
34 AdhereServicePlugin::~AdhereServicePlugin()
39 bool AdhereServicePlugin::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);
67 }else if(0 == tag.compare(TAG_PASSWORD)){
68 value.append(this->password);
70 // add default ad parameters
71 }else if(0 == tag.compare(TAG_ADTYPE)){
73 value.append(this->getStringFromAdType(this->defAdType));
74 this->reqAdType = this->defAdType;
76 }else if(0 == tag.compare(TAG_TRANSACTIONID)){
78 value.append(this->transactionId);
80 }else if(0 == tag.compare(TAG_LANGUAGE)){
82 value.append(this->language);
85 //qDebug() << "tag: " << serviceTag << " value: " << value;
86 parsedParameters.append(QPair<QString,QString>(serviceTag,value));
94 reqParameters.append(QPair<QString,QString>("accountid","1"));
96 reqParameters.append(QPair<QString,QString>("password","Testi1Test2"));
97 reqParameters.append(QPair<QString,QString>("transactionid","10:20:00:1"));
98 QHash<QString, QVariant>::const_iterator iter = dynamicParameters.constFind("adtype");
99 reqParameters.append(QPair<QString,QString>("messagetype", iter.value().toString()));
100 reqParameters.append(QPair<QString,QString>("transactionid","10:20:00:1"));
101 reqParameters.append(QPair<QString,QString>("language","en"));*/
105 bool AdhereServicePlugin::parseReceivedAd(const QByteArray &response, QHash<QString, QVariant> &parsedAd)
107 qDebug() << "parseReceivedAd(): " << this->reqAdType;
108 if(this->reqAdType == txtAd){
109 parsedAd.insert(TAG_ADTYPE, QVariant(this->getStringFromAdType(txtAd)));
110 parsedAd.insert(TAG_TEXT, QVariant((QString)response));
111 }else if(this->reqAdType == imageAd){
112 parsedAd.insert(TAG_ADTYPE, QVariant(this->getStringFromAdType(imageAd)));
113 parsedAd.insert(TAG_CONTENT_URL, QVariant((QString)response));
114 }else if(this->reqAdType == imageBannerAd){
115 parsedAd.insert(TAG_ADTYPE, QVariant(this->getStringFromAdType(imageBannerAd)));
116 parsedAd.insert(TAG_HTML, QVariant((QString)response));
117 }else if(this->reqAdType == txtBannerAd){
118 parsedAd.insert(TAG_ADTYPE, QVariant(this->getStringFromAdType(txtBannerAd)));
119 parsedAd.insert(TAG_HTML, QVariant((QString)response));
120 }else if(this->reqAdType == audioAd){
121 parsedAd.insert(TAG_ADTYPE, QVariant(this->getStringFromAdType(audioAd)));
122 parsedAd.insert(TAG_CONTENT_URL, QVariant((QString)response));
123 }else if(this->reqAdType == videoAd){
124 parsedAd.insert(TAG_ADTYPE, QVariant(this->getStringFromAdType(videoAd)));
125 parsedAd.insert(TAG_CONTENT_URL, QVariant((QString)response));
127 qDebug() << "Parse for ad type not found";
131 AdType AdhereServicePlugin::getAdTypeFromString(QString adStr)
133 AdType adType = anyAd;
135 if(0 == adStr.compare("txt")){
137 }else if(0 == adStr.compare("picturead")){
139 }else if(0 == adStr.compare("mobwebtext")){
140 adType = txtBannerAd;
141 }else if(0 == adStr.compare("mobwebbanner")){
142 adType = imageBannerAd;
143 }else if(0 == adStr.compare("audioad")){
145 }else if(0 == adStr.compare("videoad")){
151 QString AdhereServicePlugin::getStringFromAdType(AdType adType)
157 adStr.append("anyAd");
163 adStr.append("picturead");
166 adStr.append("mobwebtext");
169 adStr.append("mobwebbanner");
172 adStr.append("audioad");
175 adStr.append("videoad");