diff options
author | Petr Mrázek <peterix@gmail.com> | 2017-04-07 00:27:24 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2017-04-07 00:27:24 +0200 |
commit | 795889d934e8f4ebe89be1a49a3417fd98e89be1 (patch) | |
tree | c5b0d30d425003c4b88e84a2908e63eb5ed797b9 /api/logic/wonko/tasks/BaseWonkoEntityRemoteLoadTask.cpp | |
parent | 160b5033a79e6b5ee9f3e2a001b96c677f41ddcb (diff) | |
parent | 8e58d61150b0bdbe9eb91065d36342f3004fe97b (diff) | |
download | MultiMC-795889d934e8f4ebe89be1a49a3417fd98e89be1.tar MultiMC-795889d934e8f4ebe89be1a49a3417fd98e89be1.tar.gz MultiMC-795889d934e8f4ebe89be1a49a3417fd98e89be1.tar.lz MultiMC-795889d934e8f4ebe89be1a49a3417fd98e89be1.tar.xz MultiMC-795889d934e8f4ebe89be1a49a3417fd98e89be1.zip |
Merge branch 'feature/meta' into develop
Diffstat (limited to 'api/logic/wonko/tasks/BaseWonkoEntityRemoteLoadTask.cpp')
-rw-r--r-- | api/logic/wonko/tasks/BaseWonkoEntityRemoteLoadTask.cpp | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/api/logic/wonko/tasks/BaseWonkoEntityRemoteLoadTask.cpp b/api/logic/wonko/tasks/BaseWonkoEntityRemoteLoadTask.cpp deleted file mode 100644 index 999d245b..00000000 --- a/api/logic/wonko/tasks/BaseWonkoEntityRemoteLoadTask.cpp +++ /dev/null @@ -1,126 +0,0 @@ -/* Copyright 2015-2017 MultiMC Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "BaseWonkoEntityRemoteLoadTask.h" - -#include "net/Download.h" -#include "net/HttpMetaCache.h" -#include "net/NetJob.h" -#include "wonko/format/WonkoFormat.h" -#include "wonko/WonkoUtil.h" -#include "wonko/WonkoIndex.h" -#include "wonko/WonkoVersion.h" -#include "wonko/WonkoVersionList.h" -#include "Env.h" -#include "Json.h" - -BaseWonkoEntityRemoteLoadTask::BaseWonkoEntityRemoteLoadTask(BaseWonkoEntity *entity, QObject *parent) - : Task(parent), m_entity(entity) -{ -} - -void BaseWonkoEntityRemoteLoadTask::executeTask() -{ - NetJob *job = new NetJob(name()); - - auto entry = ENV.metacache()->resolveEntry("wonko", url().toString()); - entry->setStale(true); - m_dl = Net::Download::makeCached(url(), entry); - job->addNetAction(m_dl); - connect(job, &NetJob::failed, this, &BaseWonkoEntityRemoteLoadTask::emitFailed); - connect(job, &NetJob::succeeded, this, &BaseWonkoEntityRemoteLoadTask::networkFinished); - connect(job, &NetJob::status, this, &BaseWonkoEntityRemoteLoadTask::setStatus); - connect(job, &NetJob::progress, this, &BaseWonkoEntityRemoteLoadTask::setProgress); - job->start(); -} - -void BaseWonkoEntityRemoteLoadTask::networkFinished() -{ - setStatus(tr("Parsing...")); - setProgress(0, 0); - - try - { - parse(Json::requireObject(Json::requireDocument(m_dl->getTargetFilepath(), name()), name())); - m_entity->notifyRemoteLoadComplete(); - emitSucceeded(); - } - catch (Exception &e) - { - emitFailed(tr("Unable to parse response: %1").arg(e.cause())); - } -} - -// WONKO INDEX // -WonkoIndexRemoteLoadTask::WonkoIndexRemoteLoadTask(WonkoIndex *index, QObject *parent) - : BaseWonkoEntityRemoteLoadTask(index, parent) -{ -} -QUrl WonkoIndexRemoteLoadTask::url() const -{ - return Wonko::indexUrl(); -} -QString WonkoIndexRemoteLoadTask::name() const -{ - return tr("Wonko Index"); -} -void WonkoIndexRemoteLoadTask::parse(const QJsonObject &obj) const -{ - WonkoFormat::parseIndex(obj, dynamic_cast<WonkoIndex *>(entity())); -} - -// WONKO VERSION LIST // -WonkoVersionListRemoteLoadTask::WonkoVersionListRemoteLoadTask(WonkoVersionList *list, QObject *parent) - : BaseWonkoEntityRemoteLoadTask(list, parent) -{ -} -QUrl WonkoVersionListRemoteLoadTask::url() const -{ - return Wonko::versionListUrl(list()->uid()); -} -QString WonkoVersionListRemoteLoadTask::name() const -{ - return tr("Wonko Version List for %1").arg(list()->humanReadable()); -} -void WonkoVersionListRemoteLoadTask::parse(const QJsonObject &obj) const -{ - WonkoFormat::parseVersionList(obj, list()); -} -WonkoVersionList *WonkoVersionListRemoteLoadTask::list() const -{ - return dynamic_cast<WonkoVersionList *>(entity()); -} - -// WONKO VERSION // -WonkoVersionRemoteLoadTask::WonkoVersionRemoteLoadTask(WonkoVersion *version, QObject *parent) - : BaseWonkoEntityRemoteLoadTask(version, parent) -{ -} -QUrl WonkoVersionRemoteLoadTask::url() const -{ - return Wonko::versionUrl(version()->uid(), version()->version()); -} -QString WonkoVersionRemoteLoadTask::name() const -{ - return tr("Wonko Version for %1").arg(version()->name()); -} -void WonkoVersionRemoteLoadTask::parse(const QJsonObject &obj) const -{ - WonkoFormat::parseVersion(obj, version()); -} -WonkoVersion *WonkoVersionRemoteLoadTask::version() const -{ - return dynamic_cast<WonkoVersion *>(entity()); -} |