MCPcopy Create free account
hub / github.com/PolyMC/PolyMC / downloadFinished

Method downloadFinished

launcher/net/PasteUpload.cpp:152–250  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

150}
151
152void PasteUpload::downloadFinished()
153{
154 QByteArray data = m_reply->readAll();
155 int statusCode = m_reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
156
157 if (m_reply->error() != QNetworkReply::NetworkError::NoError)
158 {
159 emitFailed(tr("Network error: %1").arg(m_reply->errorString()));
160 m_reply.reset();
161 return;
162 }
163 else if (statusCode != 200 && statusCode != 201)
164 {
165 QString reasonPhrase = m_reply->attribute(QNetworkRequest::HttpReasonPhraseAttribute).toString();
166 emitFailed(tr("Error: %1 returned unexpected status code %2 %3").arg(m_uploadUrl).arg(statusCode).arg(reasonPhrase));
167 qCritical() << m_uploadUrl << " returned unexpected status code " << statusCode << " with body: " << data;
168 m_reply.reset();
169 return;
170 }
171
172 switch (m_pasteType)
173 {
174 case NullPointer:
175 m_pasteLink = QString::fromUtf8(data).trimmed();
176 break;
177 case Hastebin: {
178 QJsonDocument jsonDoc{QJsonDocument::fromJson(data)};
179 QJsonObject jsonObj{jsonDoc.object()};
180 if (jsonObj.contains("key") && jsonObj["key"].isString())
181 {
182 QString key = jsonDoc.object()["key"].toString();
183 m_pasteLink = m_baseUrl + "/" + key;
184 }
185 else
186 {
187 emitFailed(tr("Error: %1 returned a malformed response body").arg(m_uploadUrl));
188 qCritical() << m_uploadUrl << " returned malformed response body: " << data;
189 return;
190 }
191 break;
192 }
193 case Mclogs: {
194 QJsonDocument jsonDoc{QJsonDocument::fromJson(data)};
195 QJsonObject jsonObj{jsonDoc.object()};
196 if (jsonObj.contains("success") && jsonObj["success"].isBool())
197 {
198 bool success = jsonObj["success"].toBool();
199 if (success)
200 {
201 m_pasteLink = jsonObj["url"].toString();
202 }
203 else
204 {
205 QString error = jsonObj["error"].toString();
206 emitFailed(tr("Error: %1 returned an error: %2").arg(m_uploadUrl, error));
207 qCritical() << m_uploadUrl << " returned error: " << error;
208 qCritical() << "Response body: " << data;
209 return;

Callers

nothing calls this directly

Calls 6

fromJsonFunction · 0.85
errorMethod · 0.80
objectMethod · 0.80
resetMethod · 0.45
toStringMethod · 0.45
containsMethod · 0.45

Tested by

no test coverage detected