}
} while (curl_errno($ch) == CURLE_OPERATION_TIMEDOUT && ++$attempt < Tweeper::$maxConnectionRetries);
+ $response_code = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
+ if (FALSE === $response_code) {
+ trigger_error(curl_error($ch), E_USER_WARNING);
+ return FALSE;
+ }
+
+ if ($response_code >= 400) {
+ trigger_error("HTTP reponse code $response_code", E_USER_WARNING);
+ return FALSE;
+ }
+
return $ret;
}
// remove it to silence an error message.
unset($data["knobs"]);
+ // Stop here in case Instagram redirected to the login page, this can
+ // happen when too many consecutive requests have been made from the same
+ // IP.
+ if (array_key_exists("LoginAndSignupPage", $data["entry_data"])) {
+ trigger_error("Cannot open instagram page: redirected to Login page.\n", E_USER_WARNING);
+ return NULL;
+ }
+
$json = json_encode($data);
return Tweeper::jsonToXml($json, 'instagram');
$get_xml_host_method = 'getXml' . Tweeper::toUpperCamelCase($host, '.');
if (method_exists($this, $get_xml_host_method)) {
$xml_data = call_user_func_array([$this, $get_xml_host_method], [$html]);
+ if (NULL === $xml_data) {
+ return NULL;
+ }
$xmlDoc->loadXML($xml_data);
}
else {