diff options
author | Bernhard Posselt <dev@bernhard-posselt.com> | 2015-01-27 09:31:40 +0100 |
---|---|---|
committer | Bernhard Posselt <dev@bernhard-posselt.com> | 2015-01-27 09:31:40 +0100 |
commit | 8241180c6ce0cb19255d70a3394f891e08182542 (patch) | |
tree | 325996a06d9896567957871cc0f34865c46118da /vendor/fguillot/picofeed/picofeed | |
parent | 73f65c8fbadbdd2098448e77b6d3f0464ad8613e (diff) |
dont use picofeed submodule
Diffstat (limited to 'vendor/fguillot/picofeed/picofeed')
m--------- | vendor/fguillot/picofeed | 0 | ||||
-rwxr-xr-x | vendor/fguillot/picofeed/picofeed | 124 |
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]); |