diff --git a/uploaders/customuploader.cpp b/uploaders/customuploader.cpp index e694fbd..ebb0bd5 100644 --- a/uploaders/customuploader.cpp +++ b/uploaders/customuploader.cpp @@ -107,6 +107,11 @@ CustomUploader::CustomUploader(QString absFilePath) { returnPathspec = returnPsVal.toString(); } else error(absFilePath, "return invalid"); + QJsonValue fileLimit = obj["fileLimit"]; + if (!fileLimit.isNull() && !fileLimit.isUndefined()) { + if (!fileLimit.isDouble()) error(absFilePath, "fileLimit not double"); + limit = fileLimit.toDouble(); + } } QString CustomUploader::name() { @@ -279,6 +284,10 @@ void CustomUploader::doUpload(QPixmap *pixmap) { } } break; } + if (limit != -1 && data.size() > limit) { + notifications::notify("KShare Custom Uploader " + name(), "File limit exceeded!"); + return; + } switch (method) { case HttpMethod::POST: if (returnPathspec == "|") { diff --git a/uploaders/customuploader.hpp b/uploaders/customuploader.hpp index 11edb50..2dbc587 100644 --- a/uploaders/customuploader.hpp +++ b/uploaders/customuploader.hpp @@ -20,6 +20,7 @@ class CustomUploader : public Uploader { QMap types; private: + double limit; QString desc; QString uName; RequestFormat format = RequestFormat::JSON; diff --git a/uploaders/default/imguruploader.cpp b/uploaders/default/imguruploader.cpp index f552b36..ab09682 100644 --- a/uploaders/default/imguruploader.cpp +++ b/uploaders/default/imguruploader.cpp @@ -11,6 +11,10 @@ void ImgurUploader::doUpload(QPixmap *pixmap) { QByteArray byteArray; QBuffer buffer(&byteArray); pixmap->save(&buffer, "PNG"); + if (buffer.size() > 1e+7) { + notifications::notify("KShare imgur Uploader ", "Failed upload! Image too big"); + return; + } ioutils::postJson(QUrl("https://api.imgur.com/3/image"), QList>() << QPair("Content-Type", "application/x-www-form-urlencoded")