]> git.wh0rd.org Git - tt-rss.git/commitdiff
add af plugins for nagional geographic and sciam
authorAndrew Dolgov <fox@madoka.volgo-balt.ru>
Fri, 2 Aug 2013 06:49:00 +0000 (10:49 +0400)
committerAndrew Dolgov <fox@madoka.volgo-balt.ru>
Fri, 2 Aug 2013 06:49:00 +0000 (10:49 +0400)
plugins/af_natgeo/init.php [new file with mode: 0644]
plugins/af_sciam/init.php [new file with mode: 0644]

diff --git a/plugins/af_natgeo/init.php b/plugins/af_natgeo/init.php
new file mode 100644 (file)
index 0000000..7dc7116
--- /dev/null
@@ -0,0 +1,49 @@
+<?php
+class Af_NatGeo extends Plugin {
+
+       private $host;
+
+       function about() {
+               return array(1.0,
+                       "Fetch content of National Geographic feeds",
+                       "fox");
+       }
+
+       function init($host) {
+               $this->host = $host;
+
+               $host->add_hook($host::HOOK_ARTICLE_FILTER, $this);
+       }
+
+       function hook_article_filter($article) {
+               $owner_uid = $article["owner_uid"];
+
+               if (strpos($article["link"], "nationalgeographic.com") !== FALSE) {
+                       if (strpos($article["plugin_data"], "natgeo,$owner_uid:") === FALSE) {
+
+                               $doc = new DOMDocument();
+                               @$doc->loadHTML(fetch_file_contents($article["link"]));
+
+                               $basenode = false;
+
+                               if ($doc) {
+                                       $basenode = $doc->getElementById("content_mainA");
+
+                                       if ($basenode) {
+                                               $article["content"] = $doc->saveXML($basenode);
+                                               $article["plugin_data"] = "natgeo,$owner_uid:" . $article["plugin_data"];
+                                       }
+                               }
+                       } else if (isset($article["stored"]["content"])) {
+                               $article["content"] = $article["stored"]["content"];
+                       }
+               }
+
+               return $article;
+       }
+
+       function api_version() {
+               return 2;
+       }
+}
+?>
diff --git a/plugins/af_sciam/init.php b/plugins/af_sciam/init.php
new file mode 100644 (file)
index 0000000..cb55594
--- /dev/null
@@ -0,0 +1,49 @@
+<?php
+class Af_SciAm extends Plugin {
+
+       private $host;
+
+       function about() {
+               return array(1.0,
+                       "Fetch content of Scientific American feeds",
+                       "fox");
+       }
+
+       function init($host) {
+               $this->host = $host;
+
+               $host->add_hook($host::HOOK_ARTICLE_FILTER, $this);
+       }
+
+       function hook_article_filter($article) {
+               $owner_uid = $article["owner_uid"];
+
+               if (strpos($article["link"], "scientificamerican.com") !== FALSE) {
+                       if (strpos($article["plugin_data"], "sciam,$owner_uid:") === FALSE) {
+
+                               $doc = new DOMDocument();
+                               @$doc->loadHTML(fetch_file_contents($article["link"]));
+
+                               $basenode = false;
+
+                               if ($doc) {
+                                       $basenode = $doc->getElementById("article_content");
+
+                                       if ($basenode) {
+                                               $article["content"] = $doc->saveXML($basenode);
+                                               $article["plugin_data"] = "sciam,$owner_uid:" . $article["plugin_data"];
+                                       }
+                               }
+                       } else if (isset($article["stored"]["content"])) {
+                               $article["content"] = $article["stored"]["content"];
+                       }
+               }
+
+               return $article;
+       }
+
+       function api_version() {
+               return 2;
+       }
+}
+?>