summaryrefslogtreecommitdiffstats
path: root/vendor/fguillot/picofeed/picofeed
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2015-01-27 09:31:40 +0100
committerBernhard Posselt <dev@bernhard-posselt.com>2015-01-27 09:31:40 +0100
commit8241180c6ce0cb19255d70a3394f891e08182542 (patch)
tree325996a06d9896567957871cc0f34865c46118da /vendor/fguillot/picofeed/picofeed
parent73f65c8fbadbdd2098448e77b6d3f0464ad8613e (diff)
dont use picofeed submodule
Diffstat (limited to 'vendor/fguillot/picofeed/picofeed')
m---------vendor/fguillot/picofeed0
-rwxr-xr-xvendor/fguillot/picofeed/picofeed124
2 files changed, 124 insertions, 0 deletions
diff --git a/vendor/fguillot/picofeed b/vendor/fguillot/picofeed
deleted file mode 160000
-Subproject 0a1d0d3950f7f047dc8fb1d80aa6296e15f306d
diff --git a/vendor/fguillot/picofeed/picofeed b/vendor/fguillot/picofeed/picofeed
new file mode 100755
index 000000000..3055ae195
--- /dev/null
+++ b/vendor/fguillot/picofeed/picofeed
@@ -0,0 +1,124 @@
+#!/usr/bin/env php
+<?php
+
+require_once 'vendor/autoload.php';
+
+use PicoFeed\Client\Grabber;
+use PicoFeed\Reader\Reader;
+use PicoFeed\Logging\Logger;
+use PicoFeed\PicoFeedException;
+
+Logger::enable();
+
+function get_feed($url, $disable_filtering = false)
+{
+ try {
+
+ $reader = new Reader;
+ $resource = $reader->discover($url);
+
+ $parser = $reader->getParser(
+ $resource->getUrl(),
+ $resource->getContent(),
+ $resource->getEncoding()
+ );
+
+ if ($disable_filtering) {
+ $parser->disableContentFiltering();
+ }
+
+ return $parser->execute();
+ }
+ catch (PicoFeedException $e) {
+ echo 'Exception thrown ===> "'.$e->getMessage().'"'.PHP_EOL;
+ return false;
+ }
+}
+
+function get_item($feed, $item_id)
+{
+ foreach ($feed->items as $item) {
+ if ($item->getId() === $item_id) {
+ echo $item;
+ echo "============= CONTENT ================\n";
+ echo $item->getContent();
+ echo "\n============= CONTENT ================\n";
+ break;
+ }
+ }
+}
+
+function dump_feed($url)
+{
+ $feed = get_feed($url);
+ echo $feed;
+}
+
+function debug_feed($url)
+{
+ get_feed($url);
+ print_r(Logger::getMessages());
+}
+
+function dump_item($url, $item_id)
+{
+ $feed = get_feed($url);
+
+ if ($feed !== false) {
+ get_item($feed, $item_id);
+ }
+}
+
+function nofilter_item($url, $item_id)
+{
+ $feed = get_feed($url, true);
+
+ if ($feed !== false) {
+ get_item($feed, $item_id);
+ }
+}
+
+function grabber($url)
+{
+ $grabber = new Grabber($url);
+ $grabber->download();
+ $grabber->parse();
+
+ print_r(Logger::getMessages());
+ echo "============= CONTENT ================\n";
+ echo $grabber->getContent().PHP_EOL;
+ echo "============= FILTERED ================\n";
+ echo $grabber->getFilteredContent().PHP_EOL;
+}
+
+// Parse command line arguments
+if ($argc === 4) {
+ switch ($argv[1]) {
+ case 'item':
+ dump_item($argv[2], $argv[3]);
+ die;
+ case 'nofilter':
+ nofilter_item($argv[2], $argv[3]);
+ die;
+ }
+}
+else if ($argc === 3) {
+ switch ($argv[1]) {
+ case 'feed':
+ dump_feed($argv[2]);
+ die;
+ case 'debug':
+ debug_feed($argv[2]);
+ die;
+ case 'grabber':
+ grabber($argv[2]);
+ die;
+ }
+}
+
+printf("Usage:\n");
+printf("%s feed <feed-url>\n", $argv[0]);
+printf("%s debug <feed-url>\n", $argv[0]);
+printf("%s item <feed-url> <item-id>\n", $argv[0]);
+printf("%s nofilter <feed-url> <item-id>\n", $argv[0]);
+printf("%s grabber <url>\n", $argv[0]);