X-Git-Url: https://git.ao2.it/tweeper.git/blobdiff_plain/fae2bb79789ff07d7cdeb6b609b3fd9b43b107b8..357d7a4955830d690a16d52a6f91e351c813ab48:/src/Tweeper.php diff --git a/src/Tweeper.php b/src/Tweeper.php index 10e07e3..4a32f56 100644 --- a/src/Tweeper.php +++ b/src/Tweeper.php @@ -36,7 +36,7 @@ date_default_timezone_set('UTC'); */ class Tweeper { - private static $userAgent = "Mozilla/5.0 (Linux; U; Android 4.3; en-us; SM-N900T Build/JSS15J)"; + private static $userAgent = "APIs-Google (+https://developers.google.com/webmasters/APIs-Google.html)"; private static $maxConnectionTimeout = 5; private static $maxConnectionRetries = 5; @@ -87,46 +87,6 @@ class Tweeper { } /** - * Convert Twitter mobile date to the date format expected in a RSS document. - */ - public static function twitterToRssDate($date) { - // Twitter uses relative timestamps in minutes for recent tweets. - if (preg_match('/^(\d+)m$/', $date, $matches)) { - $timestamp = strtotime("+" . $matches[1] . " min", time()); - if (FALSE === $timestamp) { - $timestamp = 0; - } - } - else { - /* - * In case the time is specified put it after the date, - * to make it recognized by strptime(). - */ - if (preg_match('/(.*) - (.*)/', $date, $matches)) { - $date = $matches[2] . " " . $matches[1]; - } - - $timestamp = strtotime($date); - if (FALSE === $timestamp) { - $timestamp = 0; - } - - /* - * The twitter mobile UI usually only specifies the month and the day, so - * strtotime($date) may interpret the date as being in the future. - * - * If the date is in the future it is probably in the same day but in the - * previous year. - */ - if ($timestamp > time()) { - $timestamp = strtotime('-1 years', $timestamp); - } - } - - return Tweeper::epochToRssDate($timestamp); - } - - /** * Convert string to UpperCamelCase. */ public static function toUpperCamelCase($str, $delim = ' ') { @@ -157,7 +117,7 @@ class Tweeper { /** * Get the contents from a URL. */ - private static function getUrlContents($url) { + private static function getUrlContents($url, $user_agent = NULL) { $ch = curl_init($url); curl_setopt_array($ch, [ CURLOPT_HEADER => FALSE, @@ -167,7 +127,7 @@ class Tweeper { CURLOPT_COOKIEFILE => "", CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_HTTPHEADER => ['Accept-language: en'], - CURLOPT_USERAGENT => Tweeper::$userAgent, + CURLOPT_USERAGENT => isset($user_agent) ? $user_agent : Tweeper::$userAgent, ]); $contents = Tweeper::curlExec($ch); curl_close($ch); @@ -178,7 +138,7 @@ class Tweeper { /** * Get the headers from a URL. */ - private static function getUrlInfo($url) { + private static function getUrlInfo($url, $user_agent = NULL) { $ch = curl_init($url); curl_setopt_array($ch, [ CURLOPT_HEADER => TRUE, @@ -187,7 +147,7 @@ class Tweeper { // Follow http redirects to get the real URL. CURLOPT_FOLLOWLOCATION => TRUE, CURLOPT_RETURNTRANSFER => TRUE, - CURLOPT_USERAGENT => Tweeper::$userAgent, + CURLOPT_USERAGENT => isset($user_agent) ? $user_agent : Tweeper::$userAgent, ]); $ret = Tweeper::curlExec($ch); @@ -403,7 +363,7 @@ class Tweeper { return NULL; } - $stylesheet_contents = Tweeper::getUrlContents($stylesheet); + $stylesheet_contents = file_get_contents($stylesheet); if (FALSE === $stylesheet_contents) { trigger_error("Cannot open $stylesheet", E_USER_WARNING); return NULL;