From 9fd581336e3044425c3d2d915ee81c8c5741d226 Mon Sep 17 00:00:00 2001
From: Andrew Dolgov <noreply@fakecake.org>
Date: Wed, 3 Dec 2014 22:43:25 +0300
Subject: [PATCH] fetch_file_contents: support retarded schema-less urls
 af_comics_dilbert: fix for new dilbert.com shenanigans

---
 include/functions.php                         |  3 +++
 .../af_comics/filters/af_comics_dilbert.php   | 22 ++++++++++++++-----
 2 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/include/functions.php b/include/functions.php
index 1dbf004da..769c27af9 100644
--- a/include/functions.php
+++ b/include/functions.php
@@ -357,6 +357,9 @@
 		$url = ltrim($url, ' ');
 		$url = str_replace(' ', '%20', $url);
 
+		if (strpos($url, "//") === 0)
+			$url = 'http:' . $url;
+
 		if (!defined('NO_CURL') && function_exists('curl_init')) {
 
 			$fetch_curl_used = true;
diff --git a/plugins/af_comics/filters/af_comics_dilbert.php b/plugins/af_comics/filters/af_comics_dilbert.php
index f0e31cf88..67d9788ab 100644
--- a/plugins/af_comics/filters/af_comics_dilbert.php
+++ b/plugins/af_comics/filters/af_comics_dilbert.php
@@ -6,23 +6,33 @@ class Af_Comics_Dilbert extends Af_ComicFilter {
 	}
 
 	function process(&$article) {
-		$owner_uid = $article["owner_uid"];
-
 		if (strpos($article["guid"], "dilbert.com") !== FALSE) {
+				$res = fetch_file_contents($article["link"], false, false, false,
+					 false, false, 0,
+					 "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)");
+
+				global $fetch_last_error_content;
+
+				if (!$res && $fetch_last_error_content)
+					$res = $fetch_last_error_content;
+
 				$doc = new DOMDocument();
-				@$doc->loadHTML(fetch_file_contents($article["link"]));
+				@$doc->loadHTML($res);
 
 				$basenode = false;
 
 				if ($doc) {
 					$xpath = new DOMXPath($doc);
-					$entries = $xpath->query('(//img[@src])'); // we might also check for img[@class='strip'] I guess...
+
+					$basenode = $xpath->query('//div[@class="STR_Image"]')->item(0);
+
+					/* $entries = $xpath->query('(//img[@src])'); // we might also check for img[@class='strip'] I guess...
 
 					$matches = array();
 
 					foreach ($entries as $entry) {
 
-						if (preg_match("/dyn\/str_strip\/.*zoom\.gif$/", $entry->getAttribute("src"), $matches)) {
+						if (preg_match("/dyn\/str_strip\/.*strip\.gif$/", $entry->getAttribute("src"), $matches)) {
 
 							$entry->setAttribute("src",
 								rewrite_relative_url("http://dilbert.com/",
@@ -31,7 +41,7 @@ class Af_Comics_Dilbert extends Af_ComicFilter {
 							$basenode = $entry;
 							break;
 						}
-					}
+					} */
 
 					if ($basenode) {
 						$article["content"] = $doc->saveXML($basenode);
-- 
GitLab