CURLOPT_USERAGENT => Tweeper::$userAgent,
));
$contents = curl_exec($ch);
+ if (FALSE === $contents) {
+ trigger_error(curl_error($ch));
+ }
curl_close($ch);
return $contents;
));
curl_exec($ch);
$url_info = curl_getinfo($ch);
+ if (FALSE === $url_info) {
+ trigger_error(curl_error($ch));
+ }
curl_close($ch);
return $url_info;
*/
public static function generateEnclosure($url) {
$supported_content_types = array(
+ "application/octet-stream",
"application/ogg",
+ "application/pdf",
"audio/aac",
"audio/mp4",
"audio/mpeg",
"video/ogg",
);
- // The RSS specification says that the enclosure element URL must be http.
- // See http://sourceforge.net/p/feedvalidator/bugs/72/
- $http_url = preg_replace("/^https/", "http", $url);
-
- $url_info = Tweeper::getUrlInfo($http_url);
+ $url_info = Tweeper::getUrlInfo($url);
$supported = in_array($url_info['content_type'], $supported_content_types);
if (!$supported) {
return '';
}
+ // The RSS specification says that the enclosure element URL must be http.
+ // See http://sourceforge.net/p/feedvalidator/bugs/72/
+ $http_url = preg_replace("/^https/", "http", $url_info['url']);
+
$dom = new DOMDocument();
$enc = $dom->createElement('enclosure');
- $enc->setAttribute('url', $url_info['url']);
+ $enc->setAttribute('url', $http_url);
$enc->setAttribute('length', $url_info['download_content_length']);
$enc->setAttribute('type', $url_info['content_type']);
return NULL;
}
+ $scheme = $url["scheme"];
+ if (!in_array($scheme, array("http", "https"))) {
+ trigger_error("unsupported scheme: $scheme", E_USER_ERROR);
+ return NULL;
+ }
+
// Strip the leading www. to be more forgiving on input URLs.
$host = preg_replace('/^www\./', '', $url["host"]);
}
$tweeper = new Tweeper($options['generate_enclosure']);
-echo $tweeper->tweep($options['src_url']);
+$output = $tweeper->tweep($options['src_url']);
+if (is_null($output)) {
+ exit(1);
+}
+echo $output;