Skip to content

Commit

Permalink
set curl to follow redirects to fix scraper error
Browse files Browse the repository at this point in the history
update to use legacy thegamesdb url
  • Loading branch information
jrassa committed Jun 6, 2018
1 parent aecd004 commit 86a2cb7
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 3 deletions.
6 changes: 3 additions & 3 deletions es-app/src/scrapers/GamesDBScraper.cpp
Expand Up @@ -84,12 +84,12 @@ void thegamesdb_generate_scraper_requests(const ScraperSearchParams& params, std
if (!cleanName.empty() && cleanName.substr(0,3) == "id:")
{
std::string gameID = cleanName.substr(3);
path = "thegamesdb.net/api/GetGame.php?id=" + HttpReq::urlEncode(gameID);
path = "legacy.thegamesdb.net/api/GetGame.php?id=" + HttpReq::urlEncode(gameID);
usingGameID = true;
}else{
if (cleanName.empty())
cleanName = params.game->getCleanName();
path += "thegamesdb.net/api/GetGamesList.php?name=" + HttpReq::urlEncode(cleanName);
path += "legacy.thegamesdb.net/api/GetGamesList.php?name=" + HttpReq::urlEncode(cleanName);
}

if(usingGameID)
Expand Down Expand Up @@ -201,7 +201,7 @@ void TheGamesDBRequest::processList(const pugi::xml_document& xmldoc, std::vecto
for(int i = 0; game && i < MAX_SCRAPER_RESULTS; i++)
{
std::string id = game.child("id").text().get();
std::string path = "thegamesdb.net/api/GetGame.php?id=" + id;
std::string path = "legacy.thegamesdb.net/api/GetGame.php?id=" + id;

mRequestQueue->push(std::unique_ptr<ScraperRequest>(new TheGamesDBRequest(results, path)));

Expand Down
27 changes: 27 additions & 0 deletions es-core/src/HttpReq.cpp
Expand Up @@ -58,6 +58,33 @@ HttpReq::HttpReq(const std::string& url)
return;
}

//set curl to handle redirects
err = curl_easy_setopt(mHandle, CURLOPT_FOLLOWLOCATION, 1L);
if(err != CURLE_OK)
{
mStatus = REQ_IO_ERROR;
onError(curl_easy_strerror(err));
return;
}

//set curl max redirects
err = curl_easy_setopt(mHandle, CURLOPT_MAXREDIRS, 2L);
if(err != CURLE_OK)
{
mStatus = REQ_IO_ERROR;
onError(curl_easy_strerror(err));
return;
}

//set curl restrict redirect protocols
err = curl_easy_setopt(mHandle, CURLOPT_REDIR_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS);
if(err != CURLE_OK)
{
mStatus = REQ_IO_ERROR;
onError(curl_easy_strerror(err));
return;
}

//tell curl how to write the data
err = curl_easy_setopt(mHandle, CURLOPT_WRITEFUNCTION, &HttpReq::write_content);
if(err != CURLE_OK)
Expand Down

0 comments on commit 86a2cb7

Please sign in to comment.