From 60ffa4f7f61cb8c815244644c633d84646d21104 Mon Sep 17 00:00:00 2001 From: Antonio Ospite Date: Mon, 23 May 2016 15:32:27 +0200 Subject: [PATCH] tweeper.php: fix a problem with https URLs ending up in the enclosure element When the remote host forces every URLs to be redirected to https, the info returned by Tweeper::getUrlInfo() would contain an https URL, which will end up being used in the "url" attribute of the enclosure element, and this is invalid according to the RSS specification. So make sure that an http URL is actually used for the "url" attribute. --- tweeper.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tweeper.php b/tweeper.php index f7e0a88..94ea05f 100644 --- a/tweeper.php +++ b/tweeper.php @@ -139,11 +139,7 @@ class Tweeper { "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) { @@ -151,9 +147,13 @@ class Tweeper { 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']); -- 2.1.4