/*************************************************************************** * Copyright (C) 2009 - 2013 by Artem 'DOOMer' Galichkin * * doomer3d@gmail.com * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * ***************************************************************************/ #include "uploader_imgur.h" #include Uploader_ImgUr::Uploader_ImgUr(QObject* parent): Uploader(parent) { qDebug() << " create Imgur uploader"; } Uploader_ImgUr::~Uploader_ImgUr() { qDebug() << " kill Imgur uploader"; } /*! * Start upload process */ void Uploader_ImgUr::startUploading() { createData(); createRequest(imageData, apiUrl()); _request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); Uploader::startUploading(); } /*! * Return url for upload image */ QUrl Uploader_ImgUr::apiUrl() { return QUrl("http://api.imgur.com/2/upload"); } /*! * Prepare image data for uploading */ void Uploader_ImgUr::createData(bool inBase64) { inBase64 = true; Uploader::createData(inBase64); // create data for upload QByteArray uploadData; uploadData.append(QString("key=").toUtf8()); uploadData.append(QUrl::toPercentEncoding("6920a141451d125b3e1357ce0e432409")); uploadData.append(QString("&image=").toUtf8()); uploadData.append(QUrl::toPercentEncoding(this->imageData)); this->imageData = uploadData; } /*! * Process server reply data */ void Uploader_ImgUr::replyFinished(QNetworkReply* reply) { if (reply->error() == QNetworkReply::NoError) { QByteArray replyXmalText = reply->readAll(); // creating list of element names QVector listXmlNodes; listXmlNodes << "original" << "imgur_page" << "large_thumbnail" << "small_square" << "delete_page"; QMap replyXmlMap = parseResultStrings(listXmlNodes, replyXmalText); _uploadedStrings[UL_DIRECT_LINK].first = replyXmlMap["original"]; _uploadedStrings[UL_HTML_CODE].first = ""; _uploadedStrings[UL_BB_CODE].first = "[img]" + replyXmlMap["original"] +"[/img]"; _uploadedStrings[UL_HTML_CODE_THUMB].first = ""; _uploadedStrings[UL_BB_CODE_THUMB].first = "[url=" + replyXmlMap["original"] + "][img]"+ replyXmlMap["small_square"] +"[/img][/url]"; _uploadedStrings[UL_DELETE_URL].first = replyXmlMap["delete_page"]; qDebug() << "done" << _uploadedStrings[UL_DIRECT_LINK].first; Q_EMIT uploadDoneStr(_uploadedStrings[UL_DIRECT_LINK].first); Q_EMIT uploadDone(); } else { Q_EMIT uploadFail(reply->errorString().toLatin1()); } reply->deleteLater(); }