]> git.wh0rd.org - tt-rss.git/commitdiff
fetch_file_contents: support retarded schema-less urls
authorAndrew Dolgov <noreply@fakecake.org>
Wed, 3 Dec 2014 19:43:25 +0000 (22:43 +0300)
committerAndrew Dolgov <noreply@fakecake.org>
Wed, 3 Dec 2014 19:43:25 +0000 (22:43 +0300)
af_comics_dilbert: fix for new dilbert.com shenanigans

include/functions.php
plugins/af_comics/filters/af_comics_dilbert.php

index 1dbf004daf3c699e4bc03b65b98b0b2ec00c6a2f..769c27af9f13040c415c667df7ff351b7cc3d415 100644 (file)
                $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;
index f0e31cf889addedb7b5f6806febb51355599b53d..67d9788ab44de3efd6dcd680fdfbdfad416dd937 100644 (file)
@@ -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);