| 68 | } |
| 69 | |
| 70 | void PasteUpload::executeTask() |
| 71 | { |
| 72 | QNetworkRequest request{QUrl(m_uploadUrl)}; |
| 73 | QNetworkReply *rep{}; |
| 74 | |
| 75 | request.setHeader(QNetworkRequest::UserAgentHeader, APPLICATION->getUserAgentUncached().toUtf8()); |
| 76 | |
| 77 | switch (m_pasteType) { |
| 78 | case NullPointer: { |
| 79 | QHttpMultiPart *multiPart = |
| 80 | new QHttpMultiPart{QHttpMultiPart::FormDataType}; |
| 81 | |
| 82 | QHttpPart filePart; |
| 83 | filePart.setBody(m_text); |
| 84 | filePart.setHeader(QNetworkRequest::ContentTypeHeader, "text/plain"); |
| 85 | filePart.setHeader(QNetworkRequest::ContentDispositionHeader, |
| 86 | "form-data; name=\"file\"; filename=\"log.txt\""); |
| 87 | multiPart->append(filePart); |
| 88 | |
| 89 | rep = APPLICATION->network()->post(request, multiPart); |
| 90 | multiPart->setParent(rep); |
| 91 | |
| 92 | break; |
| 93 | } |
| 94 | case Hastebin: { |
| 95 | request.setHeader(QNetworkRequest::UserAgentHeader, APPLICATION->getUserAgentUncached().toUtf8()); |
| 96 | rep = APPLICATION->network()->post(request, m_text); |
| 97 | break; |
| 98 | } |
| 99 | case Mclogs: { |
| 100 | QUrlQuery postData; |
| 101 | postData.addQueryItem("content", m_text); |
| 102 | request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); |
| 103 | rep = APPLICATION->network()->post(request, postData.toString().toUtf8()); |
| 104 | break; |
| 105 | } |
| 106 | case PasteGG: { |
| 107 | QJsonObject obj; |
| 108 | QJsonDocument doc; |
| 109 | request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); |
| 110 | |
| 111 | obj.insert("expires", QDateTime::currentDateTimeUtc().addDays(100).toString(Qt::DateFormat::ISODate)); |
| 112 | |
| 113 | QJsonArray files; |
| 114 | QJsonObject logFileInfo; |
| 115 | QJsonObject logFileContentInfo; |
| 116 | logFileContentInfo.insert("format", "text"); |
| 117 | logFileContentInfo.insert("value", QString::fromUtf8(m_text)); |
| 118 | logFileInfo.insert("name", "log.txt"); |
| 119 | logFileInfo.insert("content", logFileContentInfo); |
| 120 | files.append(logFileInfo); |
| 121 | |
| 122 | obj.insert("files", files); |
| 123 | |
| 124 | doc.setObject(obj); |
| 125 | rep = APPLICATION->network()->post(request, doc.toJson()); |
| 126 | break; |
| 127 | } |