diff --git a/src/core/flameshot.cpp b/src/core/flameshot.cpp index c7eadcad..a0e27094 100644 --- a/src/core/flameshot.cpp +++ b/src/core/flameshot.cpp @@ -393,14 +393,14 @@ void Flameshot::exportCapture(const QPixmap& capture, if (tasks & CR::UPLOAD) { if (!ConfigHandler().uploadWithoutConfirmation()) { - auto* dialog = new ImgUploadDialog(); - if (dialog->exec() == QDialog::Rejected) { - return; - } + // auto* dialog = new ImgUploadDialog(); + // if (dialog->exec() == QDialog::Rejected) { + // return; + // } } ImgUploaderBase* widget = ImgUploaderManager().uploader(capture); - widget->show(); + // widget->show(); widget->activateWindow(); // NOTE: lambda can't capture 'this' because it might be destroyed later CR::ExportTask tasks = tasks; @@ -411,7 +411,8 @@ void Flameshot::exportCapture(const QPixmap& capture, FlameshotDaemon::copyToClipboard( url.toString(), tr("URL copied to clipboard.")); } - widget->showPostUploadDialog(); + // widget->showPostUploadDialog(); + widget->close(); } }); } diff --git a/src/tools/imgupload/storages/imgur/imguruploader.cpp b/src/tools/imgupload/storages/imgur/imguruploader.cpp index d6748b5a..ae80c659 100644 --- a/src/tools/imgupload/storages/imgur/imguruploader.cpp +++ b/src/tools/imgupload/storages/imgur/imguruploader.cpp @@ -16,6 +16,8 @@ #include #include #include +#include +#include ImgurUploader::ImgurUploader(const QPixmap& capture, QWidget* parent) : ImgUploaderBase(capture, parent) @@ -32,25 +34,8 @@ void ImgurUploader::handleReply(QNetworkReply* reply) spinner()->deleteLater(); m_currentImageName.clear(); if (reply->error() == QNetworkReply::NoError) { - QJsonDocument response = QJsonDocument::fromJson(reply->readAll()); - QJsonObject json = response.object(); - QJsonObject data = json[QStringLiteral("data")].toObject(); - setImageURL(data[QStringLiteral("link")].toString()); - - auto deleteToken = data[QStringLiteral("deletehash")].toString(); - - // save history - m_currentImageName = imageURL().toString(); - int lastSlash = m_currentImageName.lastIndexOf("/"); - if (lastSlash >= 0) { - m_currentImageName = m_currentImageName.mid(lastSlash + 1); - } - - // save image to history - History history; - m_currentImageName = - history.packFileName("imgur", deleteToken, m_currentImageName); - history.save(pixmap(), m_currentImageName); + QString img_url = QString(reply->readAll().toStdString().c_str()).trimmed(); + setImageURL(img_url); emit uploadOk(imageURL()); } else { @@ -65,22 +50,18 @@ void ImgurUploader::upload() QBuffer buffer(&byteArray); pixmap().save(&buffer, "PNG"); - QUrlQuery urlQuery; - urlQuery.addQueryItem(QStringLiteral("title"), QStringLiteral("")); - QString description = FileNameHandler().parsedPattern(); - urlQuery.addQueryItem(QStringLiteral("description"), description); + QHttpPart fileDataPart; + fileDataPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"file\"; filename=\"image.png\"")); + fileDataPart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/octet-stream")); + fileDataPart.setBody(byteArray); + + QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType); + multiPart->append(fileDataPart); - QUrl url(QStringLiteral("https://api.imgur.com/3/image")); - url.setQuery(urlQuery); + QUrl url(QStringLiteral("https://0x0.st/")); QNetworkRequest request(url); - request.setHeader(QNetworkRequest::ContentTypeHeader, - "application/application/x-www-form-urlencoded"); - request.setRawHeader("Authorization", - QStringLiteral("Client-ID %1") - .arg(ConfigHandler().uploadClientSecret()) - .toUtf8()); - m_NetworkAM->post(request, byteArray); + m_NetworkAM->post(request, multiPart); } void ImgurUploader::deleteImage(const QString& fileName,