GoogleFeedHttpRequest* QtGoogleFeedApi::getFindRequest(QString query)
{
    QUrlQuery urlQuery;
    urlQuery.addQueryItem("v", versionString());
    urlQuery.addQueryItem("q", query);

    QUrl url(QtGoogleFeedApi::BaseUrl + "/find");
    url.setQuery(urlQuery);
    return new GoogleFeedHttpRequest(url);
}
예제 #2
0
/*
 * User Functions
 */
TelegramBotUserProfilePhotos TelegramBot::getUserProfilePhotos(qint32 userId, int offset, int limit)
{
    QUrlQuery params;
    params.addQueryItem("user_id", QString::number(userId));
    if(offset > 0) params.addQueryItem("offset", QString::number(offset));
    if(limit > 0) params.addQueryItem("limit", QString::number(limit));

    // call api and return constructed data
    return TelegramBotUserProfilePhotos(this->callApiJson("getUserProfilePhotos", params).value("result").toObject());
}
예제 #3
0
void TelegramBot::forwardMessage(QVariant targetChatId, QVariant fromChatId, qint32 fromMessageId, TelegramFlags flags, TelegramBotMessage *response)
{
    QUrlQuery params;
    params.addQueryItem("chat_id", targetChatId.toString());
    params.addQueryItem("from_chat_id", fromChatId.toString());
    params.addQueryItem("message_id", QString::number(fromMessageId));
    if(flags && TelegramFlags::DisableNotfication) params.addQueryItem("disable_notification", "true");

    this->callApiTemplate("forwardMessage", params, response);
}
예제 #4
0
QString BoardGameGeekImporter::text(const QStringList& idList_) const {
//  myDebug() << idList_;
  QUrl u(QString::fromLatin1(BGG_THING_URL));
  QUrlQuery q;
  q.addQueryItem(QLatin1String("id"), idList_.join(QLatin1String(",")));
  q.addQueryItem(QLatin1String("type"), QLatin1String("boardgame,boardgameexpansion"));
  u.setQuery(q);
//  myDebug() << u;
  return FileHandler::readTextFile(u, true, true);
}
예제 #5
0
QJsonObject festrip_api::user_update(QString password,
                                    QString nickname,
                                    QString twitterId,
                                    QString name,
                                    QString lastname,
                                    QString gender,
                                    QString countryId,
                                    QString cityId,
                                    QString avatar)
{
    QUrlQuery query = QUrlQuery(QUrl(QString(FESTRIP_URL).append("/api/user/")));
    // Fill in query
    query.addQueryItem("query", "update");
    query.addQueryItem("token", token.toString());
    query.addQueryItem("password", password);
    query.addQueryItem("nickname", nickname);
    query.addQueryItem("twitterId", twitterId);
    query.addQueryItem("name", name);
    query.addQueryItem("lastname", lastname);
    query.addQueryItem("gender", gender);
    query.addQueryItem("countryId", countryId);
    query.addQueryItem("cityId", cityId);
    query.addQueryItem("avatar", avatar);
    // Send query to server
     QJsonObject response = send_query(POST, query);
    // Return JSON
    return(response);
}
예제 #6
0
void ParserResRobot::findStationsByCoordinates(qreal longitude, qreal latitude)
{
    if (currentRequestState != FahrplanNS::noneRequest)
        return;
    currentRequestState = FahrplanNS::stationsByCoordinatesRequest;

    QUrl url(baseURL + QLatin1String("/location.nearbystops"));
#if defined(BUILD_FOR_QT5)
    QUrlQuery query;
#else
    QUrl query;
#endif
    query.addQueryItem("key", journeyAPIKey);
    query.addQueryItem("originCoordLat", QString::number(latitude));
    query.addQueryItem("originCoordLong", QString::number(longitude));
    query.addQueryItem("r", "1000"); // Radius in meters
    query.addQueryItem("maxNo", "30"); // Max number of results
    if (QLocale().language() == QLocale::Swedish)
        query.addQueryItem("lang", "sv");
    else if (QLocale().language() == QLocale::German)
        query.addQueryItem("lang", "de");
    else
        query.addQueryItem("lang", "en");
    query.addQueryItem("format", "json");
#if defined(BUILD_FOR_QT5)
    url.setQuery(query);
#else
    url.setQueryItems(query.queryItems());
#endif
    sendHttpRequest(url);
}
예제 #7
0
QNetworkReply* Connection::connectToAccount(const QString &email,
                                            const QString &password,
                                            PMS::SimpleResultHandler handler)
{
    QUrlQuery query;
    query.addQueryItem("api_subscription[email]", email);
    query.addQueryItem("api_subscription[password]", password);
    query.addQueryItem("api_subscription[client_name]", qApp->applicationName());
    query.addQueryItem("api_subscription[client_vendor]", qApp->organizationName());
    QNetworkRequest request(apiUrl_);
    request.setHeader(QNetworkRequest::KnownHeaders::ContentTypeHeader, "application/x-www-form-urlencoded");
    auto reply = client_->post(request, query.toString().toUtf8());

    QPointer<QObject> self = this;
    QObject::connect(reply, &QNetworkReply::finished, [self, this, reply, handler]()
    {
        if (!self)
            return;
        try
        {
            checkReply(reply);
            auto str = reply->readAll().trimmed();

            QRegExp apiKeyRx("^API key: (.+)$");
            if (apiKeyRx.exactMatch(str))
            {
                setApiKey(apiKeyRx.cap(1));
                handler(Error());
                return;
            }

            QRegExp errorRx("^Error Code: (\\d+)$");
            if (errorRx.exactMatch(str))
            {
                int code = errorRx.cap(1).toInt();
                QString error;
                switch (code)
                {
                    case 1: error = tr("Client details not set"); break;
                    case 2: error = tr("Unknown user"); break;
                    case 3: error = tr("Invalid password"); break;
                    case 4: error = tr("Not allowed for given User and their System Role"); break;
                    default: error = tr("Unknown error"); break;
                }
                throw Error(Error::Authorization, error);
            }

            throw Error(Error::Authorization, tr("Unknown error"));
        }
        catch (const Error& err)
        {
            handler(err);
        }
    });
}
예제 #8
0
void tst_QUrlQuery::multiAddRemove()
{
    QUrlQuery query;

    {
        // one item, two values
        query.addQueryItem("a", "b");
        query.addQueryItem("a", "c");
        QVERIFY(!query.isEmpty());
        QVERIFY(query.hasQueryItem("a"));

        // returns the first one
        QVERIFY(query.queryItemValue("a") == "b");

        // order is the order we set them in
        QVERIFY(query.allQueryItemValues("a") == QStringList() << "b" << "c");
    }

    {
        // add another item, two values
        query.addQueryItem("A", "B");
        query.addQueryItem("A", "C");
        QVERIFY(query.hasQueryItem("A"));
        QVERIFY(query.hasQueryItem("a"));

        QVERIFY(query.queryItemValue("a") == "b");
        QVERIFY(query.allQueryItemValues("a") == QStringList() << "b" << "c");
        QVERIFY(query.queryItemValue("A") == "B");
        QVERIFY(query.allQueryItemValues("A") == QStringList() << "B" << "C");
    }

    {
        // remove one of the original items
        query.removeQueryItem("a");
        QVERIFY(query.hasQueryItem("a"));

        // it must have removed the first one
        QVERIFY(query.queryItemValue("a") == "c");
    }

    {
        // remove the items we added later
        query.removeAllQueryItems("A");
        QVERIFY(!query.isEmpty());
        QVERIFY(!query.hasQueryItem("A"));
    }

    {
        // add one element to the current, then remove them
        query.addQueryItem("a", "d");
        query.removeAllQueryItems("a");
        QVERIFY(!query.hasQueryItem("a"));
        QVERIFY(query.isEmpty());
    }
}
예제 #9
0
파일: VKApi.cpp 프로젝트: JohnPoison/QVKApi
void VKApi::method(const QString &method,
        const QMap<QString, QString> params,
        std::function< void(const QJsonDocument*, QNetworkReply::NetworkError) > callback
)  {
    QUrl url( kApiBaseUrl + method );

    QUrlQuery q;

    if (!params.empty()) {
        for (const auto& key : params) {
            q.addQueryItem( key, params.value(key) );
        }
    }

    if (isLoggedIn())
        q.addQueryItem("access_token", accessToken);
    url.setQuery(q);

    QNetworkRequest req;
    req.setUrl(url);

    qDebug() << "Sending request to: " << req.url().toString() << "\n";
    auto reply = net.get(req);
    connect(reply, &QNetworkReply::finished, [reply, callback]() {
        QJsonDocument* json = 0;
        QJsonDocument jsonDoc;
        QNetworkReply::NetworkError error = reply->error();
        qDebug() << "Finished reply: " << reply << "\n";
        if (reply->error() != QNetworkReply::NetworkError::NoError) {
            qDebug() << "Network error: " << reply->errorString() << "\n";
        } else {
            QJsonParseError parseErr;
            auto data = reply->readAll();
            jsonDoc = QJsonDocument::fromJson(data , &parseErr );

            qDebug() << "got response <" << reply->url() << ">\n" << data << "\n\n\n";

            if (parseErr.error != QJsonParseError::NoError) {
                qDebug() << "failed to parse json: " << parseErr.errorString() << "\n";
                error = QNetworkReply::NetworkError::UnknownContentError;
            } else if (!jsonDoc.object().contains("response")) {
                qDebug() << "bad json.\n";
                error = QNetworkReply::NetworkError::UnknownContentError;
            } else {
                jsonDoc = QJsonDocument( jsonDoc.object().value( "response" ).toArray().at(0).toObject() );
                json = &jsonDoc;
            }
        }

        if (callback)
            callback(json, error);

        reply->deleteLater();
    });
}
예제 #10
0
void IpfsGet::write_on_disk(const IpfsHash &hash, const QString &path)
{
    QUrl url = Ipfs::instance().api_url(API_COMMAND);
    QUrlQuery query;

    query.addQueryItem("arg", hash.ToString());
    query.addQueryItem("o", path);

    url.setQuery(query);
    Ipfs::instance().query(url);
}
예제 #11
0
/*
 * Callback Query Functions
 */
void TelegramBot::answerCallbackQuery(QString callbackQueryId, QString text, bool showAlert, int cacheTime, QString url, bool *response)
{
    QUrlQuery params;
    params.addQueryItem("callback_query_id", callbackQueryId);
    if(!text.isNull()) params.addQueryItem("text", text);
    if(showAlert) params.addQueryItem("show_alert", "true");
    if(!url.isNull()) params.addQueryItem("url", url);
    if(cacheTime > 0) params.addQueryItem("cache_time", QString::number(cacheTime));

    this->callApiTemplate("answerCallbackQuery", params, response);
}
예제 #12
0
QNetworkRequest ItemsManagerWorker::MakeTabRequest(int tab_index, bool tabs) {
    QUrlQuery query;
    query.addQueryItem("league", league_.c_str());
    query.addQueryItem("tabs", tabs ? "1" : "0");
    query.addQueryItem("tabIndex", QString::number(tab_index));
    query.addQueryItem("accountName", account_name_.c_str());

    QUrl url(kStashItemsUrl);
    url.setQuery(query);
    return QNetworkRequest(url);
}
예제 #13
0
void MediaView::shareViaTwitter() {
    Video *video = playlistModel->activeVideo();
    if (!video) return;
    QUrl url("https://twitter.com/intent/tweet");
    QUrlQuery q;
    q.addQueryItem("via", "minitubeapp");
    q.addQueryItem("text", video->getTitle());
    q.addQueryItem("url", video->getWebpage());
    url.setQuery(q);
    QDesktopServices::openUrl(url);
}
예제 #14
0
void MToken::getToken() {
	QUrl current("https://www.deviantart.com/oauth2/token");
	QUrlQuery par;
	par.addQueryItem("grant_type", "client_credentials");
	// Add your id and secret to run
	par.addQueryItem("client_id", "4146");
	par.addQueryItem("client_secret", "74324cd51181766352ee8246178cda69");
	current.setQuery(par);
	token = QJsonDocument::fromJson(GETt(current)).object().value("access_token").toString();
	qDebug() << "Token: " << token;
}
void WfsCapabilitiesParser::createGetFeatureUrl(const QString& featureName, QUrl& rawUrl, QUrl& normalizedUrl) const
{
    QUrlQuery query;
    query.addQueryItem("service", "WFS");
    query.addQueryItem("version", "1.1.0");
    query.addQueryItem("request", "GetFeature");
    query.addQueryItem("typeName", featureName);
    rawUrl = _wfsResource.url(); // copy
    rawUrl.setQuery(query);
    normalizedUrl = _wfsResource.url().toString(QUrl::RemoveQuery) + "/" + featureName;
}
예제 #16
0
QJsonObject festrip_api::user_attended_festivals()
{
    QUrlQuery query = QUrlQuery(QUrl(QString(FESTRIP_URL).append("/api/user/")));
    // Fill in query
    query.addQueryItem("query", "attended_festivals");
    query.addQueryItem("token", token.toString());
    // Send query to server
     QJsonObject response = send_query(POST, query);
    // Return JSON
    return(response);
}
예제 #17
0
void TelegramBot::sendChatAction(QVariant chatId, QString action, bool *response)
{
    // param check
    if(action.isEmpty()) return;

    QUrlQuery params;
    params.addQueryItem("chat_id", chatId.toString());
    params.addQueryItem("action", action);

    // call api
    this->callApiTemplate("sendChatAction", params, response);
}
예제 #18
0
QJsonObject festrip_api::group_festival(int festivalId)
{
    QUrlQuery query = QUrlQuery(QUrl(QString(FESTRIP_URL).append("/api/group/")));
    // Fill in query
    query.addQueryItem("query", "festival");
    query.addQueryItem("token", token.toString());
    query.addQueryItem("festival_id", QString::number(festivalId));
    // Send query to server
     QJsonObject response = send_query(POST, query);
    // Return JSON
    return(response);
}
예제 #19
0
// Game API
QJsonObject festrip_api::game_get_badges(QString type)
{
    QUrlQuery query = QUrlQuery(QUrl(QString(FESTRIP_URL).append("/api/game/")));
    // Fill in query
    query.addQueryItem("query", "get_badges");
    query.addQueryItem("token", token.toString());
    query.addQueryItem("type", type);
    // Send query to server
     QJsonObject response = send_query(GET, query);
    // Return JSON
    return(response);
}
예제 #20
0
void MediaView::shareViaEmail() {
    Video *video = playlistModel->activeVideo();
    if (!video) return;
    QUrl url("mailto:");
    QUrlQuery q;
    q.addQueryItem("subject", video->getTitle());
    const QString body = video->getTitle() + "\n" + video->getWebpage() + "\n\n" +
                         tr("Sent from %1").arg(Constants::NAME) + "\n" + Constants::WEBSITE;
    q.addQueryItem("body", body);
    url.setQuery(q);
    QDesktopServices::openUrl(url);
}
예제 #21
0
void SmugTalker::createAlbum(const SmugAlbum& album)
{
    if (m_reply)
    {
        m_reply->abort();
        m_reply = 0;
    }

    emit signalBusy(true);

    QUrl url(m_apiURL);
    QUrlQuery q;
    q.addQueryItem(QString::fromLatin1("method"),     QString::fromLatin1("smugmug.albums.create"));
    q.addQueryItem(QString::fromLatin1("SessionID"),  m_sessionID);
    q.addQueryItem(QString::fromLatin1("Title"),      album.title);
    q.addQueryItem(QString::fromLatin1("CategoryID"), QString::number(album.categoryID));

    if (album.subCategoryID > 0)
        q.addQueryItem(QString::fromLatin1("SubCategoryID"), QString::number(album.subCategoryID));

    if (!album.description.isEmpty())
        q.addQueryItem(QString::fromLatin1("Description"), album.description);

    if (album.tmplID > 0)
    {
        // template will also define privacy settings
        q.addQueryItem(QString::fromLatin1("AlbumTemplateID"), QString::number(album.tmplID));
    }
    else
    {
        if (!album.password.isEmpty())
            q.addQueryItem(QString::fromLatin1("Password"), album.password);

        if (!album.passwordHint.isEmpty())
            q.addQueryItem(QString::fromLatin1("PasswordHint"), album.passwordHint);

        if (album.isPublic)
            q.addQueryItem(QString::fromLatin1("Public"), QString::fromLatin1("1"));
        else
            q.addQueryItem(QString::fromLatin1("Public"), QString::fromLatin1("0"));
    }

    url.setQuery(q);

    QNetworkRequest netRequest(url);
    netRequest.setHeader(QNetworkRequest::ContentTypeHeader, QLatin1String("application/x-www-form-urlencoded"));
    netRequest.setHeader(QNetworkRequest::UserAgentHeader, m_userAgent);

    m_reply = m_netMngr->get(netRequest);

    m_state = SMUG_CREATEALBUM;
    m_buffer.resize(0);
}
예제 #22
0
void WSettings::on_searchButton_clicked()
{
	QUrl url(QLatin1String("http://forecastfox3.accuweather.com/adcbin/forecastfox3/city-find.asp"));
	QUrlQuery q;
	QString langId = WManager::currentLangId();
	if (!langId.isEmpty())
		q.addQueryItem(QLatin1String("langid"), langId);
	q.addQueryItem(QLatin1String("location"), ui.searchEdit->currentText());
	url.setQuery(q);
	m_networkManager->get(QNetworkRequest(url));
	ui.addButton->setEnabled(false);
}
예제 #23
0
// Updates API
QJsonObject festrip_api::updates_get_updates(QDate date)
{
    QUrlQuery query = QUrlQuery(QUrl(QString(FESTRIP_URL).append("/api/updates/")));
    // Fill in query
    query.addQueryItem("query", "get_updates");
    query.addQueryItem("token", token.toString());
    query.addQueryItem("date", date.toString());
    // Send query to server
     QJsonObject response = send_query(GET, query);
    // Return JSON
    return(response);
}
예제 #24
0
QJsonObject festrip_api::user_reset_password(QString username)
{
    QUrlQuery query = QUrlQuery(QUrl(QString(FESTRIP_URL).append("/api/user/")));
    // Fill in query
    query.addQueryItem("query", "reset_password");
    query.addQueryItem("username", username);
    query.addQueryItem("token", token.toString());
    // Send query to server
     QJsonObject response = send_query(GET, query);
    // Return JSON
    return(response);
}
예제 #25
0
QJsonObject festrip_api::user_get_public_info(int userId)
{
    QUrlQuery query = QUrlQuery(QUrl(QString(FESTRIP_URL).append("/api/user/")));
    // Fill in query
    query.addQueryItem("query", "get_public_info");
    query.addQueryItem("token", token.toString());
    query.addQueryItem("userId", (QString)(userId));
    // Send query to server
     QJsonObject response = send_query(GET, query);
    // Return JSON
    return(response);
}
예제 #26
0
QString OAuth2::loginUrl()
{
    QUrlQuery urlQuery;
    urlQuery.addQueryItem("client_id", m_strClientID);
    urlQuery.addQueryItem("response_type", m_strResponseType);

    QString str = QString("%1?%2").arg(m_codeRequestURL).arg(urlQuery.query(QUrl::FullyEncoded));
    // optional if you have registered redirectURL at Box
    str += QString("&redirect_uri=%1").arg(QString(QUrl::toPercentEncoding(m_strRedirectURI)));
    qDebug() << "Login URL" << str;
    return str;
}
예제 #27
0
파일: VKApi.cpp 프로젝트: JohnPoison/QVKApi
QUrl VKApi::getLoginUrl() const {
    QUrl url(kAuthUrl);
    QUrlQuery q;
    q.addQueryItem("client_id", appId);
    q.addQueryItem("scope", scope);
    q.addQueryItem("display", "popup");
    q.addQueryItem("redirect_uri", kRedirectUrl);
    q.addQueryItem("response_type", "token");
    url.setQuery(q);

    return url;
}
예제 #28
0
/**
 *  Opens authorization url, this will open browser, Twitter will return PIN number
 *
 *  @remarks Override if you want to show another browser.
 *  Please call with returned PIN requestAccessToken slot to get access tokens
 *
 */
void OAuthTwitter::requestAuthorization()
{
    QUrl authorizeUrl(TWITTER_AUTHORIZE_URL);
	QUrlQuery query;
    query.addQueryItem("oauth_token", oauthToken().toPercentEncoding());
    query.addQueryItem("oauth_callback", "oob");
	authorizeUrl.setQuery(query);

    emit authorizePinAuthenticate();

    QDesktopServices::openUrl(authorizeUrl);
}
예제 #29
0
void tst_QUrlQuery::multiplyAddSamePair()
{
    QUrlQuery query;
    query.addQueryItem("a", "a");
    query.addQueryItem("a", "a");
    QCOMPARE(query.allQueryItemValues("a"), QStringList() << "a" << "a");

    query.addQueryItem("a", "a");
    QCOMPARE(query.allQueryItemValues("a"), QStringList() << "a" << "a" << "a");

    query.removeQueryItem("a");
    QCOMPARE(query.allQueryItemValues("a"), QStringList() << "a" << "a");
}
예제 #30
0
void LoginScreen::authenticate()
{
  QNetworkRequest request ;
  QUrl url("http://www.gradians.com/quill/signin") ;
  QUrlQuery payload ;

  payload.addQueryItem("email", ui->email->text());
  payload.addQueryItem("password",ui->password->text());
  url.setQuery(payload) ;

  request.setUrl(url);
  networkMgr->get(request) ;
}