mirror of
https://github.com/RetroDECK/ES-DE.git
synced 2024-11-25 23:55:38 +00:00
Implemented handling of invalid ScreenScraper responses.
This commit is contained in:
parent
e6b43288a7
commit
6ec1898e97
|
@ -223,6 +223,24 @@ void ScreenScraperRequest::process(const std::unique_ptr<HttpReq>& req,
|
|||
}
|
||||
|
||||
processGame(doc, results);
|
||||
|
||||
// For some files, screenscraper.fr consistently responds with the game name 'ZZZ(notgame)',
|
||||
// or sometimes in the longer format 'ZZZ(notgame):Fichier Annexes - Non Jeux'. For instance
|
||||
// this can happen for configuration files for DOS games such as 'setup.exe' and similar.
|
||||
// We definitely don't want to save these to our gamelists, so we simply skip these
|
||||
// responses. There also seems to be some cases where this type of response is randomly
|
||||
// returned instead of a valid game name, and retrying a second time returns the proper
|
||||
// name. But it's basically impossible to know which is the case, and we really can't
|
||||
// compensate for errors in the scraper service.
|
||||
for (auto it = results.cbegin(); it != results.cend(); it++) {
|
||||
std::string gameName = Utils::String::toUpper((*it).mdl.get("name"));
|
||||
if (gameName.substr(0, 12) == "ZZZ(NOTGAME)") {
|
||||
LOG(LogWarning) << "ScreenScraperRequest - Received \"ZZZ(notgame)\" as game name, "
|
||||
"ignoring response.";
|
||||
results.pop_back();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ScreenScraperRequest::processGame(const pugi::xml_document& xmldoc,
|
||||
|
|
Loading…
Reference in a new issue