X-Git-Url: https://git.ao2.it/tweeper.git/blobdiff_plain/fa21521070e700558f7d4da3c1f7a0252b077971..76afa982386da83e9542278ad3ea736d2fd486ff:/tweeper.php?ds=sidebyside diff --git a/tweeper.php b/tweeper.php index 736b5b3..3e250b7 100644 --- a/tweeper.php +++ b/tweeper.php @@ -32,7 +32,7 @@ date_default_timezone_set('UTC'); */ class Tweeper { - private static $USER_AGENT = "Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20130405 Firefox/22.0"; + private static $userAgent = "Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20130405 Firefox/22.0"; /** * Constructor sets up {@link $generate_enclosure}. @@ -44,30 +44,30 @@ class Tweeper { /** * Convert numeric Epoch to the date format expected in a RSS document. */ - public static function epoch_to_gmdate($timestamp) { + public static function epochToRssDate($timestamp) { if (!is_numeric($timestamp) || is_nan($timestamp)) { $timestamp = 0; } - return gmdate('D, d M Y H:i:s', $timestamp) . ' GMT'; + return gmdate(DATE_RSS, $timestamp); } /** * Convert generic date string to the date format expected in a RSS document. */ - public static function str_to_gmdate($date) { + public static function strToRssDate($date) { $timestamp = strtotime($date); if (FALSE === $timestamp) { $timestamp = 0; } - return Tweeper::epoch_to_gmdate($timestamp); + return Tweeper::epochToRssDate($timestamp); } /** * Get the contents from a URL. */ - private static function get_contents($url) { + private static function getUrlContents($url) { $ch = curl_init($url); curl_setopt_array($ch, array( CURLOPT_HEADER => FALSE, @@ -77,7 +77,7 @@ class Tweeper { CURLOPT_SSL_VERIFYHOST => FALSE, CURLOPT_SSL_VERIFYPEER => FALSE, CURLOPT_HTTPHEADER => array('Accept-language: en'), - CURLOPT_USERAGENT => Tweeper::$USER_AGENT, + CURLOPT_USERAGENT => Tweeper::$userAgent, )); $contents = curl_exec($ch); curl_close($ch); @@ -88,7 +88,7 @@ class Tweeper { /** * Get the headers from a URL. */ - private static function get_info($url) { + private static function getUrlInfo($url) { $ch = curl_init($url); curl_setopt_array($ch, array( CURLOPT_HEADER => TRUE, @@ -98,7 +98,7 @@ class Tweeper { CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_SSL_VERIFYHOST => FALSE, CURLOPT_SSL_VERIFYPEER => FALSE, - CURLOPT_USERAGENT => Tweeper::$USER_AGENT, + CURLOPT_USERAGENT => Tweeper::$userAgent, )); curl_exec($ch); $url_info = curl_getinfo($ch); @@ -110,7 +110,7 @@ class Tweeper { /** * Generate an RSS element. */ - public static function generate_enclosure($url) { + public static function generateEnclosure($url) { $supported_content_types = array( "application/ogg", "audio/aac", @@ -133,7 +133,7 @@ class Tweeper { // See http://sourceforge.net/p/feedvalidator/bugs/72/ $http_url = preg_replace("/^https/", "http", $url); - $url_info = Tweeper::get_info($http_url); + $url_info = Tweeper::getUrlInfo($http_url); $supported = in_array($url_info['content_type'], $supported_content_types); if (!$supported) { @@ -155,7 +155,7 @@ class Tweeper { /** * Mimic the message from libxml.c::php_libxml_ctx_error_level() */ - private function log_xml_error($error) { + private function logXmlError($error) { $output = ""; switch ($error->level) { @@ -189,21 +189,21 @@ class Tweeper { /** * Load a stylesheet if the web site is supported. */ - private function load_stylesheet($host) { + private function loadStylesheet($host) { $stylesheet = "file://" . __DIR__ . "/rss_converter_" . $host . ".xsl"; if (FALSE === file_exists($stylesheet)) { trigger_error("Conversion to RSS not supported for $host ($stylesheet not found)", E_USER_ERROR); return NULL; } - $stylesheet_contents = $this->get_contents($stylesheet); + $stylesheet_contents = $this->getUrlContents($stylesheet); $xslDoc = new DOMDocument(); $xslDoc->loadXML($stylesheet_contents); $xsltProcessor = new XSLTProcessor(); $xsltProcessor->registerPHPFunctions(); - $xsltProcessor->setParameter('', 'generateEnclosure', $this->generate_enclosure); + $xsltProcessor->setParameter('', 'generate-enclosure', $this->generate_enclosure); $xsltProcessor->importStylesheet($xslDoc); return $xsltProcessor; @@ -212,7 +212,7 @@ class Tweeper { /** * Convert json to xml. */ - private function json_to_xml($json, $root_node_name) { + private function jsonToXml($json, $root_node_name) { // Apparently the ObjectNormalizer used afterwards is not able to handle // the stdClass object created by json_decode() with the default setting // $assoc = false; so use $assoc = true. @@ -252,7 +252,7 @@ class Tweeper { return NULL; } - return $this->json_to_xml($matches[1], 'instagram'); + return $this->jsonToXml($matches[1], 'instagram'); } /** @@ -267,7 +267,7 @@ class Tweeper { /** * Convert the HTML retrieved from the site to XML. */ - private function html_to_xml($html, $host) { + private function htmlToXml($html, $host) { $xmlDoc = new DOMDocument(); // Handle warnings and errors when loading invalid HTML. @@ -284,7 +284,7 @@ class Tweeper { } foreach (libxml_get_errors() as $xml_error) { - $this->log_xml_error($xml_error); + $this->logXmlError($xml_error); } libxml_clear_errors(); libxml_use_internal_errors($xml_errors_value); @@ -305,12 +305,12 @@ class Tweeper { // Strip the leading www. to be more forgiving on input URLs. $host = preg_replace('/^www\./', '', $url["host"]); - $xsltProcessor = $this->load_stylesheet($host); + $xsltProcessor = $this->loadStylesheet($host); if (NULL === $xsltProcessor) { return NULL; } - $html = $this->get_contents($src_url); + $html = $this->getUrlContents($src_url); if (FALSE === $html) { return NULL; } @@ -320,7 +320,7 @@ class Tweeper { $html = call_user_func_array(array($this, $preprocess_html_host_method), array($html)); } - $xmlDoc = $this->html_to_xml($html, $host); + $xmlDoc = $this->htmlToXml($html, $host); if (NULL === $xmlDoc) { return NULL; }