From a931b91099bc354b508aa67a6dd854f9c63507cc Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sat, 17 May 2025 07:57:39 +0300 Subject: [PATCH] af_comics - fix penny arcade to new markup --- plugins/af_comics/filters/af_comics_pa.php | 50 +++------------------- 1 file changed, 5 insertions(+), 45 deletions(-) diff --git a/plugins/af_comics/filters/af_comics_pa.php b/plugins/af_comics/filters/af_comics_pa.php index 9d1ecc647..8122c0f65 100644 --- a/plugins/af_comics/filters/af_comics_pa.php +++ b/plugins/af_comics/filters/af_comics_pa.php @@ -6,13 +6,15 @@ class Af_Comics_Pa extends Af_ComicFilter { } function process(&$article) { - if (str_contains($article["link"], "penny-arcade.com") && str_contains($article["title"], "Comic:")) { + if (str_contains($article["link"], "penny-arcade.com/comic")) { $doc = new DOMDocument(); - if ($doc->loadHTML(UrlHelper::fetch(['url' => $article['link']]))) { + $body = UrlHelper::fetch(['url' => $article['link']]); + + if ($body && $doc->loadHTML($body)) { $xpath = new DOMXPath($doc); - $basenode = $xpath->query('(//div[@id="comicFrame"])')->item(0); + $basenode = $xpath->query('(//div[@class="comic-area"])')->item(0); if ($basenode) { $article["content"] = $doc->saveHTML($basenode); @@ -22,48 +24,6 @@ class Af_Comics_Pa extends Af_ComicFilter { return true; } - if (str_contains($article["link"], "penny-arcade.com") && str_contains($article["title"], "News Post:")) { - $doc = new DOMDocument(); - - $res = UrlHelper::fetch(['url' => $article['link']]); - - if ($res && $doc->loadHTML($res)) { - $xpath = new DOMXPath($doc); - $entries = $xpath->query('(//div[@class="post"])'); - - $basenode = false; - - foreach ($entries as $entry) { - $basenode = $entry; - } - - $meta = $xpath->query('(//div[@class="meta"])')->item(0); - if ($meta->parentNode) { $meta->parentNode->removeChild($meta); } - - $header = $xpath->query('(//div[@class="postBody"]/h2)')->item(0); - if ($header->parentNode) { $header->parentNode->removeChild($header); } - - $header = $xpath->query('(//div[@class="postBody"]/div[@class="comicPost"])')->item(0); - if ($header->parentNode) { $header->parentNode->removeChild($header); } - - $avatar = $xpath->query('(//div[@class="avatar"]//img)')->item(0); - - if ($basenode) - $basenode->insertBefore($avatar, $basenode->firstChild); - - $uninteresting = $xpath->query('(//div[@class="avatar"])'); - foreach ($uninteresting as $i) { - $i->parentNode->removeChild($i); - } - - if ($basenode){ - $article["content"] = $doc->saveHTML($basenode); - } - } - - return true; - } - return false; } }