X-Git-Url: https://git.ao2.it/tweeper.git/blobdiff_plain/f82b9f8a651307d7c6ba52c2d1d7da3dcc696189..2e84774ad219234c1e770507d24f24d1a96e1f42:/tweeper.php diff --git a/tweeper.php b/tweeper.php index bdba04d..6cdf8cf 100644 --- a/tweeper.php +++ b/tweeper.php @@ -54,35 +54,40 @@ function get_url_info($url) function generate_enclosure($url) { + $supported_content_types = array( + "application/ogg", + "audio/aac", + "audio/mp4", + "audio/mpeg", + "audio/vorbis", + "audio/wav", + "audio/webm", + "audio/x-midi", + "image/gif", + "image/jpeg", + "video/avi", + "video/mp4", + "video/mpeg", + "video/ogg", + ); + $url_info = get_url_info($url); - switch($url_info['content_type']) { - case "video/avi": - case "image/gif": - case "image/jpeg": - case "audio/x-midi": - case "audio/mpeg": - case "video/mpeg": - case "audio/vorbis": - case "application/ogg": - case "audio/webm": - case "audio/aac": - case "audio/mp4": - case "audio/wav": - case "video/mp4": - case "video/ogg": - $dom = new DomDocument(); - $enc = $dom->createElement('enclosure'); - $enc->setAttribute( 'url', $url_info['url']); - $enc->setAttribute( 'length', $url_info['download_content_length']); - $enc->setAttribute( 'type', $url_info['content_type']); - - $dom->appendChild($enc); - - return $dom->saveXML($enc); - default: - return; + $supported = in_array($url_info['content_type'], $supported_content_types); + if (!$supported) { + error_log("Unsupported enclosure content type \"" . $url_info['content_type'] . "\" for URL: " . $url_info['url']); + return ''; } + + $dom = new DomDocument(); + $enc = $dom->createElement('enclosure'); + $enc->setAttribute('url', $url_info['url']); + $enc->setAttribute('length', $url_info['download_content_length']); + $enc->setAttribute('type', $url_info['content_type']); + + $dom->appendChild($enc); + + return $dom->saveXML($enc); } @@ -100,7 +105,7 @@ class Tweeper { $this->xsltProcessor->importStylesheet($xslDoc); } - private function get_contents($uri) { + private static function get_contents($uri) { # https://www.wjsams.com/c/docs/Wiki/Php-HowToSetUserAgentOnFileGetContents $opts = array( 'http' => array( @@ -118,7 +123,7 @@ class Tweeper { } public function tweep($uri) { - $html = $this->get_contents($uri); + $html = Tweeper::get_contents($uri); $xmlDoc = new DOMDocument(); $xmlDoc->loadHTML($html);