File limits

This commit is contained in:
ArsenArsen 2017-05-17 22:59:33 +02:00
parent 075b4fce3d
commit 43cfb821b3
3 changed files with 14 additions and 0 deletions

View File

@ -107,6 +107,11 @@ CustomUploader::CustomUploader(QString absFilePath) {
returnPathspec = returnPsVal.toString(); returnPathspec = returnPsVal.toString();
} else } else
error(absFilePath, "return invalid"); 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() { QString CustomUploader::name() {
@ -279,6 +284,10 @@ void CustomUploader::doUpload(QPixmap *pixmap) {
} }
} break; } break;
} }
if (limit != -1 && data.size() > limit) {
notifications::notify("KShare Custom Uploader " + name(), "File limit exceeded!");
return;
}
switch (method) { switch (method) {
case HttpMethod::POST: case HttpMethod::POST:
if (returnPathspec == "|") { if (returnPathspec == "|") {

View File

@ -20,6 +20,7 @@ class CustomUploader : public Uploader {
QMap<QString, QString> types; QMap<QString, QString> types;
private: private:
double limit;
QString desc; QString desc;
QString uName; QString uName;
RequestFormat format = RequestFormat::JSON; RequestFormat format = RequestFormat::JSON;

View File

@ -11,6 +11,10 @@ void ImgurUploader::doUpload(QPixmap *pixmap) {
QByteArray byteArray; QByteArray byteArray;
QBuffer buffer(&byteArray); QBuffer buffer(&byteArray);
pixmap->save(&buffer, "PNG"); 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"), ioutils::postJson(QUrl("https://api.imgur.com/3/image"),
QList<QPair<QString, QString>>() QList<QPair<QString, QString>>()
<< QPair<QString, QString>("Content-Type", "application/x-www-form-urlencoded") << QPair<QString, QString>("Content-Type", "application/x-www-form-urlencoded")