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

List:       kde-commits
Subject:    [libkvkontakte] libkvkontakte: PhotoPostJob: Support uploading either to Albums or to Wall or to Pro
From:       Alexander Potashev <aspotashev () gmail ! com>
Date:       2012-06-30 20:52:40
Message-ID: 20120630205240.DDE3DA60C6 () git ! kde ! org
[Download RAW message or body]

Git commit 0f88b85d972c617c0f020be1ea5d35f0e2d93bfa by Alexander Potashev.
Committed on 30/06/2012 at 20:25.
Pushed by aspotashev into branch 'master'.

PhotoPostJob: Support uploading either to Albums or to Wall or to Profile

PhotoPostJob: uploads files; form item names depend on "dest":

 * -> Album
-> "file1-file5"
<- {"server": '1', "photos_list": '2,3,4', "aid": '5', "hash": '12345abcde'}

 * -> Profile
-> "photo"
<- {"server": '1', "photos": '1', "hash": '12345abcde'}

 * -> Wall
-> "photo"
<- {"server": "4753", "photo": "2041c53171:w|402x600^200^299", "hash": \
"76a17dce73ccb6edf9d7382c7787d53a"}

 * -> Private Message [TBD]
-> "photo"
<- {"server": "10432", "photo": "5f3d5830a9:z|402x600^200^299", "hash": \
"261bc1e21ebe02e43d22365c96f9b321"}

M  +24   -8    libkvkontakte/photopostjob.cpp
M  +3    -1    libkvkontakte/photopostjob.h
M  +4    -1    libkvkontakte/uploadphotosjob.cpp

http://commits.kde.org/libkvkontakte/0f88b85d972c617c0f020be1ea5d35f0e2d93bfa

diff --git a/libkvkontakte/photopostjob.cpp b/libkvkontakte/photopostjob.cpp
index 94271bd..cad27ce 100644
--- a/libkvkontakte/photopostjob.cpp
+++ b/libkvkontakte/photopostjob.cpp
@@ -27,10 +27,12 @@
 namespace Vkontakte
 {
 
-PhotoPostJob::PhotoPostJob(const QString &url, const QStringList &files)
-    : m_url(url)
-    , m_files(files)
+PhotoPostJob::PhotoPostJob(Vkontakte::UploadPhotosJob::Dest dest, const QString \
&url, const QStringList &files)  {
+    m_url = url;
+    m_files = files;
+    m_dest = dest;
+
     setCapabilities(KJob::Killable);
 
     m_ok = true;
@@ -61,13 +63,27 @@ void PhotoPostJob::start()
     }
 
     MPForm form;
-    // file1 .. file5
-    for (int i = 0; i < m_files.size(); i ++)
-        if (!form.addFile(QString("file%1").arg(i + 1), m_files[i]))
-        {
+    switch (m_dest)
+    {
+        case Vkontakte::UploadPhotosJob::DEST_ALBUM:
+            // "file1" .. "file5"
+            for (int i = 0; i < m_files.size(); i ++)
+                if (!form.addFile(QString("file%1").arg(i + 1), m_files[i]))
+                {
+                    m_ok = false;
+                    break;
+                }
+                break;
+        case Vkontakte::UploadPhotosJob::DEST_PROFILE:
+        case Vkontakte::UploadPhotosJob::DEST_WALL:
+            // "photo"
+            if (!form.addFile(QString("photo"), m_files[0]))
+                m_ok = false;
+            break;
+        default:
             m_ok = false;
             break;
-        }
+    }
     form.finish();
 
     if (!m_ok)
diff --git a/libkvkontakte/photopostjob.h b/libkvkontakte/photopostjob.h
index 0c1b464..ebb18fa 100644
--- a/libkvkontakte/photopostjob.h
+++ b/libkvkontakte/photopostjob.h
@@ -23,6 +23,7 @@
 #include <QtCore/QVariantMap>
 
 #include "vkontaktejobs.h"
+#include "uploadphotosjob.h"
 
 namespace Vkontakte
 {
@@ -35,7 +36,7 @@ class PhotoPostJob : public KJobWithSubjob
     Q_OBJECT
 public:
     // files.size <= 5
-    PhotoPostJob(const QString &url, const QStringList &files);
+    PhotoPostJob(Vkontakte::UploadPhotosJob::Dest dest, const QString &url, const \
QStringList &files);  
     virtual void start();
     QVariantMap response() const;
@@ -50,6 +51,7 @@ private Q_SLOTS:
     void jobFinished(KJob *kjob);
 
 private:
+    UploadPhotosJob::Dest m_dest;
     QString m_url;
     QStringList m_files;
     bool m_ok;
diff --git a/libkvkontakte/uploadphotosjob.cpp b/libkvkontakte/uploadphotosjob.cpp
index 130aaa5..86a0d2f 100644
--- a/libkvkontakte/uploadphotosjob.cpp
+++ b/libkvkontakte/uploadphotosjob.cpp
@@ -38,6 +38,8 @@ public:
     int gid;
     bool saveBig;
 
+    UploadPhotosJob::Dest dest;
+
     QString uploadUrl;
     QList<PhotoInfoPtr> list;
 
@@ -56,6 +58,7 @@ UploadPhotosJob::UploadPhotosJob(const QString &accessToken,
     d->gid = gid;
     d->saveBig = saveBig;
     d->workingPostJobs = 0;
+    d->dest = Vkontakte::UploadPhotosJob::DEST_ALBUM;
 }
 
 UploadPhotosJob::~UploadPhotosJob()
@@ -112,7 +115,7 @@ bool UploadPhotosJob::mayStartPostJob()
 
 void UploadPhotosJob::startPostJob(int offset, int count)
 {
-    PhotoPostJob *job = new PhotoPostJob(d->uploadUrl, d->files.mid(offset, count));
+    PhotoPostJob *job = new PhotoPostJob(d->dest, d->uploadUrl, d->files.mid(offset, \
count));  m_jobs.append(job);
     connect(job, SIGNAL(result(KJob*)), this, SLOT(postJobFinished(KJob*)));
 


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

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