2017-04-23 15:05:48 +02:00
|
|
|
#include "imguruploader.hpp"
|
|
|
|
|
|
|
|
#include <QBuffer>
|
|
|
|
#include <QJsonObject>
|
|
|
|
#include <QJsonValue>
|
|
|
|
#include <io/ioutils.hpp>
|
2017-04-25 22:17:36 +02:00
|
|
|
#include <notifications.hpp>
|
2017-04-23 15:05:48 +02:00
|
|
|
#include <screenshotutil.hpp>
|
|
|
|
|
2017-06-06 17:05:34 +02:00
|
|
|
void ImgurUploader::doUpload(QByteArray byteArray, QString) {
|
2017-06-04 22:58:29 +02:00
|
|
|
if (byteArray.size() > 1e+7) {
|
2017-05-17 22:59:33 +02:00
|
|
|
notifications::notify("KShare imgur Uploader ", "Failed upload! Image too big");
|
|
|
|
return;
|
|
|
|
}
|
2017-05-09 17:26:00 +02:00
|
|
|
ioutils::postJson(QUrl("https://api.imgur.com/3/image"),
|
2017-06-04 22:58:29 +02:00
|
|
|
QList<QPair<QString, QString>>()
|
|
|
|
<< QPair<QString, QString>("Content-Type", "application/x-www-form-urlencoded")
|
|
|
|
<< QPair<QString, QString>("Authorization", "Client-ID 8a98f183fc895da"),
|
2017-05-13 22:39:05 +02:00
|
|
|
byteArray, [](QJsonDocument res, QByteArray, QNetworkReply *) {
|
2017-05-09 17:26:00 +02:00
|
|
|
QString result = res.object()["data"].toObject()["link"].toString();
|
2017-06-13 00:38:32 +02:00
|
|
|
if (!result.isEmpty()) {
|
|
|
|
screenshotutil::toClipboard(result);
|
|
|
|
notifications::notify("KShare imgur Uploader ", "Uploaded to imgur!");
|
|
|
|
} else {
|
|
|
|
notifications::notify("KShare imgur Uploader ",
|
|
|
|
QString("Failed upload! imgur said: HTTP %2: %1")
|
|
|
|
.arg(res.object()["data"].toObject()["error"].toString())
|
|
|
|
.arg(QString::number(res.object()["status"].toInt())));
|
|
|
|
}
|
2017-05-09 17:26:00 +02:00
|
|
|
});
|
2017-04-23 15:05:48 +02:00
|
|
|
}
|