diff --git a/app/HtmlDocument.php b/app/HtmlDocument.php index 0318431c0e6fcc743739f2c5d0d418aa195747b8..065913b9aaeac9e31f82c45a16e18c246671c398 100644 --- a/app/HtmlDocument.php +++ b/app/HtmlDocument.php @@ -165,6 +165,35 @@ class HtmlDocument extends Document $img->setAttribute("srcset", $srcset); } } + # All Source Tags + foreach ($dom->getElementsByTagName('source') as $img) { + if ($img->hasAttribute("src")) { + # Convert all Image src's to Absolute Links + $img->setAttribute("src", $this->convertRelativeToAbsoluteLink($img->getAttribute("src"))); + # Convert all Image Sources to proxified Versions + $img->setAttribute("src", $this->proxifyUrl($img->getAttribute("src"), false)); + + } + # Some Images might contain a srcset (Different Images for different resolutions) + # Syntax would be i.e. srcset="medium.jpg 1000w, large.jpg 2000w" + $srcset = $img->getAttribute("srcset"); + if ($srcset !== "") { + $images = explode(",", $srcset); + foreach ($images as $index => $set) { + $set = trim($set); + $parts = preg_split("/\s+/si", $set); + # $parts[0] is the Image Path + # It could be relative so convert that one: + $parts[0] = $this->convertRelativeToAbsoluteLink($parts[0]); + + # And now Proxify it: + $parts[0] = $this->proxifyUrl($parts[0], false); + $images[$index] = implode(" ", $parts); + } + $srcset = implode(",", $images); + $img->setAttribute("srcset", $srcset); + } + } # Alle Meta Tags foreach ($dom->getElementsByTagName('meta') as $meta) { diff --git a/app/Http/Controllers/ProxyController.php b/app/Http/Controllers/ProxyController.php index fb4ea0413e66ff6601f5003bec989bb0a9b8c52b..3bb75c413be67e260534fd4a1c2496602f9de2bc 100644 --- a/app/Http/Controllers/ProxyController.php +++ b/app/Http/Controllers/ProxyController.php @@ -177,6 +177,7 @@ class ProxyController extends Controller case 'image/x-icon': case 'font/eot': case 'image/vnd.microsoft.icon': + case 'application/vnd.ms-fontobject': # Nothing to do with Images: Just return them break; case 'text/css':