コード例 #1
0
ファイル: yaf_oauth.cpp プロジェクト: ershovdz/WebMounter
	void YafOAuth::finished(RESULT error)
	{
        delete m_view;
        m_view = NULL;

		emit authFinished(error, "", "");
	}
コード例 #2
0
ファイル: yaf_oauth.cpp プロジェクト: ershovdz/WebMounter
	void YafOAuth::handleUnsupportedContent(QNetworkReply *reply)
	{
		if (reply->error() == QNetworkReply::NoError) {
			return;
		}

		QString url = reply->url().toString();
		if(url.contains("webmounter://token#access_token="))
		{
            m_token = Data::RegExp::getByPattern("webmounter://token#access_token=(.*)&state", url);
            QNetworkCookieJar *cookie = m_view->page()->networkAccessManager()->cookieJar();
			QUrl yafUrl ("https://oauth.yandex.ru");
			QString login;
			for (int i=0; i < cookie->cookiesForUrl(yafUrl).count(); i++)
			{
				if (cookie->cookiesForUrl(yafUrl).at(i).name() == "yandex_login")
				{
					login = cookie->cookiesForUrl(yafUrl).at(i).value();
					break;
				}
			}

            delete m_view;
            m_view = NULL;

            emit authFinished(eNO_ERROR, login, m_token);
		}
	}
コード例 #3
0
ファイル: yaf_oauth.cpp プロジェクト: ershovdz/WebMounter
	void YafOAuth::finished(QNetworkReply *reply) 
	{
		int attr = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();

		if(attr == 302) // redirect
		{
            m_oAuthTimer->stop();

			QString url = reply->attribute(QNetworkRequest::RedirectionTargetAttribute).toString();
			if(url.contains("http://passport-ckicheck.yandex.ru/passport?mode=ckicheck")
				|| url.contains("https://oauth.yandex.ru/authorize?allow=True&request_id"))
			{
                m_view->load(reply->attribute(QNetworkRequest::RedirectionTargetAttribute).toUrl());
                if (!m_oAuthTimer->isActive())
                    m_oAuthTimer->start(10*1000);
			}
			else if(url.contains("webmounter://token#access_token="))
			{
                m_token = Data::RegExp::getByPattern("webmounter://token#access_token=(.*)&state", url);
                QNetworkCookieJar *cookie = m_view->page()->networkAccessManager()->cookieJar();
				QUrl yafUrl ("https://oauth.yandex.ru");
				QString login;
				for (int i=0; i < cookie->cookiesForUrl(yafUrl).count(); i++)
				{
					if (cookie->cookiesForUrl(yafUrl).at(i).name() == "yandex_login")
					{
						login = cookie->cookiesForUrl(yafUrl).at(i).value();
						login = login.replace(".", "-");
						break;
					}
				}

                delete m_view;
                m_view = NULL;

                emit authFinished(eNO_ERROR, login, m_token);
			}
			else if(url.contains("error=access_denied"))
			{
                delete m_view;
                m_view = NULL;

				emit authFinished(eERROR_CANCEL, "", "");
			}
		}
	}
コード例 #4
0
ファイル: yaf_oauth.cpp プロジェクト: ershovdz/WebMounter
	void YafOAuth::slotOAuthTimeout()
	{
        m_oAuthTimer->stop();
        delete m_view;
        m_view = NULL;

		emit authFinished(eERROR_CANCEL, "", "");
	}
コード例 #5
0
void HWUploadVideoDialog::upload()
{
    setEditable(false);

    // Documentation is at https://developers.google.com/youtube/2.0/developers_guide_protocol_clientlogin#ClientLogin_Authentication
    QNetworkRequest request;
    request.setUrl(QUrl("https://www.google.com/accounts/ClientLogin"));
    request.setRawHeader("User-Agent", USER_AGENT);
    request.setRawHeader("Content-Type", "application/x-www-form-urlencoded");

    QString account(QUrl::toPercentEncoding(leAccount->text()));
    QString pass(QUrl::toPercentEncoding(lePassword->text()));
    QByteArray data = QString("Email=%1&Passwd=%2&service=youtube&source=Hedgewars").arg(account).arg(pass).toAscii();

    QNetworkReply *reply = netManager->post(request, data);
    connect(reply, SIGNAL(finished()), this, SLOT(authFinished()));
}
コード例 #6
0
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow),
    settings(qApp->organizationName(), qApp->applicationName())
{
    ui->setupUi(this);

    vkaudio = new VKAudio();
    oauth = new OAuth(this);
    connect(oauth, SIGNAL(authFinished()), vkaudio, SLOT(loadSessionInfo()));

    oauth->authenticate();

    dp = new DataProvider();

    playerControls = new PlayerControls(this);
    playerControls->setObjectName("controls");
    playerControls->setStyleSheet("#controls {background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,"
                        "stop: 0 #28292d,"
                        "stop: 0.98 #2e2f2c,"
                        "stop: 1 #27282c);}");

    QFrame *playerFrame = ui->PlayerFrame;
    playerFrame->layout()->addWidget(playerControls);

    player = new QMediaPlayer(this);
    playlist = new PlayerPlaylist();
    player->setPlaylist(playlist);

    createConnections();

    loadSettings();

    loadPlaylists();
    createSongsTable(0);
}