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);
}
$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(
}
public function tweep($uri) {
- $html = $this->get_contents($uri);
+ $html = Tweeper::get_contents($uri);
$xmlDoc = new DOMDocument();
$xmlDoc->loadHTML($html);