upload image to my own server
Some checks failed
Packaging(Linux) / Build deb on debian-10 amd64 (push) Has been cancelled
Packaging(Linux) / Build deb on debian-11 amd64 (push) Has been cancelled
Packaging(Linux) / Build deb on ubuntu-20.04 amd64 (push) Has been cancelled
Packaging(Linux) / Build deb on ubuntu-22.04 amd64 (push) Has been cancelled
Packaging(Linux) / Build deb on debian-10 arm64 (push) Has been cancelled
Packaging(Linux) / Build deb on debian-11 arm64 (push) Has been cancelled
Packaging(Linux) / Build deb on debian-10 armhf (push) Has been cancelled
Packaging(Linux) / Build deb on debian-11 armhf (push) Has been cancelled
Packaging(Linux) / Build rpm on fedora-35 x86_64 (push) Has been cancelled
Packaging(Linux) / Build rpm on fedora-36 x86_64 (push) Has been cancelled
Packaging(Linux) / Build rpm on opensuse-leap-15.2 x86_64 (push) Has been cancelled
Packaging(Linux) / Build appimage on ubuntu-20.04 (push) Has been cancelled
Packaging(Linux) / Build flatpak on ubuntu-20.04 (push) Has been cancelled
Packaging(Linux) / Build snap on ubuntu-20.04 (push) Has been cancelled
Packaging(MacOS) / macOS Monterey 12 (push) Has been cancelled
Packaging(Windows) / VS 2019 x64-installer (push) Has been cancelled
Packaging(Windows) / VS 2019 x64-portable (push) Has been cancelled
Packaging(Windows) / VS 2019 x86-installer (push) Has been cancelled
Packaging(Windows) / VS 2019 x86-portable (push) Has been cancelled
Building(CMake) / ubuntu-22.04 (push) Has been cancelled
Building(CMake) / windows-build (map[artifact:Windows-MSVC.tar.xz cc:cl cxx:cl environment_script:C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Auxiliary/Build/vcvars64.bat name:Windows 2019 MSVC os:windows-2019]) (push) Has been cancelled
test-clang-format / build (push) Has been cancelled

This commit is contained in:
Ben Kyd
2023-01-18 00:46:35 +00:00
parent 685d0ee84b
commit 773f25a57b

View File

@@ -1,6 +1,7 @@
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: 2017-2019 Alejandro Sirgo Rica & Contributors // SPDX-FileCopyrightText: 2017-2019 Alejandro Sirgo Rica & Contributors
#include <iostream>
#include "imguruploader.h" #include "imguruploader.h"
#include "src/utils/confighandler.h" #include "src/utils/confighandler.h"
#include "src/utils/filenamehandler.h" #include "src/utils/filenamehandler.h"
@@ -35,7 +36,7 @@ void ImgurUploader::handleReply(QNetworkReply* reply)
QJsonDocument response = QJsonDocument::fromJson(reply->readAll()); QJsonDocument response = QJsonDocument::fromJson(reply->readAll());
QJsonObject json = response.object(); QJsonObject json = response.object();
QJsonObject data = json[QStringLiteral("data")].toObject(); QJsonObject data = json[QStringLiteral("data")].toObject();
setImageURL(data[QStringLiteral("link")].toString()); setImageURL(data[QStringLiteral("url")].toString());
auto deleteToken = data[QStringLiteral("deletehash")].toString(); auto deleteToken = data[QStringLiteral("deletehash")].toString();
@@ -64,23 +65,28 @@ void ImgurUploader::upload()
QByteArray byteArray; QByteArray byteArray;
QBuffer buffer(&byteArray); QBuffer buffer(&byteArray);
pixmap().save(&buffer, "PNG"); pixmap().save(&buffer, "PNG");
QString encoded = buffer.data().toBase64();
QJsonObject obj;
obj["img"] = "data:image/png;base64," + encoded + "==";
QJsonDocument doc(obj);
QByteArray data = doc.toJson();
QUrlQuery urlQuery; QUrlQuery urlQuery;
urlQuery.addQueryItem(QStringLiteral("title"), QStringLiteral("")); urlQuery.addQueryItem(QStringLiteral("title"), QStringLiteral(""));
QString description = FileNameHandler().parsedPattern(); QString description = FileNameHandler().parsedPattern();
urlQuery.addQueryItem(QStringLiteral("description"), description); urlQuery.addQueryItem(QStringLiteral("description"), description);
QUrl url(QStringLiteral("https://api.imgur.com/3/image")); QUrl url(QStringLiteral("http://127.0.0.1/image"));
url.setQuery(urlQuery); url.setQuery(urlQuery);
QNetworkRequest request(url); QNetworkRequest request(url);
request.setHeader(QNetworkRequest::ContentTypeHeader, request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
"application/application/x-www-form-urlencoded");
request.setRawHeader("Authorization", request.setRawHeader("Authorization",
QStringLiteral("Client-ID %1") QStringLiteral("Client-ID %1")
.arg(ConfigHandler().uploadClientSecret()) .arg(ConfigHandler().uploadClientSecret())
.toUtf8()); .toUtf8());
m_NetworkAM->post(request, byteArray); m_NetworkAM->post(request, data);
} }
void ImgurUploader::deleteImage(const QString& fileName, void ImgurUploader::deleteImage(const QString& fileName,