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

Function getProjectInfo

launcher/modplatform/flame/FlameCheckUpdate.cpp:22–64  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

20}
21
22ModPlatform::IndexedPack getProjectInfo(ModPlatform::IndexedVersion& ver_info)
23{
24 ModPlatform::IndexedPack pack;
25
26 QEventLoop loop;
27
28 auto get_project_job = new NetJob("Flame::GetProjectJob", APPLICATION->network());
29
30 auto response = new QByteArray();
31 auto url = QString("https://api.curseforge.com/v1/mods/%1").arg(ver_info.addonId.toString());
32 auto dl = Net::Download::makeByteArray(url, response);
33 get_project_job->addNetAction(dl);
34
35 QObject::connect(get_project_job, &NetJob::succeeded, [response, &pack]() {
36 QJsonParseError parse_error{};
37 QJsonDocument doc = QJsonDocument::fromJson(*response, &parse_error);
38 if (parse_error.error != QJsonParseError::NoError) {
39 qWarning() << "Error while parsing JSON response from FlameCheckUpdate at " << parse_error.offset
40 << " reason: " << parse_error.errorString();
41 qWarning() << *response;
42 return;
43 }
44
45 try {
46 auto doc_obj = Json::requireObject(doc);
47 auto data_obj = Json::requireObject(doc_obj, "data");
48 FlameMod::loadIndexedPack(pack, data_obj);
49 } catch (Json::JsonException& e) {
50 qWarning() << e.cause();
51 qDebug() << doc;
52 }
53 });
54
55 QObject::connect(get_project_job, &NetJob::finished, [&loop, get_project_job] {
56 get_project_job->deleteLater();
57 loop.quit();
58 });
59
60 get_project_job->start();
61 loop.exec();
62
63 return pack;
64}
65
66ModPlatform::IndexedVersion getFileInfo(int addonId, int fileId)
67{

Callers 1

executeTaskMethod · 0.85

Calls 10

QStringClass · 0.85
fromJsonFunction · 0.85
requireObjectFunction · 0.85
loadIndexedPackFunction · 0.85
networkMethod · 0.80
addNetActionMethod · 0.80
causeMethod · 0.80
toStringMethod · 0.45
startMethod · 0.45
execMethod · 0.45

Tested by

no test coverage detected