On Saturday 11 October 2008 21:15:44 Vardhman Jain wrote: > this is indeed sad to hear. I did perform quite a few test uploads and was > sure things would work great now. Unfortunately I don't get enough time to > try it on anything other than Kubuntu Virtual machine that I have on my Mac > laptop. > > I will try checking it again and also fix the other issues reported by > Dragon meanwhile.
Vardman, The patch that I had applied, which didn't work for dragon is attached, I don't know if you can spot any obvious mistakes. Mark
diff -Nur -x '*.orig' -x '*~' kipi-plugins-0.1.5/kipi-plugins/picasawebexport/picasawebtalker.cpp kipi-plugins-0.1.5.new/kipi-plugins/picasawebexport/picasawebtalker.cpp --- kipi-plugins-0.1.5/kipi-plugins/picasawebexport/picasawebtalker.cpp 2008-03-11 01:49:37.000000000 +1100 +++ kipi-plugins-0.1.5.new/kipi-plugins/picasawebexport/picasawebtalker.cpp 2008-09-27 23:22:41.000000000 +1000 @@ -37,6 +37,7 @@ #include <qlineedit.h> #include <qmessagebox.h> #include <kio/jobclasses.h> +#include <kurl.h> #include <qdom.h> #include <cstring> #include <cstdio> @@ -330,7 +331,7 @@ } bool PicasawebTalker::addPhoto( const QString& photoPath, - FPhotoInfo& info, const QString& albumName, + FPhotoInfo& info, const QString& albumId, bool rescale, int maxDim, int imageQuality ) { // Disabling this totally may be checking the m_state and doing selecting @@ -340,11 +341,11 @@ m_job->kill(); m_job = 0; }*/ - QString album_name = albumName; - if (album_name.length() == 0) - album_name = "test"; - QString postUrl = "http://www.picasaweb.google.com/data/feed/api/user/" + m_username + "/album/" + album_name; - QString path = photoPath; + QString album_id = albumId; + if (album_id.length() == 0) + album_id = "test"; + QString postUrl = "http://www.picasaweb.google.com/data/feed/api/user/" + KURL::encode_string(m_username) + "/albumid/" + album_id; + QString path = postUrl; QStringList headers; MPForm form; QString auth_string = "GoogleLogin auth=" + m_token; @@ -616,8 +617,12 @@ while(!detailsNode.isNull()){ if(detailsNode.isElement()){ if(detailsNode.nodeName() == "id"){ - album_id = detailsNode.toElement().text(); - //this is what is obtained from data. + // The node data is a URL of which album id is the string following the last / + // like <id>http://www.picasaweb.google.com/.../AlbumID<id> + QString albumIdUrl = detailsNode.toElement().text(); + int index = albumIdUrl.findRev("/"); + int length = albumIdUrl.length(); + QString album_id = albumIdUrl.right(length - index - 1); fps.id = album_id; } if(detailsNode.nodeName() == "title"){ diff -Nur -x '*.orig' -x '*~' kipi-plugins-0.1.5/kipi-plugins/picasawebexport/picasawebwindow.cpp kipi-plugins-0.1.5.new/kipi-plugins/picasawebexport/picasawebwindow.cpp --- kipi-plugins-0.1.5/kipi-plugins/picasawebexport/picasawebwindow.cpp 2008-03-11 01:49:37.000000000 +1100 +++ kipi-plugins-0.1.5.new/kipi-plugins/picasawebexport/picasawebwindow.cpp 2008-09-27 23:26:56.000000000 +1000 @@ -420,6 +420,7 @@ slotAddPhotoNext(); } + void PicasawebWindow::slotAddPhotoNext() { if ( m_uploadQueue.isEmpty() ) @@ -436,8 +437,23 @@ int upload_image_size; int upload_image_quality; + // Get the albums' Id from the name. + QString albumId = ""; + QString selectedAlbumName = m_albumsListComboBox->currentText(); + + QValueList<PicasaWebAlbum>::iterator it = m_talker->m_albumsList->begin(); + while(it != m_talker->m_albumsList->end()) { + PicasaWebAlbum pwa=*it; + QString name = pwa.title; + if (name == selectedAlbumName) { + albumId = pwa.id; + break; + } + it++; + } + bool res = m_talker->addPhoto( pathComments.first, //the file path - info, m_albumsListComboBox->currentText(), + info, albumId, m_resizeCheckBox->isChecked(), m_dimensionSpinBox->value(), m_imageQualitySpinBox->value() ); if (!res)