]>
Commit | Line | Data |
---|---|---|
901dd67a AD |
1 | <?php |
2 | class Af_Comics_Pa extends Af_ComicFilter { | |
3 | ||
4 | function supported() { | |
5 | return array("Penny Arcade"); | |
6 | } | |
7 | ||
8 | function process(&$article) { | |
901dd67a | 9 | if (strpos($article["link"], "penny-arcade.com") !== FALSE && strpos($article["title"], "Comic:") !== FALSE) { |
901dd67a | 10 | |
901dd67a | 11 | $doc = new DOMDocument(); |
901dd67a | 12 | |
21ce7d9e | 13 | if ($doc->loadHTML(fetch_file_contents($article["link"]))) { |
901dd67a AD |
14 | $xpath = new DOMXPath($doc); |
15 | $basenode = $xpath->query('(//div[@id="comicFrame"])')->item(0); | |
16 | ||
17 | if ($basenode) { | |
f3774b9d | 18 | $article["content"] = $doc->saveHTML($basenode); |
901dd67a AD |
19 | } |
20 | } | |
901dd67a AD |
21 | |
22 | return true; | |
23 | } | |
24 | ||
25 | if (strpos($article["link"], "penny-arcade.com") !== FALSE && strpos($article["title"], "News Post:") !== FALSE) { | |
901dd67a | 26 | $doc = new DOMDocument(); |
901dd67a | 27 | |
21ce7d9e | 28 | if ($doc->loadHTML(fetch_file_contents($article["link"]))) { |
901dd67a AD |
29 | $xpath = new DOMXPath($doc); |
30 | $entries = $xpath->query('(//div[@class="post"])'); | |
31 | ||
32 | $basenode = false; | |
33 | ||
34 | foreach ($entries as $entry) { | |
35 | $basenode = $entry; | |
36 | } | |
37 | ||
38 | $meta = $xpath->query('(//div[@class="meta"])')->item(0); | |
39 | if ($meta->parentNode) { $meta->parentNode->removeChild($meta); } | |
40 | ||
41 | $header = $xpath->query('(//div[@class="postBody"]/h2)')->item(0); | |
42 | if ($header->parentNode) { $header->parentNode->removeChild($header); } | |
43 | ||
44 | $header = $xpath->query('(//div[@class="postBody"]/div[@class="comicPost"])')->item(0); | |
45 | if ($header->parentNode) { $header->parentNode->removeChild($header); } | |
46 | ||
47 | $avatar = $xpath->query('(//div[@class="avatar"]//img)')->item(0); | |
2681f684 AD |
48 | |
49 | if ($basenode) | |
50 | $basenode->insertBefore($avatar, $basenode->firstChild); | |
901dd67a AD |
51 | |
52 | $uninteresting = $xpath->query('(//div[@class="avatar"])'); | |
53 | foreach ($uninteresting as $i) { | |
54 | $i->parentNode->removeChild($i); | |
55 | } | |
56 | ||
57 | if ($basenode){ | |
f3774b9d | 58 | $article["content"] = $doc->saveHTML($basenode); |
901dd67a AD |
59 | } |
60 | } | |
901dd67a AD |
61 | |
62 | return true; | |
63 | } | |
64 | ||
65 | return false; | |
66 | } | |
f3774b9d | 67 | } |