Treat tarball archives in patch nodes as installers

This commit is contained in:
Sude 2014-07-24 16:49:02 +03:00
parent 01d8479d18
commit 6ed5da2fb3

View File

@ -420,15 +420,31 @@ gameDetails API::getGameDetails(const std::string& game_name, const unsigned int
continue;
}
game.patches.push_back(
gameFile( false, /* patches don't have "updated" flag */
patch["id"].isInt() ? std::to_string(patch["id"].asInt()) : patch["id"].asString(),
patch["name"].asString(),
patch["link"].asString(),
patch["size"].asString(),
GlobalConstants::LANGUAGES[i].languageId
)
);
// Treat tarball archives as installers
if (patch["link"].asString().find("/linux/") != std::string::npos && patch["name"].asString() == "Tarball archive")
{
game.installers.push_back(
gameFile( patch["notificated"].isInt() ? patch["notificated"].asInt() : std::stoi(patch["notificated"].asString()),
patch["id"].isInt() ? std::to_string(patch["id"].asInt()) : patch["id"].asString(),
patch["name"].asString(),
patch["link"].asString(),
patch["size"].asString(),
GlobalConstants::LANGUAGES[i].languageId
)
);
}
else
{
game.patches.push_back(
gameFile( false, /* patches don't have "updated" flag */
patch["id"].isInt() ? std::to_string(patch["id"].asInt()) : patch["id"].asString(),
patch["name"].asString(),
patch["link"].asString(),
patch["size"].asString(),
GlobalConstants::LANGUAGES[i].languageId
)
);
}
}
}
else // Patch is a single file
@ -450,15 +466,31 @@ gameDetails API::getGameDetails(const std::string& game_name, const unsigned int
continue;
}
game.patches.push_back(
gameFile( false, /* patches don't have "updated" flag */
patchnode["id"].isInt() ? std::to_string(patchnode["id"].asInt()) : patchnode["id"].asString(),
patchnode["name"].asString(),
patchnode["link"].asString(),
patchnode["size"].asString(),
GlobalConstants::LANGUAGES[i].languageId
)
);
// Treat tarball archives as installers
if (patchnode["link"].asString().find("/linux/") != std::string::npos && patchnode["name"].asString() == "Tarball archive")
{
game.installers.push_back(
gameFile( patchnode["notificated"].isInt() ? patchnode["notificated"].asInt() : std::stoi(patchnode["notificated"].asString()),
patchnode["id"].isInt() ? std::to_string(patchnode["id"].asInt()) : patchnode["id"].asString(),
patchnode["name"].asString(),
patchnode["link"].asString(),
patchnode["size"].asString(),
GlobalConstants::LANGUAGES[i].languageId
)
);
}
else
{
game.patches.push_back(
gameFile( false, /* patches don't have "updated" flag */
patchnode["id"].isInt() ? std::to_string(patchnode["id"].asInt()) : patchnode["id"].asString(),
patchnode["name"].asString(),
patchnode["link"].asString(),
patchnode["size"].asString(),
GlobalConstants::LANGUAGES[i].languageId
)
);
}
}
}
}