summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland Angerer <dev@rangerer.at>2013-06-19 11:31:31 +0200
committerRoland Angerer <dev@rangerer.at>2013-06-19 12:03:15 +0200
commit64a06e0c873b4f6429e130c66056a39d72c5c575 (patch)
treeb204eeb027dbc5fd407513afa175fdbb2f44b116
parentff7ae3c171aa6562891e9defad88be60a22e20d4 (diff)
downloadyafpp-64a06e0c873b4f6429e130c66056a39d72c5c575.tar.gz
yafpp-64a06e0c873b4f6429e130c66056a39d72c5c575.zip
added cleanup option for nodes fetched via xpath
-rw-r--r--README.md5
-rw-r--r--init.php9
2 files changed, 13 insertions, 1 deletions
diff --git a/README.md b/README.md
index ed7365b..7c529ab 100644
--- a/README.md
+++ b/README.md
@@ -50,7 +50,8 @@ A configuration looks like this:
},
"blog.beetlebum.de": {
"type": "xpath",
- "xpath": "div[@class='entry-content']"
+ "xpath": "div[@class='entry-content']",
+ "cleanup": [ "header", "footer" ],
}
}
@@ -62,6 +63,8 @@ The *array key* is part of the URL of the article links(!). You'll notice the `g
The **xpath** value is the actual Xpath-element to fetch from the linked page. Omit the leading `//` - they will get prepended automatically.
+If **type** was set to `xpath' there is an additional option **cleanup** available. Its an array of Xpath-elements (relative to the fetched node) to remove from the fetched node. Omit the leading `//` - they will get prepended automatically.
+
**force_charset** allows to override automatic charset detection. If it is omitted, the charset will be parsed from the HTTP headers or loadHTML() will decide on its own.
diff --git a/init.php b/init.php
index 3b65ce3..e99744a 100644
--- a/init.php
+++ b/init.php
@@ -116,6 +116,15 @@ class Af_Feedmod extends Plugin implements IHandler
if ($entries->length > 0) $basenode = $entries->item(0);
if ($basenode) {
+ // remove nodes from cleanup configuration
+ if (isset($config['cleanup'])) {
+ foreach ($config['cleanup'] as $cleanup) {
+ $nodelist = $xpath->query('//'.$cleanup, $basenode);
+ foreach ($nodelist as $node) {
+ $node->parentNode->removeChild($node);
+ }
+ }
+ }
$article['content'] = $doc->saveXML($basenode);
$article['plugin_data'] = "feedmod,$owner_uid:" . $article['plugin_data'];
}