From 9e6f42b94faa75cacb3eae0a23393441f34e61af Mon Sep 17 00:00:00 2001 From: Dominik Pfennig <dominik@suma-ev.de> Date: Mon, 20 Mar 2017 10:02:28 +0100 Subject: [PATCH] Video-Tags und noscript Tags funktionieren nun --- app/HtmlDocument.php | 33 ++++++++++++++++++++++++ app/Http/Controllers/ProxyController.php | 1 + 2 files changed, 34 insertions(+) diff --git a/app/HtmlDocument.php b/app/HtmlDocument.php index 065913b..206b446 100644 --- a/app/HtmlDocument.php +++ b/app/HtmlDocument.php @@ -238,6 +238,29 @@ class HtmlDocument extends Document $style->nodeValue = $cssElement->getResult(); } + foreach ($dom->getElementsByTagName("noscript") as $noscript) { + $this->DOMRemove($noscript); + + } + + # Nun alle Video Tags + foreach ($dom->getElementsByTagName("video") as $video) { + if ($video->hasAttribute("src")) { + # Convert all relative Links to absolute Ones + $video->setAttribute("src", $this->convertRelativeToAbsoluteLink($video->getAttribute("src"))); + # Convert all Links to the proxified Version + # All of this Links should NOT target to the top Level + $video->setAttribute("src", $this->proxifyUrl($video->getAttribute("src"), false)); + } + if ($video->hasAttribute("poster")) { + # Convert all relative Links to absolute Ones + $video->setAttribute("poster", $this->convertRelativeToAbsoluteLink($video->getAttribute("poster"))); + # Convert all Links to the proxified Version + # All of this Links should NOT target to the top Level + $video->setAttribute("poster", $this->proxifyUrl($video->getAttribute("poster"), false)); + } + } + # Abschließend gehen wir noch einmal alle Tags durch foreach ($dom->getElementsByTagName('*') as $el) { if ($el->getAttribute("style") !== "") { @@ -270,4 +293,14 @@ class HtmlDocument extends Document { $link->setAttribute("target", $newTarget); } + + private function DOMRemove(\DOMNode $from) + { + $sibling = $from->firstChild; + do { + $next = $sibling->nextSibling; + $from->parentNode->insertBefore($sibling, $from); + } while ($sibling = $next); + $from->parentNode->removeChild($from); + } } diff --git a/app/Http/Controllers/ProxyController.php b/app/Http/Controllers/ProxyController.php index 3bb75c4..338c7fe 100644 --- a/app/Http/Controllers/ProxyController.php +++ b/app/Http/Controllers/ProxyController.php @@ -178,6 +178,7 @@ class ProxyController extends Controller case 'font/eot': case 'image/vnd.microsoft.icon': case 'application/vnd.ms-fontobject': + case 'application/x-font-ttf': # Nothing to do with Images: Just return them break; case 'text/css': -- GitLab