]> git.wh0rd.org - tt-rss.git/blobdiff - include/functions2.php
allow embedding videos from youtube and vimeo natively
[tt-rss.git] / include / functions2.php
index deeaaf2109f5c93479e2d61f4042a60c451189d5..866c92ec90b0a3931d753c33ebbdc7b4a70be86e 100644 (file)
 
        }
 
+       function iframe_whitelisted($entry) {
+               $whitelist = array("youtube.com", "youtu.be", "vimeo.com");
+
+               @$src = parse_url($entry->getAttribute("src"), PHP_URL_HOST);
+
+               if ($src) {
+                       foreach ($whitelist as $w) {
+                               if ($src == $w || $src == "www.$w")
+                                       return true;
+                       }
+               }
+
+               return false;
+       }
+
        function sanitize($str, $force_remove_images = false, $owner = false, $site_url = false, $highlight_words = false, $article_id = false) {
                if (!$owner) $owner = $_SESSION["uid"];
 
 
                $entries = $xpath->query('//iframe');
                foreach ($entries as $entry) {
-                       $entry->setAttribute('sandbox', 'allow-scripts');
+                       if (!iframe_whitelisted($entry)) {
+                               $entry->setAttribute('sandbox', 'allow-scripts');
+                       }
 
                }
 
                        curl_setopt($curl, CURLOPT_PROXY, _CURL_HTTP_PROXY);
                }
 
-               if ((OPENSSL_VERSION_NUMBER >= 0x0090808f) && (OPENSSL_VERSION_NUMBER < 0x10000000)) {
-                       curl_setopt($curl, CURLOPT_SSLVERSION, 3);
-               }
-
                $html = curl_exec($curl);
 
                $status = curl_getinfo($curl);
                return LABEL_BASE_INDEX - 1 + abs($feed);
        }
 
-       function format_libxml_error($error) {
-               return T_sprintf("LibXML error %s at line %d (column %d): %s",
-                               $error->code, $error->line, $error->column,
-                               $error->message);
-       }
 ?>