]> git.wh0rd.org - tt-rss.git/blob - plugins/af_natgeo/init.php
simplify article filter chaining mechanism, do not try to process already stored...
[tt-rss.git] / plugins / af_natgeo / init.php
1 <?php
2 class Af_NatGeo extends Plugin {
3
4 private $host;
5
6 function about() {
7 return array(1.0,
8 "Fetch content of National Geographic feeds",
9 "fox");
10 }
11
12 function init($host) {
13 $this->host = $host;
14
15 $host->add_hook($host::HOOK_ARTICLE_FILTER, $this);
16 }
17
18 function hook_article_filter($article) {
19 $owner_uid = $article["owner_uid"];
20
21 if (strpos($article["link"], "nationalgeographic.com") !== FALSE) {
22 if (strpos($article["plugin_data"], "natgeo,$owner_uid:") === FALSE) {
23
24 $doc = new DOMDocument();
25 @$doc->loadHTML(fetch_file_contents($article["link"]));
26
27 $basenode = false;
28
29 if ($doc) {
30 $xpath = new DOMXPath($doc);
31
32 $basenode = $doc->getElementById("content_mainA");
33
34 $trash = $xpath->query("//*[@class='aside' or @id='livefyre' or @id='powered_by_livefyre' or @class='social_buttons']");
35
36 foreach ($trash as $t) {
37 $t->parentNode->removeChild($t);
38 }
39
40 if ($basenode) {
41 $article["content"] = $doc->saveXML($basenode);
42 $article["plugin_data"] = "natgeo,$owner_uid:" . $article["plugin_data"];
43 }
44 }
45 } else if (isset($article["stored"]["content"])) {
46 $article["content"] = $article["stored"]["content"];
47 }
48 }
49
50 return $article;
51 }
52
53 function api_version() {
54 return 2;
55 }
56 }
57 ?>