From 9fd581336e3044425c3d2d915ee81c8c5741d226 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov 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);