void ConsoleSessionManager::onOpenConsoleSessionFinished(Invocation* invocation)
{
    RESTInvocation* inv = qobject_cast<RESTInvocation*>(invocation);
    if (!inv) {
        ERROR("Failed to cast to RESTInvocation");
        invocation->deleteLater();
        return;
    }

    // console might have responded an http error
    if (inv->responseHttpStatusCode() != HTTPInvocationDefinition::OK_200)
    {
        emit consoleSessionOpenFailed(QString("HTTP Status Code:").append(inv->responseHttpStatusCode()));
        return;
    }

    // or error data
    QJsonDocument jsondoc(QJsonDocument::fromJson(inv->responseString().toLatin1()));
    QJsonObject json = jsondoc.object();

    if (json.contains("response_type") && json["response_type"] == "error")
    {
        QString errMsg = json["error_message"].toString();
        emit consoleSessionOpenFailed(QString("Console responded:") + errMsg);
    }

    if (json.contains("response_type") && json["response_type"] == "ok")
    {
        QString token = json["token"].toString(); // TODO: validation of this
        openWebsocket(token);
    }

    inv->deleteLater();
}
Пример #2
0
void HeadData::fromJson(const QJsonObject& json) {
    if (json.contains(JSON_AVATAR_HEAD_BLENDSHAPE_COEFFICIENTS)) {
        auto jsonValue = json[JSON_AVATAR_HEAD_BLENDSHAPE_COEFFICIENTS];
        if (jsonValue.isArray()) {
            QVector<float> blendshapeCoefficients;
            QJsonArray blendshapeCoefficientsJson = jsonValue.toArray();
            for (const auto& blendshapeCoefficient : blendshapeCoefficientsJson) {
                blendshapeCoefficients.push_back((float)blendshapeCoefficient.toDouble());
            }
            setBlendshapeCoefficients(blendshapeCoefficients);
        } else if (jsonValue.isObject()) {
            QJsonObject blendshapeCoefficientsJson = jsonValue.toObject();
            for (const QString& name : blendshapeCoefficientsJson.keys()) {
                float value = (float)blendshapeCoefficientsJson[name].toDouble();
                setBlendshape(name, value);
            }
        } else {
            qWarning() << "Unable to deserialize head json: " << jsonValue;
        }
    }

    if (json.contains(JSON_AVATAR_HEAD_LOOKAT)) {
        auto relativeLookAt = vec3FromJsonValue(json[JSON_AVATAR_HEAD_LOOKAT]);
        if (glm::length2(relativeLookAt) > 0.01f) {
            setLookAtPosition((_owningAvatar->getOrientation() * relativeLookAt) + _owningAvatar->getPosition());
        }
    }

    if (json.contains(JSON_AVATAR_HEAD_ROTATION)) {
        setHeadOrientation(quatFromJsonValue(json[JSON_AVATAR_HEAD_ROTATION]));
    }
}
Пример #3
0
bool VDirectoryTree::pasteAvailable() const
{
    QJsonObject obj = VUtils::clipboardToJson();
    if (obj.isEmpty()) {
        return false;
    }

    if (!obj.contains(ClipboardConfig::c_type)) {
        return false;
    }

    ClipboardOpType type = (ClipboardOpType)obj[ClipboardConfig::c_type].toInt();
    if (type != ClipboardOpType::CopyDir) {
        return false;
    }

    if (!obj.contains(ClipboardConfig::c_magic)
        || !obj.contains(ClipboardConfig::c_isCut)
        || !obj.contains(ClipboardConfig::c_dirs)) {
        return false;
    }

    int magic = obj[ClipboardConfig::c_magic].toInt();
    if (!checkMagic(magic)) {
        return false;
    }

    QJsonArray dirs = obj[ClipboardConfig::c_dirs].toArray();
    return !dirs.isEmpty();
}
Пример #4
0
void ReverseHashDServer::processTextMessage(QString message) {
    QWebSocket *pClient = qobject_cast<QWebSocket *>(sender());
    std::cout << QDateTime::currentDateTimeUtc().toString().toStdString() << " [WS] <<< " << message.toStdString() << "\n";


	QJsonDocument doc = QJsonDocument::fromJson(message.toUtf8());
	QJsonObject jsonData = doc.object();
	
	int id = 0;
	if(jsonData.contains("id")){
		id = jsonData["id"].toInt();
	}
	
	if(!jsonData.contains("cmd")){
		this->sendMessageError(pClient, "cmd", id, Error(400, "Invalid command format (Not found cmd)"));
		return;
	}

	QString cmd = jsonData["cmd"].toString();
		
	if(m_mapCmdHandlers.contains(cmd)){
		ICmdHandler *pCmdHandler = m_mapCmdHandlers[cmd];
		pCmdHandler->handle(pClient, this, jsonData);	
	}else{
		qDebug() << "Unknown command: " << cmd;
		this->sendMessageError(pClient, cmd, id, Error(404, "Unknown command"));
	}
	
}
Пример #5
0
bool autobots_toutiao::GetCode(const QByteArray& rp_data, QString& hash_code, QString& public_key)
{
  QJsonParseError json_error;
  QJsonDocument parse_doucment = QJsonDocument::fromJson(rp_data, &json_error); 
  if(json_error.error == QJsonParseError::NoError) 
  {  
    if(parse_doucment.isObject())  
    {  
      QJsonObject obj = parse_doucment.object(); 
      if(obj.contains("hash"))  
      {  
        QJsonValue name_value = obj.take("hash");
        if(name_value.isString())
        {
          hash_code = name_value.toString();
        }
      }
      if(obj.contains("key"))  
      {  
        QJsonValue name_value = obj.take("key");
        if(name_value.isString())
        {
          public_key = name_value.toString();
        }
      }
    }
  }

  if (!hash_code.isEmpty() && !public_key.isEmpty())
  {
    return true;
  }

  return false;
}
Пример #6
0
static QGeoAddress parseAddressObject(const QJsonObject &object)
{
    QGeoAddress address;
    address.setText(object.value(QStringLiteral("display_name")).toString());
    QJsonObject ao = object.value(QStringLiteral("address")).toObject();
    // setCountry
    address.setCountry(ao.value(QStringLiteral("country")).toString());
    // setCountryCode
    address.setCountryCode(ao.value(QStringLiteral("country_code")).toString());
    // setState
    address.setState(ao.value(QStringLiteral("state")).toString());
    // setCity
    if (ao.contains(QLatin1String("city")))
        address.setCity(ao.value(QStringLiteral("city")).toString());
    else if (ao.contains(QLatin1String("town")))
        address.setCity(ao.value(QLatin1String("town")).toString());
    else if (ao.contains(QLatin1String("village")))
        address.setCity(ao.value(QLatin1String("village")).toString());
    else
        address.setCity(ao.value(QLatin1String("hamlet")).toString());
    // setDistrict
    address.setDistrict(ao.value(QStringLiteral("suburb")).toString());
    // setPostalCode
    address.setPostalCode(ao.value(QStringLiteral("postcode")).toString());
    // setStreet
    address.setStreet(ao.value(QStringLiteral("road")).toString());
    return address;
}
Пример #7
0
VersionString extractOpenStudioVersion(const QVariant& variant) {
  QJsonObject topLevel = QJsonDocument::fromVariant(variant).object();
  if (topLevel.contains("metadata")) {
    topLevel = topLevel["metadata"].toObject();
  }
  
  OptionalVersionString version;
  if (topLevel.contains("openstudio_version")) {
    version = VersionString(topLevel["openstudio_version"].toString().toStdString());
  }
  else if (topLevel.contains("version")) {
    version = VersionString(topLevel["version"].toString().toStdString());
  }
  else {
    LOG_FREE_AND_THROW("openstudio.core.Json","No version identifier found in QJSON variant.");
  }
  OS_ASSERT(version);
  if (version.get() > VersionString(openStudioVersion())) {
    LOG_FREE(Warn,"openstudio.Json","Loading json file from version " << version
             << " with OpenStudio version " << VersionString(openStudioVersion())
             << ". OpenStudio json files are not designed to be forwards-compatible. "
             << "Unexpected behavior may result.")
  }

  return version.get();
}
bool CategoryParser::parse(const QString &fileName)
{
    m_exploreObject = QJsonObject();
    m_tree.clear();
    m_errorString.clear();

    QFile mappingFile(fileName);

    if (mappingFile.open(QIODevice::ReadOnly)) {
        QJsonDocument document = QJsonDocument::fromJson(mappingFile.readAll());
        if (document.isObject()) {
            QJsonObject docObject = document.object();
            if (docObject.contains(QLatin1String("offline_explore"))) {
                m_exploreObject = docObject.value(QLatin1String("offline_explore"))
                                                .toObject();
                if (m_exploreObject.contains(QLatin1String("ROOT"))) {
                    processCategory(0, QString());
                    return true;
                }
            } else {
                m_errorString = fileName + QLatin1String("does not contain the "
                                                       "offline_explore property");
                return false;
            }
        } else {
            m_errorString = fileName + QLatin1String("is not an json object");
            return false;
        }
    }
    m_errorString = QString::fromLatin1("Unable to open ") + fileName;
    return false;
}
Пример #9
0
/**
 * @brief Algorithm::initialize Loads the corresponding QJsonObject for this algorithm
 * @param loader The plugin loader which loads the QJsonObject
 * @return True, if all went well.
 */
bool Algorithm::initialize(QPluginLoader *loader) {
    //read the QJsonObject parameter
    if (!loader) return false;
    QJsonObject tmp = loader->metaData();
    if (tmp.isEmpty()) return false;
    QJsonValue v = tmp.value("MetaData");
    if (v.isUndefined()) return false;
    QJsonObject o = v.toObject();
    if (o.isEmpty()) return false;

    mId = "";
    mName = "";
    mDescription = "";

    QString version = "";
    if (o.contains("Author")) {}
    if (o.contains("Date")) {}
    if (o.contains("Name")) mName = o.value("Name").toString();
    else {} //LOG WARNING
    if (o.contains("Version")) version = o.value("Version").toString();
    else {} //LOG WARNING
    if (o.contains("Description")) mDescription = o.value("Description").toString();
    else {} //LOG WARNING
    mId = mName + " " + version;
    if (mId.trimmed() == "") {} //LOG WARNING

    if (o.contains("Properties")) mDefaultParameters = o.value("Properties").toObject();
    else {} //LOG WARNING

    return true;
}
Пример #10
0
DomainServerSettingsManager::DomainServerSettingsManager() :
    _descriptionArray(),
    _configMap()
{
    // load the description object from the settings description
    QFile descriptionFile(QCoreApplication::applicationDirPath() + SETTINGS_DESCRIPTION_RELATIVE_PATH);
    descriptionFile.open(QIODevice::ReadOnly);

    QJsonDocument descriptionDocument = QJsonDocument::fromJson(descriptionFile.readAll());

    if (descriptionDocument.isObject()) {
        QJsonObject descriptionObject = descriptionDocument.object();

        const QString DESCRIPTION_VERSION_KEY = "version";

        if (descriptionObject.contains(DESCRIPTION_VERSION_KEY)) {
            // read the version from the settings description
            _descriptionVersion = descriptionObject[DESCRIPTION_VERSION_KEY].toDouble();

            if (descriptionObject.contains(DESCRIPTION_SETTINGS_KEY)) {
                _descriptionArray = descriptionDocument.object()[DESCRIPTION_SETTINGS_KEY].toArray();
                return;
            }
        }
    }

    static const QString MISSING_SETTINGS_DESC_MSG =
        QString("Did not find settings decription in JSON at %1 - Unable to continue. domain-server will quit.")
        .arg(SETTINGS_DESCRIPTION_RELATIVE_PATH);
    static const int MISSING_SETTINGS_DESC_ERROR_CODE = 6;

    QMetaObject::invokeMethod(QCoreApplication::instance(), "queuedQuit", Qt::QueuedConnection,
                              Q_ARG(QString, MISSING_SETTINGS_DESC_MSG),
                              Q_ARG(int, MISSING_SETTINGS_DESC_ERROR_CODE));
}
void DomainServerSettingsManager::recurseJSONObjectAndOverwriteSettings(const QJsonObject& postedObject,
                                                                        QVariantMap& settingsVariant,
                                                                        QJsonObject descriptionObject) {
    foreach(const QString& key, postedObject.keys()) {

        QJsonValue rootValue = postedObject[key];
        
        // we don't continue if this key is not present in our descriptionObject
        if (descriptionObject.contains(key)) {
            if (rootValue.isString()) {
                settingsVariant[key] = rootValue.toString();
            } else if (rootValue.isBool()) {
                settingsVariant[key] = rootValue.toBool();
            } else if (rootValue.isObject()) {
                // there's a JSON Object to explore, so attempt to recurse into it
                QJsonObject nextDescriptionObject = descriptionObject[key].toObject();
                
                if (nextDescriptionObject.contains(DESCRIPTION_SETTINGS_KEY)) {
                    if (!settingsVariant.contains(key)) {
                        // we don't have a map below this key yet, so set it up now
                        settingsVariant[key] = QVariantMap();
                    }
                    
                    recurseJSONObjectAndOverwriteSettings(rootValue.toObject(),
                                                          *reinterpret_cast<QVariantMap*>(settingsVariant[key].data()),
                                                          nextDescriptionObject[DESCRIPTION_SETTINGS_KEY].toObject());
                }
            }
        }
    }
}
Пример #12
0
void VstSettings::read(const QJsonObject &in)
{
    foldersToScan.clear();
    if (in.contains("scanPaths")) {
        QJsonArray scanPathsArray = in["scanPaths"].toArray();
        for (int i = 0; i < scanPathsArray.size(); ++i)
            foldersToScan.append(scanPathsArray.at(i).toString());
    }
    cachedPlugins.clear();
    if (in.contains("cachedPlugins")) {
        QJsonArray cacheArray = in["cachedPlugins"].toArray();
        for (int x = 0; x < cacheArray.size(); ++x) {
            QString pluginFile = cacheArray.at(x).toString();
            if (QFile(pluginFile).exists()) // if a cached plugin is removed from the disk we need skip this file

                cachedPlugins.append(pluginFile);
        }
    }
    blackedPlugins.clear();
    if (in.contains("BlackListPlugins")) {
        QJsonArray cacheArray = in["BlackListPlugins"].toArray();
        for (int x = 0; x < cacheArray.size(); ++x)
            blackedPlugins.append(cacheArray.at(x).toString());
    }
}
Пример #13
0
void ChatClient::singleWho()
{
    QtJsonDb::QJsonDbReadRequest *request = qobject_cast<QtJsonDb::QJsonDbReadRequest*>(sender());
    if (!request)
        return;

    QList<QJsonObject> whoResults = request->takeResults();
    if (whoResults.isEmpty()) {
        fprintf(stderr, "Unknown user\n");
        return;
    }

    QJsonObject who = whoResults.takeFirst();
    request->deleteLater();

    QStringList results;
    results << QString("User: %1").arg(who.value(QLatin1String("username")).toString());
    results << QString("Logged in: %1").arg(who.value(QLatin1String("time")).toString());

    if (who.contains(QLatin1String("name")))
        results << QString("Real name: %1").arg(who.value(QLatin1String("name")).toString());
    if (who.contains(QLatin1String("status")))
        results << QString("Status: %1").arg(who.value(QLatin1String("status")).toString());

    fprintf(stderr, "%s\n", qPrintable(results.join("\n")));
}
Пример #14
0
void RPCWallet::transferResponse(const QJsonObject& pObjResponse, const QJsonObject& pObjOriginalParams)
{
    qDebug() << "Received transfer resposnse";
    qDebug() << pObjResponse;
    qDebug() << "With original params : ";
    qDebug() << pObjOriginalParams;

    /* Error */
    if ( pObjResponse["error"].isObject() ) {

        const QJsonObject lError = pObjResponse["error"].toObject();
        int lErrorCode = -1;
        QString lErrorMessage;

        if ( lError.contains("message") ) {
            lErrorMessage = lError["message"].toString();
        }

        if ( lError.contains("code") ) {
            lErrorCode = lError["code"].toInt();
        }

        this->onTransferError(lErrorCode, lErrorMessage);
        return;
    }


    if ( !pObjResponse["tx_hash"].isString() ) {
        qWarning() << "Bad JSON response for transfer : " << pObjResponse;
        return;
    }

    /* TOOD : Create a serialization:deserialization function for this stuff */

    if ( !pObjOriginalParams["destinations"].isArray() ) {
        qCritical() << "transferResponse brought bad original params : " << pObjOriginalParams;
        return;
    }


    QJsonArray lDsts = pObjOriginalParams["destinations"].toArray();
    const QJsonObject& lDestination = lDsts.first().toObject();
    if ( !lDestination["address"].isString() || !lDestination["amount"].isDouble() ) {
        qCritical() << "transferResponse brought bad original params : " << pObjOriginalParams;
        return;
    }

    unsigned long long lOriginalFee = 5000000000uLL;
    if ( pObjOriginalParams["fee"].isDouble() ) {
        lOriginalFee = pObjOriginalParams["fee"].toDouble();
    }

    /* OK */
    onTransferSuccessful(pObjResponse["tx_hash"].toString(), lDestination["amount"].toDouble(), lDestination["address"].toString(), lOriginalFee);

}
Пример #15
0
void SystemClass::read(const QJsonObject &json){
    SystemLang::read(json);
    QJsonArray tab;
    QList<QStandardItem *> row;
    SystemStatisticProgression* statisticProgression;
    SystemClassSkill* classSkill;

    // Experience
    m_initialLevel = -1;
    m_maxLevel = -1;
    m_expBase = -1;
    m_expInflation = -1;
    if (json.contains(jsonInitialLevel)) {
        m_initialLevel = json[jsonInitialLevel].toInt();
    }
    if (json.contains(jsonMaxLevel)) {
        m_maxLevel = json[jsonMaxLevel].toInt();
    }
    if (json.contains(jsonExpBase)) {
        m_expBase = json[jsonExpBase].toInt();
    }
    if (json.contains(jsonExpInflation)) {
        m_expInflation = json[jsonExpInflation].toInt();
    }

    // Exp table
    tab = json[jsonExpTable].toArray();
    for (int i = 0; i < tab.size(); i++){
        QJsonObject obj = tab.at(i).toObject();
        int level = obj["k"].toInt();
        int value = obj["v"].toInt();
        m_expTable[level] = value;
    }

    // Statistics
    tab = json[jsonStats].toArray();
    for (int i = 0; i < tab.size(); i++){
        statisticProgression = new SystemStatisticProgression;
        statisticProgression->read(tab[i].toObject());
        row = statisticProgression->getModelRow();
        m_statisticsProgression->insertRow(
                    m_statisticsProgression->invisibleRootItem()->rowCount()-1,
                    row);
    }

    // Skills
    tab = json[jsonSkills].toArray();
    for (int i = 0; i < tab.size(); i++){
        classSkill = new SystemClassSkill;
        classSkill->read(tab[i].toObject());
        row = classSkill->getModelRow();
        m_skills->insertRow(m_skills->invisibleRootItem()->rowCount()-1, row);
    }
}
Пример #16
0
void HistoryEntry::deSerialize(const QJsonObject & json)
{
    *this = HistoryEntry();

    if (json.contains("expression"))
        m_expr = json["expression"].toString();

    if (json.contains("result"))
        m_result = Quantity(json["result"].toObject());
    return;
}
Пример #17
0
/**
 * @brief Agent::fromJSON Update agent from JsonObject sent from frontend or importer
 * @param json {geometry : {} , properties : {}}
 */
void Agent::fromJSON(QJsonObject json){
    QJsonObject properties = json["properties"].toObject();
    if( properties.contains("name") ){ this->setObjectName( properties["name"].toObject()["value"].toString() ); }
    if( properties.contains("style") ){ this->style->fromJSON( properties["style"].toObject() ); }
    if( json.contains( "geometry" ) ){
        Geometry* geometry = GeoJsonToGeometry::format( json["geometry"].toObject() );
        if( geometry != 0 && geometry->isValid() ){
            this->setGeometry( geometry );
        }
    }
}
bool feedBackMessage::loadfromJson(QByteArray textJson)
{
    QJsonParseError jsonParseError;
    QJsonDocument jsonDocument = QJsonDocument::fromJson(textJson, &jsonParseError);
    if(jsonParseError.error == QJsonParseError::NoError)
    {
        if(jsonDocument.isObject())
        {

            QJsonObject jsonObject = jsonDocument.object();
            if(jsonObject.contains("username"))
            {
                QJsonValue jsonValue = jsonObject.take("username");
                if(jsonValue.isString())
                {
                    user = jsonValue.toString();
                }
                else
                {
                    return false;
                }
            }
            else
            {
                return false;
            }
            if(jsonObject.contains("status"))
            {
                QJsonValue jsonValue = jsonObject.take("status");
                if(jsonValue.isString())
                {
                    stat = jsonValue.toString();
                }
                else
                {
                    return false;
                }
            }
            else
            {
                return false;
            }
        }
        else
        {
            return false;
        }
    }
    else
    {
        return false;
    }
    return true;
}
Пример #19
0
ColorGradient ColorGradient::fromJson(const QJsonObject & jsonObject)
{
    if (jsonObject.isEmpty())
        return {};
    
    auto gradient = ColorGradient{};
    
    auto value = QJsonValue{};
    
    if (!jsonObject.contains("type") || !jsonObject.value("type").isString())
        gradient.setType(s_defaultType);
    else
        gradient.setType(type(jsonObject.value("type").toString()));

    if (!jsonObject.contains("steps") || !jsonObject.value("steps").isDouble())
        gradient.setSteps(s_defaultSteps);
    else
        gradient.setSteps(jsonObject.value("steps").toDouble());
    
    if (!jsonObject.contains("stops") || !jsonObject.value("stops").isArray())
        return {};
    
    auto stops = ColorGradientStops{};
    auto jsonStops = jsonObject.value("stops").toArray();
    for (const QJsonValue & jsonStop : jsonStops)
    {
        if (!jsonStop.isObject())
            return {};
        
        auto stop = jsonStop.toObject();
        
        if (!stop.contains("color") ||
            !stop.value("color").isString() ||
            !stop.contains("position") ||
            !stop.value("position").isDouble())
            return {};
        
        auto color = QColor{};
        color.setNamedColor(stop.value("color").toString());
        
        const auto position = stop.value("position").toDouble();
        auto midpoint = ColorGradientStop::s_defaultMidpoint;
        
        if (stop.contains("midpoint") &&
            stop.value("midpoint").isDouble())
            midpoint = stop.value("midpoint").toDouble();
        
        stops.append(ColorGradientStop{color, position, midpoint});
    }
    
    gradient.setStops(stops);
    return gradient;
}
Пример #20
0
BaseJob::Status PasswordLogin::parseJson(const QJsonDocument& data)
{
    QJsonObject json = data.object();
    if( !json.contains("access_token") || !json.contains("home_server") || !json.contains("user_id") )
    {
        return { UserDefinedError, "No expected data" };
    }
    d->returned_token = json.value("access_token").toString();
    d->returned_server = json.value("home_server").toString();
    d->returned_id = json.value("user_id").toString();
    return Success;
}
Пример #21
0
void UserManagementAPI::handleUserLoginPost(HttpRequest &request, HttpResponse &response)
{
    QByteArray rawData = request.getRawData();
    QJsonParseError error;
    QJsonDocument data = QJsonDocument::fromJson(rawData, &error);

    if (error.error != QJsonParseError::NoError)
    {
        respondJsonParseError(response, error);
        return;
    }

    QJsonObject dataObject = data.object();

    if (dataObject.contains("email") && dataObject.contains("password") && dataObject.contains("g_recaptcha_response"))
    {
        QString email = dataObject["email"].toString();
        QByteArray password = dataObject["password"].toString().toLatin1();
        QString g_recaptcha_response = dataObject["g_recaptcha_response"].toString();

        if (!ReCAPTCHAVerifier::getSingleton().verify(g_recaptcha_response, request.getFromIPAddress()))
        {
            respond(response, StatusCode::reCAPTCHAFailed, "reCAPTCHA check failed!");
            return;
        }

        QHash<QString, QVariant> extraFields;
        QString errorMessage;
        QString userId;
        if(m_userManager.login(email, password, userId, extraFields, errorMessage))
        {
            QByteArray sessionId;
            if (m_sessionManager.newSession(userId, email, sessionId))
            {
                QHash<QString, QString> additionalFields;
                additionalFields["session_id"] = sessionId;
                respond(response, StatusCode::NoError, "Logged in!", 0, additionalFields);
            }
            else
            {
                respond(response, StatusCode::CreateSessionFailed, errorMessage);
            }
        }
        else
        {
            respond(response, StatusCode::LoginFailed, errorMessage);
        }
    }
    else
    {
        respondParameterMissing(response);
    }
}
Пример #22
0
QStringList LOCACC :: getElementTreeData(QTreeWidgetItem *elementItem)
{
    QJsonObject screenObj = fetchScreenJObject(QStringList(elementItem->parent()->text(0)));
    QJsonObject elementObj = fetchElementJObject(QStringList (elementItem->text(0)),screenObj["elements"].toArray());
    QStringList elementData;
    elementData << elementObj["id"].toString()  << elementObj["accId"].toString()  << elementObj["type"].toString()
            << elementObj["role"].toString()
            << (elementObj.contains("tabIndex") ? QString::number(elementObj["tabIndex"].toInt()) : "")
            << (elementObj.contains("offsetTop") ? QString::number(elementObj["offsetTop"].toInt()) : "")
            << (elementObj.contains("offsetLeft") ? QString::number(elementObj["offsetLeft"].toInt()) : "");
    return elementData;
}
Пример #23
0
QJsonObject AccountManager::dataObjectFromResponse(QNetworkReply* requestReply) {
    QJsonObject jsonObject = QJsonDocument::fromJson(requestReply->readAll()).object();

    static const QString STATUS_KEY = "status";
    static const QString DATA_KEY = "data";

    if (jsonObject.contains(STATUS_KEY) && jsonObject[STATUS_KEY] == "success" && jsonObject.contains(DATA_KEY)) {
        return jsonObject[DATA_KEY].toObject();
    } else {
        return QJsonObject();
    }
}
Пример #24
0
void BoardWindow::parseResponse()
{
    QString data = Socket::readData();
    QJsonDocument d = QJsonDocument::fromJson(data.toUtf8());
    QJsonObject json = d.object();
    if (json.contains("request"))
    {
        std::string request_type = json["request"].toString().toStdString();
        if (request_type == "message") {
            QDateTime timestamp;
            timestamp.setTime_t(json["timestamp"].toString().toInt());
            ui->chatTextEdit->append("[" + timestamp.toString("hh:mm") + "] " +
                    json["nick"].toString() + ": " + json["message"].toString());
        }
        else if (request_type == "board")
        {
            waiting = false;
            resetBoard();
            time = json["time"].toString();
            ui->turnsLabel->setText("Turn: " + json["current color"].toString());
            yourTurn = json["current color"].toString() == color ? true : false;

//            ui->chatTextEdit->append("Loading board");
            for (int i = 0; i < 8; i++)
                for (int j = 0; j < 8; j++)
                    board[i][j] = json["board"].toArray()[i].toArray()[j].toString()[0].toLatin1();
            loadBoard();
        }
        else if (request_type == "game_over")
        {
            ui->chatTextEdit->append("GAME OVER!");
            if (json["winner"] == color) {
                ui->chatTextEdit->append("Congratulatons, you won!");
            }
            else {
                ui->chatTextEdit->append("Unfortunately, you lost. Maybe next time?");
            }
        }
    }
    else if (json.contains("status"))
    {
        auto status = json["status"].toString();
        if (status != "ok")
        {
            if (status == "wrong move") {
                waiting = false;
                revokeMoves();
            }
            ui->chatTextEdit->append("Error: " + status);
        }
    }
}
Пример #25
0
// ------------ TwqUser::P_Name ------------
void TwqUser::P_Name::receiveInfo(const QJsonObject& jobj) {
	// from Search
	if(jobj.contains(JSONKWD::TWEET::FromUserName)) {
		_v.name = jobj.find(JSONKWD::TWEET::FromUserName).value().toString();		// 表示名
		_v.scrName = jobj.find(JSONKWD::TWEET::FromUser).value().toString();		// アカ名
		haveF |= Flag;
	} else if(jobj.contains(JSONKWD::USER::Name)) {
		// from Home
		_v.name = jobj.find(JSONKWD::USER::Name).value().toString();
		_v.scrName = jobj.find(JSONKWD::USER::Screen_name).value().toString();
		haveF |= Flag;
	}
}
Пример #26
0
void AppModel::handleWeatherNetworkData(QObject *replyObj)
{
    qCDebug(requestsLog) << "got weather network data";
    QNetworkReply *networkReply = qobject_cast<QNetworkReply*>(replyObj);
    if (!networkReply)
        return;

    if (!networkReply->error()) {
        foreach (WeatherData *inf, d->forecast)
            delete inf;
        d->forecast.clear();

        QJsonDocument document = QJsonDocument::fromJson(networkReply->readAll());

        if (document.isObject()) {
            QJsonObject obj = document.object();
            QJsonObject tempObject;
            QJsonValue val;

            if (obj.contains(QStringLiteral("weather"))) {
                val = obj.value(QStringLiteral("weather"));
                QJsonArray weatherArray = val.toArray();
                val = weatherArray.at(0);
                tempObject = val.toObject();
                d->now.setWeatherDescription(tempObject.value(QStringLiteral("description")).toString());
                d->now.setWeatherIcon(tempObject.value("icon").toString());
            }
            if (obj.contains(QStringLiteral("main"))) {
                val = obj.value(QStringLiteral("main"));
                tempObject = val.toObject();
                val = tempObject.value(QStringLiteral("temp"));
                d->now.setTemperature(niceTemperatureString(val.toDouble()));
            }
        }
    }
    networkReply->deleteLater();

    //retrieve the forecast
    QUrl url("http://api.openweathermap.org/data/2.5/forecast/daily");
    QUrlQuery query;

    query.addQueryItem("q", d->city);
    query.addQueryItem("mode", "json");
    query.addQueryItem("cnt", "5");
    url.setQuery(query);

    QNetworkReply *rep = d->nam->get(QNetworkRequest(url));
    // connect up the signal right away
    d->forecastReplyMapper->setMapping(rep, rep);
    connect(rep, SIGNAL(finished()), d->forecastReplyMapper, SLOT(map()));
}
Пример #27
0
QString BasePlugin::translatedObject(QString obj){
  QJsonObject tmp = data.value(obj).toObject();
  //Get the current locale
  QString locale = getenv("LC_ALL");
  if(locale.isEmpty()){ locale = getenv("LC_MEBaseAGES"); }
  if(locale.isEmpty()){ locale = getenv("LANG"); }
  if(locale.isEmpty()){ locale = "default"; }
  if(locale.contains(".")){ locale = locale.section(".",0,0); } //chop any charset code off the end
  //Now find which localized string is available and return it
  if(tmp.contains(locale)){ return tmp.value(locale).toString(); }
  locale = locale.section("_",0,0); //full locale not found - look for shortened form
  if(tmp.contains(locale)){ return tmp.value(locale).toString(); }
  return tmp.value("default").toString(); //use the default version
}
Пример #28
0
QString Expression::createView(QJsonObject prop) const {
    QString key = prop["name"].toString();
    QStringList types;
    if (prop.contains("what")) {
        QJsonArray whats = prop["what"].toArray();
        for (int i = 0; i < whats.size(); i++) {
            types.append(whats[i].toString());
        } 
    }
    if (prop.contains("type")) types.append(prop["type"].toString());
    if (types.size() > 0) key += "(" + types.join("/") + ")";
    if (prop.contains("description")) key += "; " + prop["description"].toString();
    return key;
}
Пример #29
0
void UserManagementAPI::handleUserSignupPost(HttpRequest &request, HttpResponse &response)
{
    QByteArray rawData = request.getRawData();
    QJsonParseError error;
    QJsonDocument data = QJsonDocument::fromJson(rawData, &error);

    if (error.error != QJsonParseError::NoError)
    {
        respondJsonParseError(response, error);
        return;
    }

    QJsonObject dataObject = data.object();

    if (dataObject.contains("email") && dataObject.contains("password") && dataObject.contains("g_recaptcha_response"))
    {
        QString email = dataObject["email"].toString();
        QByteArray password = dataObject["password"].toString().toLatin1();
        QString g_recaptcha_response = dataObject["g_recaptcha_response"].toString();

        if (!ReCAPTCHAVerifier::getSingleton().verify(g_recaptcha_response, request.getFromIPAddress()))
        {
            respond(response, StatusCode::reCAPTCHAFailed, "reCAPTCHA check failed!");
            return;
        }

        QHash<QString, QVariant> extraFields;
        QString errorMessage;
        QByteArray activationCode;
        if(m_userManager.signup(email, password, extraFields, errorMessage, activationCode))
        {
            if (sendActivationEmail(email, QString::fromLatin1(activationCode)))
            {
                respondSuccess(response);
            }
            else
            {
                respond(response, StatusCode::SendActivationEmailFailed, "failed to send activation email!");
            }
        }
        else
        {
            respond(response, StatusCode::SignupFailed, "Signup failed: " % errorMessage);
        }
    }
    else
    {
        respondParameterMissing(response);
    }
}
void MusicRadioSongsThread::downLoadFinished()
{
    if(m_reply == nullptr)
    {
        deleteAll();
        return;
    }

    if(m_reply->error() == QNetworkReply::NoError)
    {
        QByteArray bytes = m_reply->readAll();
#ifdef MUSIC_QT_5
        QJsonParseError jsonError;
        QJsonDocument parseDoucment = QJsonDocument::fromJson(bytes, &jsonError);
        ///Put the data into Json
        if(jsonError.error != QJsonParseError::NoError ||
           !parseDoucment.isObject())
        {
            deleteAll();
            return ;
        }

        QJsonObject jsonObject = parseDoucment.object();
        if(jsonObject.contains("data"))
        {
            jsonObject = jsonObject.value("data").toObject();
            if(jsonObject.contains("songList"))
            {
                QJsonArray array = jsonObject.value("songList").toArray();
                foreach(QJsonValue value, array)
                {
                    if(!value.isObject())
                    {
                       continue;
                    }
                    QJsonObject object = value.toObject();

                    m_songInfo.m_songUrl = object.value("songLink").toString();
                    m_songInfo.m_songName = object.value("songName").toString();
                    m_songInfo.m_artistName = object.value("artistName").toString();
                    m_songInfo.m_songPicUrl = object.value("songPicRadio").toString();
                    m_songInfo.m_albumName = object.value("albumName").toString();
                    QString lrcLink = object.value("lrcLink").toString();
                    if(!lrcLink.contains( LRC_PREFIX ))
                    {
                        lrcLink = LRC_PREFIX + lrcLink;
                    }
                    m_songInfo.m_lrcUrl = lrcLink;
                }
            }