void YafOAuth::finished(RESULT error) { delete m_view; m_view = NULL; emit authFinished(error, "", ""); }
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); } }
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, "", ""); } } }
void YafOAuth::slotOAuthTimeout() { m_oAuthTimer->stop(); delete m_view; m_view = NULL; emit authFinished(eERROR_CANCEL, "", ""); }
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())); }
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); }