Exemplo n.º 1
0
QList<QTweetStatus> QTweetConvert::jsonArrayToStatusList(const QJsonArray &jsonArray)
{
    QList<QTweetStatus> statuses;

    for (int i = 0; i < jsonArray.size(); ++ i) {
        QTweetStatus tweetStatus = jsonObjectToStatus(jsonArray[i].toObject());

        statuses.append(tweetStatus);
    }

    return statuses;
}
Exemplo n.º 2
0
QTweetUser QTweetConvert::jsonObjectToUser(const QJsonObject &jsonObject)
{
    QTweetUser userInfo;

    userInfo.setId(static_cast<qint64>(jsonObject.value("id_str").toString().toLong()));

    if (jsonObject.contains("name")) {
        userInfo.setName(jsonObject.value("name").toString());
        userInfo.setLocation(jsonObject.value("location").toString());
        userInfo.setprofileImageUrl(jsonObject.value("profile_image_url").toString());
        userInfo.setCreatedAt(jsonObject.value("created_at").toString());
        userInfo.setFavouritesCount(static_cast<int>(jsonObject.value("favourites_count").toDouble()));
        userInfo.setUrl(jsonObject.value("url").toString());
        userInfo.setUtcOffset(static_cast<int>(jsonObject.value("utc_offset").toDouble()));
        userInfo.setProtected(jsonObject.value("protected").toBool());
        userInfo.setFollowersCount(static_cast<int>(jsonObject.value("followers_count").toDouble()));
        userInfo.setVerified(jsonObject.value("verified").toBool());
        userInfo.setGeoEnabled(jsonObject.value("geo_enabled").toBool());
        userInfo.setDescription(jsonObject.value("description").toString());
        userInfo.setTimezone(jsonObject.value("time_zone").toString());
        userInfo.setStatusesCount(static_cast<int>(jsonObject.value("statuses_count").toDouble()));
        userInfo.setScreenName(jsonObject.value("screen_name").toString());
        userInfo.setContributorsEnabled(jsonObject.value("contributors_enabled").toBool());
        userInfo.setListedCount(static_cast<int>(jsonObject.value("listed_count").toDouble()));
        userInfo.setLang(jsonObject.value("lang").toString());
	userInfo.setFollowing(jsonObject.value("following").toBool());

        if (jsonObject.contains("status")) {
            QJsonObject jsonStatusObject = jsonObject.value("status").toObject();

            QTweetStatus status = jsonObjectToStatus(jsonStatusObject);
            userInfo.setStatus(status);
        }
    }

    return userInfo;
}
Exemplo n.º 3
0
QTweetStatus QTweetConvert::jsonObjectToStatus(const QJsonObject& json)
{
    QTweetStatus status;

    status.setCreatedAt(json["created_at"].toString());
    status.setText(json["text"].toString());
    status.setId(static_cast<qint64>(json["id"].toDouble()));
    status.setInReplyToUserId(static_cast<qint64>(json["in_reply_to_user_id"].toDouble()));
    status.setInReplyToScreenName(json["in_reply_to_screen_name"].toString());
    status.setFavorited(json["favorited"].toBool());

    QJsonObject userObject = json["user"].toObject();
    QTweetUser user = jsonObjectToUser(userObject);
    status.setUser(user);

    status.setSource(json["source"].toString());
    status.setInReplyToStatusId(static_cast<qint64>(json["in_reply_to_status_id"].toDouble()));

    //check if contains native retweet
    if (json.contains("retweeted_status")) {
        QJsonObject retweetObject = json["retweeted_status"].toObject();

        QTweetStatus rtStatus = jsonObjectToStatus(retweetObject);

        status.setRetweetedStatus(rtStatus);
    }

    //parse place id if it's not null
    QJsonValue placeValue = json["place"];
    if (!placeValue.isNull()) {
        QTweetPlace place = jsonObjectToPlace(placeValue.toObject());
        status.setPlace(place);
    }

    //check if contains entities
    if (json.contains("entities")) {
        QJsonObject entitiesObject = json["entities"].toObject();

        //url entities
        QJsonArray urlEntitiesList = entitiesObject["urls"].toArray();

        for (int i = 0; i < urlEntitiesList.size(); ++i) {
            QTweetEntityUrl urlEntity = jsonObjectToEntityUrl(urlEntitiesList[i].toObject());

            status.addUrlEntity(urlEntity);
        }

        //hashtag entities
        QJsonArray hashtagEntitiesList = entitiesObject["hashtags"].toArray();

        for (int i = 0; i < hashtagEntitiesList.size(); ++i) {
            QTweetEntityHashtag hashtagEntity = jsonObjectToEntityHashtag(hashtagEntitiesList[i].toObject());

            status.addHashtagEntity(hashtagEntity);
        }

        //user mentions
        QJsonArray userMentionsEntitiesList = entitiesObject["user_mentions"].toArray();

        for (int i = 0; i < userMentionsEntitiesList.count(); ++i) {
            QTweetEntityUserMentions userMentionsEntity = jsonObjectToEntityUserMentions(userMentionsEntitiesList[i].toObject());

            status.addUserMentionsEntity(userMentionsEntity);
        }

        //media
        QJsonArray mediaEntitiesList = entitiesObject["media"].toArray();

        for (int i = 0; i < mediaEntitiesList.count(); ++i) {
            QTweetEntityMedia mediaEntity = jsonObjectToEntityMedia(mediaEntitiesList[i].toObject());

            status.addMediaEntity(mediaEntity);
        }
    }

    return status;
}