void ImageshackTalker::parseUploadPhotoDone(QByteArray data) { qCDebug(KIPIPLUGINS_LOG) << "ParseUploadPhotoDone data is "<<data; QJsonParseError err; QJsonDocument doc = QJsonDocument::fromJson(data, &err); if (err.error != QJsonParseError::NoError) { emit signalBusy(false); return; } QJsonObject jsonObject = doc.object(); if (m_state == IMGHCK_ADDPHOTO || m_state == IMGHCK_ADDVIDEO || (m_state == IMGHCK_ADDPHOTOGALLERY)) { if(jsonObject[QString::fromLatin1("success")].toBool()) { emit signalBusy(false); emit signalAddPhotoDone(0,QString::fromLatin1("")); } else { QJsonObject obj = jsonObject[QString::fromLatin1("error")].toObject(); emit signalAddPhotoDone(obj[QString::fromLatin1("error_code")].toInt(), obj[QString::fromLatin1("error_message")].toString()); emit signalBusy(false); } } }
void FbTalker::parseResponseAddPhoto(const QByteArray& data) { int errCode = -1; QString errMsg; QDomDocument doc("addphoto"); if (!doc.setContent(data)) return; kDebug() << "Parse Add Photo response:" << endl << data; QDomElement docElem = doc.documentElement(); if (docElem.tagName() == "photos_upload_response") { for (QDomNode node = docElem.firstChild(); !node.isNull(); node = node.nextSibling()) { if (!node.isElement()) continue; } errCode = 0; } else if (docElem.tagName() == "error_response") { errCode = parseErrorResponse(docElem, errMsg); } emit signalBusy(false); emit signalAddPhotoDone(errCode, errorToText(errCode, errMsg)); }
void ImageshackTalker::parseUploadPhotoDone(QByteArray data) { int errCode = -1; QString errMsg = ""; QDomDocument doc("addPhoto"); if (!doc.setContent(data)) return; QDomElement elem = doc.documentElement(); kDebug() << "-------------" << elem.tagName() << "------------"; kDebug() << data; if (elem.tagName() == "imginfo") { errCode = 0; } else { kDebug() << elem.tagName(); QDomNode node = elem.firstChild(); if (node.nodeName() == "error") { errCode = parseErrorResponse(elem, errMsg); } } emit signalBusy(false); emit signalAddPhotoDone(errCode, errMsg); }
void ImageshackTalker::slotResult(KJob* kjob) { m_job = 0; KIO::Job* job = static_cast<KIO::Job*>(kjob); if (job->error()) { if (m_loginInProgress) { checkRegistrationCodeDone(job->error(), job->errorString()); } else if (m_state == IMGHCK_ADDPHOTO) { emit signalBusy(false); emit signalAddPhotoDone(job->error(), job->errorString()); } return; } switch (m_state) { case IMGHCK_CHECKREGCODE: parseCheckRegistrationCode(m_buffer); break; case IMGHCK_ADDPHOTO: parseUploadPhotoDone(m_buffer); break; default: break; } }
void SmugTalker::parseResponseAddPhoto(const QByteArray& data) { // A multi-part put response (which we get now) looks like: // <?xml version="1.0" encoding="utf-8"?> // <rsp stat="ok"> // <method>smugmug.images.upload</method> // <ImageID>884775096</ImageID> // <ImageKey>L7aq5</ImageKey> // <ImageURL>http://froody.smugmug.com/Other/Test/12372176_y7yNq#884775096_L7aq5</ImageURL> // </rsp> // A simple put response (which we used to get) looks like: // <?xml version="1.0" encoding="utf-8"?> // <rsp stat="ok"> // <method>smugmug.images.upload</method> // <Image id="884790545" Key="seeQa" URL="http://froody.smugmug.com/Other/Test/12372176_y7yNq#884790545_seeQa"/> // </rsp> // Since all we care about is success or not, we can just check the rsp // stat. int errCode = -1; QString errMsg; QDomDocument doc(QString::fromLatin1("addphoto")); if (!doc.setContent(data)) return; qCDebug(KIPIPLUGINS_LOG) << "Parse Add Photo response:" << endl << data; QDomElement document = doc.documentElement(); if (document.tagName() == QString::fromLatin1("rsp")) { qCDebug(KIPIPLUGINS_LOG) << "rsp stat: " << document.attribute(QString::fromLatin1("stat")); if (document.attribute(QString::fromLatin1("stat")) == QString::fromLatin1("ok")) { errCode = 0; } else if (document.attribute(QString::fromLatin1("stat")) == QString::fromLatin1("fail")) { QDomElement error = document.firstChildElement(QString::fromLatin1("err")); errCode = error.attribute(QString::fromLatin1("code")).toInt(); errMsg = error.attribute(QString::fromLatin1("msg")); qCDebug(KIPIPLUGINS_LOG) << "error" << errCode << ":" << errMsg << endl; } } else { errCode = -2; errMsg = QString::fromLatin1("Malformed response from smugmug: ") + document.tagName(); qCDebug(KIPIPLUGINS_LOG) << "Error:" << errCode << errMsg; } emit signalBusy(false); emit signalAddPhotoDone(errCode, errorToText(errCode, errMsg)); }
void ImageshackTalker::slotFinished(QNetworkReply* reply) { if (reply != m_reply) { return; } m_reply = 0; if (reply->error() != QNetworkReply::NoError) { if (m_state == IMGHCK_AUTHENTICATING) { checkRegistrationCodeDone(reply->error(), reply->errorString()); emit signalBusy(false); } else if (m_state == IMGHCK_GETGALLERIES) { emit signalBusy(false); emit signalGetGalleriesDone(reply->error(), reply->errorString()); } else if (m_state == IMGHCK_ADDPHOTO || m_state == IMGHCK_ADDPHOTOGALLERY) { emit signalBusy(false); emit signalAddPhotoDone(reply->error(), reply->errorString()); } m_state = IMGHCK_DONOTHING; reply->deleteLater(); return; } m_buffer.append(reply->readAll()); switch (m_state) { case IMGHCK_AUTHENTICATING: parseAccessToken(m_buffer); break; case IMGHCK_ADDPHOTOGALLERY: parseAddPhotoToGalleryDone(m_buffer); break; case IMGHCK_ADDVIDEO: case IMGHCK_ADDPHOTO: parseUploadPhotoDone(m_buffer); break; case IMGHCK_GETGALLERIES: parseGetGalleries(m_buffer); break; default: break; } reply->deleteLater(); }
void ImageshackTalker::slotResult(KJob* kjob) { KIO::Job* job = static_cast<KIO::Job*>(kjob); if (job->error()) { if (m_loginInProgress) { checkRegistrationCodeDone(job->error(), job->errorString()); m_loginInProgress = false; } else if (m_state == IMGHCK_GETGALLERIES) { emit signalBusy(false); emit signalGetGalleriesDone(job->error(), job->errorString()); } else if (m_state == IMGHCK_ADDPHOTO || m_state == IMGHCK_ADDPHOTOGALLERY) { emit signalBusy(false); emit signalAddPhotoDone(job->error(), job->errorString()); } m_state = IMGHCK_DONOTHING; m_job = 0; return; } int step; switch (m_state) { case IMGHCK_CHECKREGCODE: m_job = 0; parseCheckRegistrationCode(m_buffer); break; case IMGHCK_ADDPHOTOGALLERY: step = job->property("k_step").toInt(); if (step == STEP_UPLOADITEM) parseUploadPhotoDone(m_buffer); else parseAddPhotoToGalleryDone(m_buffer); break; case IMGHCK_ADDVIDEO: case IMGHCK_ADDPHOTO: m_job = 0; parseUploadPhotoDone(m_buffer); break; case IMGHCK_GETGALLERIES: m_job = 0; parseGetGalleries(m_buffer); break; default: break; } }
void ImageshackTalker::parseAddPhotoToGalleryDone(QByteArray data) { //int errCode = -1; QString errMsg = QString::fromLatin1(""); QDomDocument domDoc(QString::fromLatin1("galleryXML")); qCDebug(KIPIPLUGINS_LOG) << data; if (!domDoc.setContent(data)) return; QDomElement rootElem = domDoc.documentElement(); if (rootElem.isNull() || rootElem.tagName() != QString::fromLatin1("gallery")) { // TODO error cheking } else { emit signalBusy(false); emit signalAddPhotoDone(0, QString::fromLatin1("")); } }
void SmugTalker::slotFinished(QNetworkReply* reply) { if (reply != m_reply) { return; } m_reply = 0; if (reply->error() != QNetworkReply::NoError) { if (m_state == SMUG_LOGIN) { m_sessionID.clear(); m_user.clear(); emit signalBusy(false); emit signalLoginDone(reply->error(), reply->errorString()); } else if (m_state == SMUG_ADDPHOTO) { emit signalBusy(false); emit signalAddPhotoDone(reply->error(), reply->errorString()); } else if (m_state == SMUG_GETPHOTO) { emit signalBusy(false); emit signalGetPhotoDone(reply->error(), reply->errorString(), QByteArray()); } else { emit signalBusy(false); QMessageBox::critical(QApplication::activeWindow(), i18n("Error"), reply->errorString()); } reply->deleteLater(); return; } m_buffer.append(reply->readAll()); switch(m_state) { case (SMUG_LOGIN): parseResponseLogin(m_buffer); break; case (SMUG_LOGOUT): parseResponseLogout(m_buffer); break; case (SMUG_LISTALBUMS): parseResponseListAlbums(m_buffer); break; case (SMUG_LISTPHOTOS): parseResponseListPhotos(m_buffer); break; case (SMUG_LISTALBUMTEMPLATES): parseResponseListAlbumTmpl(m_buffer); break; case (SMUG_LISTCATEGORIES): parseResponseListCategories(m_buffer); break; case (SMUG_LISTSUBCATEGORIES): parseResponseListSubCategories(m_buffer); break; case (SMUG_CREATEALBUM): parseResponseCreateAlbum(m_buffer); break; case (SMUG_ADDPHOTO): parseResponseAddPhoto(m_buffer); break; case (SMUG_GETPHOTO): // all we get is data of the image emit signalBusy(false); emit signalGetPhotoDone(0, QString(), m_buffer); break; } reply->deleteLater(); }
void FbTalker::slotResult(KJob* kjob) { m_job = 0; KIO::Job* job = static_cast<KIO::Job*>(kjob); if (job->error()) { if (m_loginInProgress) { authenticationDone(job->error(), job->errorText()); } else if (m_state == FB_ADDPHOTO) { emit signalBusy(false); emit signalAddPhotoDone(job->error(), job->errorText()); } else if (m_state == FB_GETPHOTO) { emit signalBusy(false); emit signalGetPhotoDone(job->error(), job->errorText(), QByteArray()); } else { emit signalBusy(false); job->ui()->setWindow(m_parent); job->ui()->showErrorMessage(); } return; } switch(m_state) { case(FB_EXCHANGESESSION): parseExchangeSession(m_buffer); break; case(FB_GETLOGGEDINUSER): parseResponseGetLoggedInUser(m_buffer); break; case(FB_GETUSERINFO): case(FB_GETUSERINFO_FRIENDS): parseResponseGetUserInfo(m_buffer); break; case(FB_GETUPLOADPERM): parseResponseGetUploadPermission(m_buffer); break; case(FB_LOGOUT): parseResponseLogout(m_buffer); break; case(FB_LISTFRIENDS): parseResponseListFriends(m_buffer); break; case(FB_LISTALBUMS): parseResponseListAlbums(m_buffer); break; case(FB_LISTPHOTOS): parseResponseListPhotos(m_buffer); break; case(FB_CREATEALBUM): parseResponseCreateAlbum(m_buffer); break; case(FB_ADDPHOTO): parseResponseAddPhoto(m_buffer); break; case(FB_GETPHOTO): // all we get is data of the image emit signalBusy(false); emit signalGetPhotoDone(0, QString(), m_buffer); break; } }
void ImageshackTalker::parseUploadPhotoDone(QByteArray data) { int errCode = -1; QString errMsg = ""; QDomDocument doc("addPhoto"); if (!doc.setContent(data)) return; QDomElement elem = doc.documentElement(); if (!elem.isNull() && elem.tagName() == "imginfo") { errCode = 0; } else { kDebug() << elem.tagName(); QDomNode node = elem.firstChild(); if (node.nodeName() == "error") { errCode = parseErrorResponse(elem, errMsg); } } if (m_state == IMGHCK_ADDPHOTO || m_state == IMGHCK_ADDVIDEO || (m_state == IMGHCK_ADDPHOTOGALLERY && errCode)) { emit signalBusy(false); emit signalAddPhotoDone(errCode, errMsg); } else if (m_state == IMGHCK_ADDPHOTOGALLERY) { QDomElement chld = elem.firstChildElement("files"); if (chld.isNull()) { emit signalBusy(false); emit signalAddPhotoDone(-2, "Error parsing server response. No information about uploaded item"); } else { QString server = chld.attribute("server"); QString bucket = chld.attribute("bucket"); QDomElement image = chld.firstChildElement("image"); if (image.isNull() || server.isEmpty() || bucket.isEmpty() || !image.hasChildNodes()) { emit signalBusy(false); emit signalAddPhotoDone(-3, "Error parsing server response. No image, server or bucket returned"); } else { QString imgPath = QString("img") + server + "/" + bucket + "/" + image.firstChild().toText().data(); KUrl url(m_job->property("k_galleryName").toString()); url.addQueryItem("action", "add"); url.addQueryItem("image[]", imgPath); url.addQueryItem("cookie", m_imageshack->registrationCode()); kDebug() << url.url(); m_job->kill(); KIO::Job *job = KIO::get(url, KIO::NoReload, KIO::HideProgressInfo); m_job = job; m_job->setProperty("k_step", STEP_ADDITEMTOGALLERY); m_buffer.resize(0); connect(job, SIGNAL(data(KIO::Job*,QByteArray)), this, SLOT(data(KIO::Job*,QByteArray))); connect(job, SIGNAL(result(KJob*)), this, SLOT(slotResult(KJob*))); } } }
void SmugTalker::slotResult(KJob* kjob) { m_job = 0; KIO::Job* job = static_cast<KIO::Job*>(kjob); if (job->error()) { if (m_state == SMUG_LOGIN) { m_sessionID.clear(); m_user.clear(); emit signalBusy(false); emit signalLoginDone(job->error(), job->errorText()); } else if (m_state == SMUG_ADDPHOTO) { emit signalBusy(false); emit signalAddPhotoDone(job->error(), job->errorText()); } else if (m_state == SMUG_GETPHOTO) { emit signalBusy(false); emit signalGetPhotoDone(job->error(), job->errorText(), QByteArray()); } else { emit signalBusy(false); job->ui()->setWindow(m_parent); job->ui()->showErrorMessage(); } return; } switch(m_state) { case(SMUG_LOGIN): parseResponseLogin(m_buffer); break; case(SMUG_LOGOUT): parseResponseLogout(m_buffer); break; case(SMUG_LISTALBUMS): parseResponseListAlbums(m_buffer); break; case(SMUG_LISTPHOTOS): parseResponseListPhotos(m_buffer); break; case(SMUG_LISTALBUMTEMPLATES): parseResponseListAlbumTmpl(m_buffer); break; case(SMUG_LISTCATEGORIES): parseResponseListCategories(m_buffer); break; case(SMUG_LISTSUBCATEGORIES): parseResponseListSubCategories(m_buffer); break; case(SMUG_CREATEALBUM): parseResponseCreateAlbum(m_buffer); break; case(SMUG_ADDPHOTO): parseResponseAddPhoto(m_buffer); break; case(SMUG_GETPHOTO): // all we get is data of the image emit signalBusy(false); emit signalGetPhotoDone(0, QString(), m_buffer); break; } }