File indexing completed on 2024-04-28 03:50:26

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2008 Shashank Singh <shashank.personal@gmail.com>
0004 //
0005 
0006 #include "jsonparser.h"
0007 
0008 jsonParser::jsonParser()
0009 {
0010   myEngine.setProcessEventsInterval(10);//this lets the gui remain responsive
0011 }
0012 
0013 jsonParser::~jsonParser()
0014 {
0015 }
0016 
0017 twitterDataStructure jsonParser::parseObjectOnPosition(const QString &content , int requiredObjectPosition)
0018 {
0019     return dataStorage;
0020 }
0021 
0022 QList <twitterDataStructure> jsonParser::parseAllObjects(const QString &content , int numberOfObjects)
0023 {
0024     QString temp = QLatin1String("var myJSONObject =  { \"twitter\":") + content + QLatin1Char('}');
0025     int iterator = 0;//the count starts fom one
0026     if (temp != QLatin1String("Twitter is down for database maintenance. It will return in about 30 minutes"))
0027     {
0028     myEngine.evaluate(QString("function userName(k){return myJSONObject.twitter[k].user.name};"));
0029     myEngine.evaluate(QString("function userLocation(k){return myJSONObject.twitter[k].user.location};"));
0030     myEngine.evaluate(QString("function userText(k){return myJSONObject.twitter[k].text};"));
0031 
0032     myEngine.evaluate(temp);
0033     while ((iterator) < numberOfObjects) {
0034     myEngine.evaluate(QString("var a ="+QString::number(iterator) )).toString();
0035         dataStorage.user=myEngine.evaluate(QString("userName(a)")).toString();
0036     dataStorage.location=myEngine.evaluate(QString("userLocation(a)")).toString();
0037     dataStorage.text=myEngine.evaluate(QString("userText(a)")).toString();
0038         
0039     parsedJsonOutput.insert(iterator , dataStorage);
0040 
0041         ++iterator;
0042       }
0043     }
0044    else 
0045     {
0046 //twitter is down :(
0047       dataStorage.user="@Twitter Plugin";
0048       dataStorage.location="Equator";
0049       dataStorage.text="Twitter is down , Please try in 30 minutes " ;
0050       parsedJsonOutput<<dataStorage;
0051 
0052     }
0053    return parsedJsonOutput;
0054 }
0055 
0056 googleMapDataStructure jsonParser::geoCodingAPIparseObject(QString content)
0057 {
0058     mDebug() << "in geoCodingAPIparseObject";
0059     QString temp = QLatin1String("var myJSONObject = ") + content;
0060 
0061     googleMapDataStructure returnStructure;
0062     myEngine.evaluate("function lat(){return myJSONObject.Placemark[0].Point.coordinates[0]}");
0063     myEngine.evaluate("function lon(){return myJSONObject.Placemark[0].Point.coordinates[1]}");
0064     myEngine.evaluate(temp);
0065 
0066     returnStructure.lon = myEngine.evaluate("lon()").toNumber();
0067     returnStructure.lat = myEngine.evaluate("lat()").toNumber();
0068     mDebug() << "twitter lan lon text=" << returnStructure.lat << returnStructure.lon;
0069     return returnStructure;
0070 }
0071 
0072