[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kdeplasma-addons/sebas/qoauth] dataengines/microblog: less chatty, set authhelper on timeline
From:       Sebastian_Kügler <sebas () kde ! org>
Date:       2012-02-01 1:49:38
Message-ID: 20120201014938.6B304A60A6 () git ! kde ! org
[Download RAW message or body]

Git commit e4c40eb71b874ed3ea8431bee7042aac9680f952 by Sebastian Kügler.
Committed on 01/02/2012 at 02:48.
Pushed by sebas into branch 'sebas/qoauth'.

less chatty, set authhelper on timeline

M  +5    -5    dataengines/microblog/qoauthhelper.cpp
M  +9    -8    dataengines/microblog/qoauthwebhelper.cpp
M  +13   -3    dataengines/microblog/timelinesource.cpp
M  +3    -0    dataengines/microblog/timelinesource.h
M  +11   -2    dataengines/microblog/twitterengine.cpp

http://commits.kde.org/kdeplasma-addons/e4c40eb71b874ed3ea8431bee7042aac9680f952

diff --git a/dataengines/microblog/qoauthhelper.cpp \
b/dataengines/microblog/qoauthhelper.cpp index b6cd66c..e7f26f8 100644
--- a/dataengines/microblog/qoauthhelper.cpp
+++ b/dataengines/microblog/qoauthhelper.cpp
@@ -148,10 +148,10 @@ void QOAuthHelper::requestTokenFromService()
 
     QOAuth::ParamMap params;
     params.insert("oauth_callback", "oob");
-    kDebug() << "starting token request ...";
+//     kDebug() << "starting token request ...";
     QOAuth::ParamMap reply = d->interface->requestToken(d->requestTokenUrl,
                                                         QOAuth::GET, \
                QOAuth::HMAC_SHA1, params);
-    kDebug() << "token request done......" << reply;
+//     kDebug() << "token request done......" << reply;
 
     QString e;
     if ( d->interface->error() == QOAuth::NoError ) {
@@ -225,7 +225,7 @@ QString QOAuthHelper::errorMessage(int e) {
 
 void QOAuthHelper::accessTokenFromService()
 {
-    kDebug() << "start ... accessToken. TODO insert verifier" << d->verifier;
+//     kDebug() << "start ... accessToken. TODO insert verifier" << d->verifier;
     QOAuth::ParamMap params = QOAuth::ParamMap();
     params.insert("oauth_callback", "oob");
     if (d->serviceBaseUrl.toLower().contains("identi.ca")) {
@@ -234,7 +234,7 @@ void QOAuthHelper::accessTokenFromService()
     QOAuth::ParamMap reply = d->interface->accessToken(d->accessTokenUrl, \
                QOAuth::GET,
                                                        d->requestToken, \
                d->requestTokenSecret,
                                                        QOAuth::HMAC_SHA1, params);
-     kDebug() << "end ...... accessToken";
+//      kDebug() << "end ...... accessToken";
 //     kDebug() << " MAP: " << params;
     QString e;
     if ( d->interface->error() == QOAuth::NoError ) {
@@ -242,7 +242,7 @@ void QOAuthHelper::accessTokenFromService()
         d->accessTokenSecret = reply.value(QOAuth::tokenSecretParameterName());
 
         //QString auth_url = QString("%1?oauth_token=%2").arg(d->authorizeUrl, \
                QString(d->requestToken));
-        kDebug() << "Received Access Token OK!" << d->accessToken << \
d->accessTokenSecret; +//         kDebug() << "Received Access Token OK!" << \
d->accessToken << d->accessTokenSecret;  //kDebug() << "Surf to: " << auth_url;
         emit accessTokenReceived(d->serviceBaseUrl, d->accessToken, \
d->accessTokenSecret);  d->busy = true;
diff --git a/dataengines/microblog/qoauthwebhelper.cpp \
b/dataengines/microblog/qoauthwebhelper.cpp index 24fc360..0298125 100644
--- a/dataengines/microblog/qoauthwebhelper.cpp
+++ b/dataengines/microblog/qoauthwebhelper.cpp
@@ -107,11 +107,11 @@ void QOAuthWebHelper::authorizeApp(const QString \
&serviceBaseUrl, const QString  Q_UNUSED(serviceBaseUrl);
     Q_UNUSED(authorizeUrl);
     if (d->serviceBaseUrl == "/" || d->serviceBaseUrl.isEmpty()) return;
-    kDebug() << "SBU: " << d->serviceBaseUrl;
+//     kDebug() << "SBU: " << d->serviceBaseUrl;
 //     authorizationStatusMessageUpdated("Status:" + d->serviceBaseUrl, "Authorizing \
App");  //     authorizationStatusUpdated("Status:" + d->serviceBaseUrl, "Busy");
     if (!d->webView) {
-        kDebug() << "NEW KWEbvIEW";
+//         kDebug() << "NEW KWEbvIEW";
         d->dialog = new KDialog();
         d->dialog->setCaption( "authorize application" );
         d->dialog->setButtons( KDialog::Ok | KDialog::Cancel);
@@ -122,7 +122,7 @@ void QOAuthWebHelper::authorizeApp(const QString &serviceBaseUrl, \
                const QString
         connect(d->webView->page(), SIGNAL(loadFinished(bool)), \
SLOT(loadFinished()));  }
     d->authorizeUrls[authorizeUrl] = d->serviceBaseUrl;
-    kDebug() << " appAuthorized URL " << pageUrl;
+//     kDebug() << " appAuthorized URL " << pageUrl;
     d->webView->page()->mainFrame()->load(pageUrl);
 }
 
@@ -139,7 +139,7 @@ void QOAuthWebHelper::loadFinished()
     }
 
     QWebFrame* mf = page->mainFrame();
-    kDebug() << "Page URL:" << page->mainFrame()->url();
+//     kDebug() << "Page URL:" << page->mainFrame()->url();
     QString u = page->mainFrame()->url().toString();
     if (d->authorizeUrls.contains(u)) {
         QString pin;
@@ -153,7 +153,7 @@ void QOAuthWebHelper::loadFinished()
 //             kDebug() << "tag:" << code.tagName() << "PIN:" << pin;
         };
         if (!isIdentica() || !pin.isEmpty()) {
-            kDebug() << "We're done!" << u << pin;
+//             kDebug() << "We're done!" << u << pin;
             d->timer->stop(); // No need to show the dialog. :)
             emit statusUpdated(d->serviceBaseUrl, "Busy", "Application authorized");
             emit appAuthSucceeded(u, pin);
@@ -179,6 +179,7 @@ void QOAuthWebHelper::loadFinished()
         //   operation in the dataengine.
         if (!isIdentica()) {
             // Try to fill in user/pass into the form
+            //kDebug() << "twitter.com hacks JavaScript hacks";
             QString script = "var userName = \
document.getElementById(\"username_or_email\"); userName.value = \"" + d->user + \
                "\";\n";
             script.append("var passWord = document.getElementById(\"password\"); \
passWord.value = \"" + d->password + "\";\n");  mf->evaluateJavaScript(script);
@@ -188,18 +189,18 @@ void QOAuthWebHelper::loadFinished()
             script.append("var ackButton = document.getElementById(\"allow\"); \
ackButton.click();");  mf->evaluateJavaScript(script);
         } else if (d->serviceBaseUrl.toLower().contains("identi.ca")) {
-            kDebug() << "Identi.ca hacks not implemented, show dialog";
+            //kDebug() << "Identi.ca hacks JavaScript hacks";
             QVariant r;
             QString script = "var userName = document.getElementById(\"nickname\"); \
                userName.value = \"" + d->user + "\";\n";
             script.append("var passWord = document.getElementById(\"password\"); \
passWord.value = \"" + d->password + "\";\n");  r = mf->evaluateJavaScript(script);
-            kDebug() << "Ran script 1" << r;
+            //kDebug() << "Ran script 1" << script << r;
             // Evaluate the button click separately, as the above script might \
abort,  // and not all lines are actually executed.
             script = "";
             script.append("var ackButton = \
document.getElementById(\"allow_submit\"); ackButton.click();");  r = \
                mf->evaluateJavaScript(script);
-            kDebug() << "Ran script 2" << r;
+            //kDebug() << "Ran script 2" << script << r;
         }
         d->timer->start();
     }
diff --git a/dataengines/microblog/timelinesource.cpp \
b/dataengines/microblog/timelinesource.cpp index 6422d55..f8b0f25 100644
--- a/dataengines/microblog/timelinesource.cpp
+++ b/dataengines/microblog/timelinesource.cpp
@@ -19,6 +19,7 @@
  */
 
 #include "timelinesource.h"
+#include "qoauthhelper.h"
 
 #include <QXmlStreamReader>
 #include <QtCrypto/QtCrypto>
@@ -49,6 +50,7 @@ TweetJob::TweetJob(TimelineSource *source, const QString \
&operation, const QMap<  
     } else if (operation == "update") {
         m_url.setPath(m_url.path()+QString("statuses/%1.xml").arg(operation));
+        kDebug() << "Updating status" << m_url;
 
     } else {
         m_url.setPath(m_url.path()+operation+".xml");
@@ -67,6 +69,8 @@ TweetJob::TweetJob(TimelineSource *source, const QString \
&operation, const QMap<  
         //m_url.setUser(source->account());
         //m_url.setPass(source->password());
+    } else {
+        kDebug() << "posting update ..." << source->serviceBaseUrl() << m_url;
     }
 }
 
@@ -88,7 +92,7 @@ void TweetJob::start()
             }
         }
     }
-
+    kDebug() << "posting to " << m_url;
     KIO::Job *job = KIO::http_post(m_url, data, KIO::HideProgressInfo);
 
     if (m_source->useOAuth()) {
@@ -106,7 +110,7 @@ void TweetJob::start()
                 }
             }
         }
-
+        // FIXME: use full oauth here... and in other places
         OAuth::signRequest(job, m_url.pathOrUrl(), OAuth::POST, \
m_source->oauthToken(),  m_source->oauthTokenSecret(), params);
     }
@@ -166,6 +170,7 @@ Plasma::ServiceJob* TimelineService::createJob(const QString \
&operation, QMap<QS  TimelineSource::TimelineSource(const QString &who, RequestType \
requestType, QObject* parent)  : Plasma::DataContainer(parent),
       m_job(0),
+      m_authHelper(0),
       m_authJob(0),
       m_qcaInitializer(0)
 {
@@ -207,7 +212,7 @@ TimelineSource::TimelineSource(const QString &who, RequestType \
requestType, QObj  if (!m_useOAuth) {
         m_url.setUser(account.at(0));
     }
-
+    kDebug() << "    CTOR ::: serviceBaseUrl" << this << serviceBaseUrl() << m_url;
     // .. and now actually get the data
     update();
 }
@@ -227,6 +232,11 @@ void TimelineSource::startAuthorization(const QString& password)
     emit authorize(m_serviceBaseUrl.pathOrUrl(), m_user, password);
 }
 
+void TimelineSource::setOAuthHelper(QOAuthHelper* authHelper)
+{
+    m_authHelper = authHelper;
+}
+
 
 void TimelineSource::setPassword(const QString &password)
 {
diff --git a/dataengines/microblog/timelinesource.h \
b/dataengines/microblog/timelinesource.h index 80e4579..ee2e603 100644
--- a/dataengines/microblog/timelinesource.h
+++ b/dataengines/microblog/timelinesource.h
@@ -30,6 +30,7 @@
 
 // forward declarations
 class QXmlStreamReader;
+class QOAuthHelper;
 
 class KJob;
 
@@ -106,6 +107,7 @@ public:
     bool useOAuth() const;
     QByteArray oauthToken() const;
     QByteArray oauthTokenSecret() const;
+    void setOAuthHelper(QOAuthHelper *authHelper);
 
     Plasma::Service* createService();
     void startAuthorization(const QString &password);
@@ -142,6 +144,7 @@ private:
     QString m_id;
 
     bool m_useOAuth;
+    QOAuthHelper *m_authHelper;
     QString m_user;
     QByteArray m_oauthTemp;
     KIO::Job *m_authJob;
diff --git a/dataengines/microblog/twitterengine.cpp \
b/dataengines/microblog/twitterengine.cpp index 5dd7aaa..1176866 100644
--- a/dataengines/microblog/twitterengine.cpp
+++ b/dataengines/microblog/twitterengine.cpp
@@ -79,10 +79,11 @@ bool TwitterEngine::sourceRequestEvent(const QString &name)
 
 Plasma::Service* TwitterEngine::serviceForSource(const QString &name)
 {
+    kDebug() << " finding source..." << name;
     TimelineSource *source = \
                dynamic_cast<TimelineSource*>(containerForSource(name));
-//     kDebug() << "Service name: " << name;
+    kDebug() << "Service name: " << name;
     if (!source) {
-        kDebug() << "source not there.";
+        kDebug() << "source not there." << name << sources();
         return Plasma::DataEngine::serviceForSource(name);
     }
 
@@ -173,6 +174,7 @@ bool TwitterEngine::updateSourceEvent(const QString &name)
         authHelper = m_authHelper[serviceBaseUrl];
     }
 
+    const QString user = account.at(0);
     if (requestType == TimelineSource::User) {
         UserSource *source = dynamic_cast<UserSource*>(containerForSource(name));
 
@@ -195,7 +197,13 @@ bool TwitterEngine::updateSourceEvent(const QString &name)
         TimelineSource *source = \
dynamic_cast<TimelineSource*>(containerForSource(name));  
         if (!source) {
+            if (user.isEmpty()) {
+                return false;
+            }
+            kDebug() << "New TimelineSource" << name;
+
             source = new TimelineSource(who, requestType, this);
+            source->setOAuthHelper(authHelper);
             connect(source, SIGNAL(authorize(const QString&, const QString&, const \
                QString&)),
                     authHelper, SLOT(authorize(const QString&, const QString&, const \
QString&)));  source->setObjectName(name);
@@ -213,6 +221,7 @@ bool TwitterEngine::updateSourceEvent(const QString &name)
 
 void TwitterEngine::authorizationStatusUpdated(const QString& serviceBaseUrl, const \
QString& status, const QString &message)  {
+    kDebug() << "Status updated ..." << serviceBaseUrl << status << message;
     setData("Status:" + serviceBaseUrl, "AuthorizationMessage", status);
     setData("Status:" + serviceBaseUrl, "Authorization", status);
     scheduleSourcesUpdated();


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic