From 110ce72a72468c30ffb9bb9b77e449314e4b10a1 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 21 Oct 2014 16:53:17 +0400 Subject: add af_comics filter for toothpastefordinner --- plugins/af_comics/filters/af_comics_tfd.php | 32 +++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 plugins/af_comics/filters/af_comics_tfd.php (limited to 'plugins/af_comics') diff --git a/plugins/af_comics/filters/af_comics_tfd.php b/plugins/af_comics/filters/af_comics_tfd.php new file mode 100644 index 000000000..c4e594551 --- /dev/null +++ b/plugins/af_comics/filters/af_comics_tfd.php @@ -0,0 +1,32 @@ +loadHTML(fetch_file_contents($article["link"])); + + $basenode = false; + + if ($doc) { + $xpath = new DOMXPath($doc); + $basenode = $xpath->query('//img[@class="comic"]')->item(0); + + if ($basenode) { + $article["content"] = $doc->saveXML($basenode); + return true; + } + } + } + + return false; + } +} +?> -- cgit v1.2.3 From 2681f684c7ceed8b3de70223582e947c4b83143b Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Wed, 3 Dec 2014 18:06:22 +0300 Subject: af_comics_pa: check node exists before trying to manipulate it --- plugins/af_comics/filters/af_comics_pa.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'plugins/af_comics') diff --git a/plugins/af_comics/filters/af_comics_pa.php b/plugins/af_comics/filters/af_comics_pa.php index a13857cc1..0848adbd0 100644 --- a/plugins/af_comics/filters/af_comics_pa.php +++ b/plugins/af_comics/filters/af_comics_pa.php @@ -56,7 +56,9 @@ class Af_Comics_Pa extends Af_ComicFilter { if ($header->parentNode) { $header->parentNode->removeChild($header); } $avatar = $xpath->query('(//div[@class="avatar"]//img)')->item(0); - $basenode->insertBefore($avatar, $basenode->firstChild); + + if ($basenode) + $basenode->insertBefore($avatar, $basenode->firstChild); $uninteresting = $xpath->query('(//div[@class="avatar"])'); foreach ($uninteresting as $i) { -- cgit v1.2.3 From 9fd581336e3044425c3d2d915ee81c8c5741d226 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Wed, 3 Dec 2014 22:43:25 +0300 Subject: fetch_file_contents: support retarded schema-less urls af_comics_dilbert: fix for new dilbert.com shenanigans --- plugins/af_comics/filters/af_comics_dilbert.php | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'plugins/af_comics') 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); -- cgit v1.2.3 From 945ecd7db66203ce117c1818b49e8204e92ceabe Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Fri, 12 Dec 2014 12:23:33 +0300 Subject: fix explosm comics plugin --- plugins/af_comics/filters/af_comics_explosm.php | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) (limited to 'plugins/af_comics') diff --git a/plugins/af_comics/filters/af_comics_explosm.php b/plugins/af_comics/filters/af_comics_explosm.php index cba7ad0ad..30b7e24c9 100644 --- a/plugins/af_comics/filters/af_comics_explosm.php +++ b/plugins/af_comics/filters/af_comics_explosm.php @@ -17,18 +17,7 @@ class Af_Comics_Explosm extends Af_ComicFilter { if ($doc) { $xpath = new DOMXPath($doc); - $entries = $xpath->query('(//img[@src])'); // we might also check for img[@class='strip'] I guess... - - $matches = array(); - - foreach ($entries as $entry) { - - if (preg_match("/(http:\/\/.*\/db\/files\/Comics\/.*)/i", $entry->getAttribute("src"), $matches)) { - - $basenode = $entry; - break; - } - } + $basenode = $xpath->query('(//img[@id="main-comic"])')->item(0); if ($basenode) { $article["content"] = $doc->saveXML($basenode); -- cgit v1.2.3 From b1bb951fb81d084429539c9d5b216dead56c9bd7 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Thu, 15 Jan 2015 09:23:45 +0300 Subject: fix for yet another dilbert changes --- plugins/af_comics/filters/af_comics_dilbert.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'plugins/af_comics') diff --git a/plugins/af_comics/filters/af_comics_dilbert.php b/plugins/af_comics/filters/af_comics_dilbert.php index 67d9788ab..5faba7eb7 100644 --- a/plugins/af_comics/filters/af_comics_dilbert.php +++ b/plugins/af_comics/filters/af_comics_dilbert.php @@ -6,7 +6,7 @@ class Af_Comics_Dilbert extends Af_ComicFilter { } function process(&$article) { - if (strpos($article["guid"], "dilbert.com") !== FALSE) { + if (strpos($article["link"], "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)"); @@ -24,7 +24,7 @@ class Af_Comics_Dilbert extends Af_ComicFilter { if ($doc) { $xpath = new DOMXPath($doc); - $basenode = $xpath->query('//div[@class="STR_Image"]')->item(0); + $basenode = $xpath->query('//img[contains(@class, "img-comic")]')->item(0); /* $entries = $xpath->query('(//img[@src])'); // we might also check for img[@class='strip'] I guess... -- cgit v1.2.3