summaryrefslogtreecommitdiffstats
path: root/vendor/fguillot/picofeed/docs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/fguillot/picofeed/docs')
-rw-r--r--vendor/fguillot/picofeed/docs/config.markdown306
-rw-r--r--vendor/fguillot/picofeed/docs/debugging.markdown102
-rw-r--r--vendor/fguillot/picofeed/docs/exceptions.markdown28
-rw-r--r--vendor/fguillot/picofeed/docs/favicon.markdown96
-rw-r--r--vendor/fguillot/picofeed/docs/feed-creation.markdown74
-rw-r--r--vendor/fguillot/picofeed/docs/feed-parsing.markdown333
-rw-r--r--vendor/fguillot/picofeed/docs/grabber.markdown195
-rw-r--r--vendor/fguillot/picofeed/docs/image-proxy.markdown67
-rw-r--r--vendor/fguillot/picofeed/docs/installation.markdown50
-rw-r--r--vendor/fguillot/picofeed/docs/opml-export.markdown46
-rw-r--r--vendor/fguillot/picofeed/docs/opml-import.markdown19
-rw-r--r--vendor/fguillot/picofeed/docs/tests.markdown14
12 files changed, 0 insertions, 1330 deletions
diff --git a/vendor/fguillot/picofeed/docs/config.markdown b/vendor/fguillot/picofeed/docs/config.markdown
deleted file mode 100644
index 3360abf73..000000000
--- a/vendor/fguillot/picofeed/docs/config.markdown
+++ /dev/null
@@ -1,306 +0,0 @@
-Configuration
-=============
-
-How to use the Config object
-----------------------------
-
-To change the default parameters, you have to use the Config class.
-Create a new instance and pass it to the Reader object like that:
-
-```php
-use PicoFeed\Reader\Reader;
-use PicoFeed\Config\Config;
-
-$config = new Config;
-$config->setClientUserAgent('My custom RSS Reader')
- ->setProxyHostname('127.0.0.1')
- ->setProxyPort(8118);
-
-$reader = new Reader($config);
-...
-```
-
-HTTP Client parameters
-----------------------
-
-### Connection timeout
-
-- Method name: `setClientTimeout()`
-- Default value: 10 seconds
-- Argument value: number of seconds (integer)
-
-```php
-$config->setClientTimeout(20); // 20 seconds
-```
-
-### User Agent
-
-- Method name: `setClientUserAgent()`
-- Default value: `PicoFeed (https://github.com/fguillot/picoFeed)`
-- Argument value: string
-
-```php
-$config->setClientUserAgent('My RSS reader');
-```
-
-### Maximum HTTP redirections
-
-- Method name: `setMaxRedirections()`
-- Default value: 5
-- Argument value: integer
-
-```php
-$config->setMaxRedirections(10);
-```
-
-### Maximum HTTP body response size
-
-- Method name: `setMaxBodySize()`
-- Default value: 2097152 (2MB)
-- Argument value: value in bytes (integer)
-
-```php
-$config->setMaxBodySize(10485760); // 10MB
-```
-
-### Proxy hostname
-
-- Method name: `setProxyHostname()`
-- Default value: empty
-- Argument value: string
-
-```php
-$config->setProxyHostname('proxy.example.org');
-```
-
-### Proxy port
-
-- Method name: `setProxyPort()`
-- Default value: 3128
-- Argument value: port number (integer)
-
-```php
-$config->setProxyPort(8118);
-```
-
-### Proxy username
-
-- Method name: `setProxyUsername()`
-- Default value: empty
-- Argument value: string
-
-```php
-$config->setProxyUsername('myuser');
-```
-
-### Proxy password
-
-- Method name: `setProxyPassword()`
-- Default value: empty
-- Argument value: string
-
-```php
-$config->setProxyPassword('mysecret');
-```
-
-Content grabber
----------------
-
-### Connection timeout
-
-- Method name: `setGrabberTimeout()`
-- Default value: 10 seconds
-- Argument value: number of seconds (integer)
-
-```php
-$config->setGrabberTimeout(20); // 20 seconds
-```
-
-### User Agent
-
-- Method name: `setGrabberUserAgent()`
-- Default value: `PicoFeed (https://github.com/fguillot/picoFeed)`
-- Argument value: string
-
-```php
-$config->setGrabberUserAgent('My content scraper');
-```
-
-### Add a rules folder
-
-- Method name: `setGrabberRulesFolder()`
-- Default value: `null`
-- Argument value: string
-
-```php
-$config->setGrabberRulesFolder('/path/to/my/grabber/rules');
-```
-
-Parser
-------
-
-### Hash algorithm used for item id generation
-
-- Method name: `setParserHashAlgo()`
-- Default value: `sha256`
-- Argument value: any value returned by the function `hash_algos()` (string)
-- See: http://php.net/hash_algos
-
-```php
-$config->setParserHashAlgo('sha1');
-```
-
-### Disable item content filtering
-
-- Method name: `setContentFiltering()`
-- Default value: true (filtering is enabled by default)
-- Argument value: boolean
-
-```php
-$config->setContentFiltering(false);
-```
-
-### Timezone
-
-- Method name: `setTimezone()`
-- Default value: UTC
-- Argument value: See https://php.net/manual/en/timezones.php (string)
-- Note: define the timezone for items/feeds
-
-```php
-$config->setTimezone('Europe/Paris');
-```
-
-Logging
--------
-
-### Timezone
-
-- Method name: `setTimezone()`
-- Default value: UTC
-- Argument value: See https://php.net/manual/en/timezones.php (string)
-- Note: define the timezone for the logging class
-
-```php
-$config->setTimezone('Europe/Paris');
-```
-
-Filter
-------
-
-### Set the iframe whitelist (allowed iframe sources)
-
-- Method name: `setFilterIframeWhitelist()`
-- Default value: See the Filter class source code
-- Argument value: array
-
-```php
-$config->setFilterIframeWhitelist(['http://www.youtube.com', 'http://www.vimeo.com']);
-```
-
-### Define HTML integer attributes
-
-- Method name: `setFilterIntegerAttributes()`
-- Default value: See the Filter class source code
-- Argument value: array
-
-```php
-$config->setFilterIntegerAttributes(['width', 'height']);
-```
-
-### Add HTML attributes automatically
-
-- Method name: `setFilterAttributeOverrides()`
-- Default value: See the Filter class source code
-- Argument value: array
-
-```php
-$config->setFilterAttributeOverrides(['a' => ['target' => '_blank']);
-```
-
-### Set the list of required attributes for tags
-
-- Method name: `setFilterRequiredAttributes()`
-- Default value: See the Filter class source code
-- Argument value: array
-- Note: If the required attributes are not there, the tag is stripped
-
-```php
-$config->setFilterRequiredAttributes(['a' => 'href', 'img' => 'src']);
-```
-
-### Set the resource blacklist (Ads blocker)
-
-- Method name: `setFilterMediaBlacklist()`
-- Default value: See the Filter class source code
-- Argument value: array
-- Note: Tags are stripped if they have those URLs
-
-```php
-$config->setFilterMediaBlacklist(['feeds.feedburner.com', 'share.feedsportal.com']);
-```
-
-### Define which attributes are used for external resources
-
-- Method name: `setFilterMediaAttributes()`
-- Default value: See the Filter class source code
-- Argument value: array
-
-```php
-$config->setFilterMediaAttributes(['src', 'href']);
-```
-
-### Define the scheme whitelist
-
-- Method name: `setFilterSchemeWhitelist()`
-- Default value: See the Filter class source code
-- Argument value: array
-- See: http://en.wikipedia.org/wiki/URI_scheme
-
-```php
-$config->setFilterSchemeWhitelist(['http://', 'ftp://']);
-```
-
-### Define the tags and attributes whitelist
-
-- Method name: `setFilterWhitelistedTags()`
-- Default value: See the Filter class source code
-- Argument value: array
-- Note: Only those tags are allowed everything else is stripped
-
-```php
-$config->setFilterWhitelistedTags(['a' => ['href'], 'img' => ['src', 'title']]);
-```
-
-### Define a image proxy url
-
-- Method name: `setFilterImageProxyUrl()`
-- Default value: Empty
-- Argument value: string
-
-```php
-$config->setFilterImageProxyUrl('http://myproxy.example.org/?url=%s');
-```
-
-### Define a image proxy callback
-
-- Method name: `setFilterImageProxyCallback()`
-- Default value: null
-- Argument value: Closure
-
-```php
-$config->setFilterImageProxyCallback(function ($image_url) {
- $key = hash_hmac('sha1', $image_url, 'secret');
- return 'https://mypublicproxy/'.$key.'/'.urlencode($image_url);
-});
-```
-
-### Define image proxy protocol restriction
-
-- Method name: `setFilterImageProxyProtocol()`
-- Default value: Empty (all protocols)
-- Argument value: string
-
-```php
-$config->setFilterImageProxyProtocol('http');
-```
diff --git a/vendor/fguillot/picofeed/docs/debugging.markdown b/vendor/fguillot/picofeed/docs/debugging.markdown
deleted file mode 100644
index 1356e0f72..000000000
--- a/vendor/fguillot/picofeed/docs/debugging.markdown
+++ /dev/null
@@ -1,102 +0,0 @@
-Debugging
-=========
-
-Logging
--------
-
-PicoFeed can log **in memory** the execution flow, if a feed doesn't work correctly it's easy to see what is wrong.
-
-### Enable/disable logging
-
-The logging is **disabled by default** to avoid unnecessary memory usage.
-
-Enable logging:
-
-```php
-use PicoFeed\Logging\Logger;
-
-Logger::enable();
-
-// or change the flag value
-
-Logger::$enable = true;
-```
-
-### Reading messages
-
-```php
-use PicoFeed\Logging\Logger;
-
-// All messages are stored inside an Array
-print_r(Logger::getMessages());
-```
-
-You will got an output like that:
-
-```php
-Array
-(
- [0] => Fetch URL: http://petitcodeur.fr/feed.xml
- [1] => Etag:
- [2] => Last-Modified:
- [3] => cURL total time: 0.711378
- [4] => cURL dns lookup time: 0.001064
- [5] => cURL connect time: 0.100733
- [6] => cURL speed download: 74825
- [7] => HTTP status code: 200
- [8] => HTTP headers: Set-Cookie => start=R2701971637; path=/; expires=Sat, 06-Jul-2013 05:16:33 GMT
- [9] => HTTP headers: Date => Sat, 06 Jul 2013 03:55:52 GMT
- [10] => HTTP headers: Content-Type => application/xml
- [11] => HTTP headers: Content-Length => 53229
- [12] => HTTP headers: Connection => close
- [13] => HTTP headers: Server => Apache
- [14] => HTTP headers: Last-Modified => Tue, 02 Jul 2013 03:26:02 GMT
- [15] => HTTP headers: ETag => "393e79c-cfed-4e07ee78b2680"
- [16] => HTTP headers: Accept-Ranges => bytes
- ....
-)
-```
-
-### Remove messages
-
-All messages are stored in memory, if you need to clear them just call the method `Logger::deleteMessages()`:
-
-```php
-Logger::deleteMessages();
-```
-
-Command line utility
-====================
-
-PicoFeed provides a basic command line tool to debug feeds quickly.
-The tool is located in the root directory project.
-
-### Usage
-
-```bash
-$ ./picofeed
-Usage:
-./picofeed feed <feed-url> # Parse a feed a dump the ouput on stdout
-./picofeed debug <feed-url> # Display all logging messages for a feed
-./picofeed item <feed-url> <item-id> # Fetch only one item
-./picofeed nofilter <feed-url> <item-id> # Fetch an item but with no content filtering
-```
-
-### Example
-
-```bash
-$ ./picofeed debug https://linuxfr.org/
-Exception thrown ===> "Invalid SSL certificate"
-Array
-(
- [0] => [2014-11-08 14:04:14] PicoFeed\Client\Curl Fetch URL: https://linuxfr.org/
- [1] => [2014-11-08 14:04:14] PicoFeed\Client\Curl Etag provided:
- [2] => [2014-11-08 14:04:14] PicoFeed\Client\Curl Last-Modified provided:
- [3] => [2014-11-08 14:04:16] PicoFeed\Client\Curl cURL total time: 1.850634
- [4] => [2014-11-08 14:04:16] PicoFeed\Client\Curl cURL dns lookup time: 0.00093
- [5] => [2014-11-08 14:04:16] PicoFeed\Client\Curl cURL connect time: 0.115213
- [6] => [2014-11-08 14:04:16] PicoFeed\Client\Curl cURL speed download: 0
- [7] => [2014-11-08 14:04:16] PicoFeed\Client\Curl cURL effective url: https://linuxfr.org/
- [8] => [2014-11-08 14:04:16] PicoFeed\Client\Curl cURL error: SSL certificate problem: Invalid certificate chain
-)
-```
diff --git a/vendor/fguillot/picofeed/docs/exceptions.markdown b/vendor/fguillot/picofeed/docs/exceptions.markdown
deleted file mode 100644
index 399ba3ef6..000000000
--- a/vendor/fguillot/picofeed/docs/exceptions.markdown
+++ /dev/null
@@ -1,28 +0,0 @@
-Exceptions
-==========
-
-All exceptions inherits from the standard `Exception` class.
-
-### Library Exceptions
-
-- `PicoFeed\PicoFeedException`: Base class exception for the library
-
-### Client Exceptions
-
-- `PicoFeed\Client\ClientException`: Base exception class for the Client class
-- `PicoFeed\Client\InvalidCertificateException`: Invalid SSL certificate
-- `PicoFeed\Client\InvalidUrlException`: Malformed URL, page not found (404), unable to establish a connection
-- `PicoFeed\Client\MaxRedirectException`: Maximum of HTTP redirections reached
-- `PicoFeed\Client\MaxSizeException`: The response size exceeds to maximum allowed
-- `PicoFeed\Client\TimeoutException`: Connection timeout
-
-### Parser Exceptions
-
-- `PicoFeed\Parser\ParserException`: Base exception class for the Parser class
-- `PicoFeed\Parser\MalformedXmlException`: XML Parser error
-
-### Reader Exceptions
-
-- `PicoFeed\Reader\ReaderException`: Base exception class for the Reader
-- `PicoFeed\Reader\SubscriptionNotFoundException`: Unable to find a feed for the given website
-- `PicoFeed\Reader\UnsupportedFeedFormatException`: Unable to detect the feed format
diff --git a/vendor/fguillot/picofeed/docs/favicon.markdown b/vendor/fguillot/picofeed/docs/favicon.markdown
deleted file mode 100644
index b9ea73b7d..000000000
--- a/vendor/fguillot/picofeed/docs/favicon.markdown
+++ /dev/null
@@ -1,96 +0,0 @@
-Favicon fetcher
-===============
-
-Find and download the favicon
------------------------------
-
-```php
-use PicoFeed\Reader\Favicon;
-
-$favicon = new Favicon;
-
-// The icon link is https://bits.wikimedia.org/favicon/wikipedia.ico
-$icon_link = $favicon->find('https://en.wikipedia.org/');
-$icon_content = $favicon->getContent();
-```
-
-PicoFeed will try first to find the favicon from the meta tags and fallback to the `favicon.ico` located in the website's root if nothing is found.
-
-- `Favicon::find()` returns the favicon absolute url or an empty string if nothing is found.
-- `Favicon::getContent()` returns the favicon file content (binary content)
-
-When the HTML page is parsed, relative links and protocol relative links are converted to absolute url.
-
-Download a known favicon
------------------------
-It's possible to download a known favicon using the second optional parameter of Favicon::find(). The link to the favicon can be a relative or protocol relative url as well, but it has to be relative to the specified website.
-
-If the requested favicon could not be found, the HTML of the website is parsed instead, with the fallback to the `favicon.ico` located in the website's root.
-
-```php
-use PicoFeed\Reader\Favicon;
-
-$favicon = new Favicon;
-
-$icon_link = $favicon->find('https://en.wikipedia.org/','https://bits.wikimedia.org/favicon/wikipedia.ico');
-$icon_content = $favicon->getContent();
-```
-
-Get Favicon file type
----------------------
-
-It's possible to fetch the image type, this information come from the Content-Type HTTP header:
-
-```php
-$favicon = new Favicon;
-$favicon->find('http://example.net/');
-
-echo $favicon->getType();
-
-// Will output the content type, by example "image/png"
-```
-
-Get the Favicon as Data URI
----------------------------
-
-You can also get the whole image as Data URI.
-It's useful if you want to store the icon in your database and avoid too many HTTP requests.
-
-```php
-$favicon = new Favicon;
-$favicon->find('http://example.net/');
-
-echo $favicon->getDataUri();
-
-// Output something like that: data:image/png;base64,iVBORw0KGgoAAAANSUh.....
-```
-
-See: http://en.wikipedia.org/wiki/Data_URI_scheme
-
-Check if a favicon link exists
-------------------------------
-
-```php
-use PicoFeed\Reader\Favicon;
-
-$favicon = new Favicon;
-
-// Return true if the file exists
-var_dump($favicon->exists('http://php.net/favicon.ico'));
-```
-
-Use personalized HTTP settings
-------------------------------
-
-Like other classes, the Favicon class support the Config object as constructor argument:
-
-```php
-use PicoFeed\Config\Config;
-use PicoFeed\Reader\Favicon;
-
-$config = new Config;
-$config->setClientUserAgent('My RSS Reader');
-
-$favicon = new Favicon($config);
-$favicon->find('https://github.com');
-```
diff --git a/vendor/fguillot/picofeed/docs/feed-creation.markdown b/vendor/fguillot/picofeed/docs/feed-creation.markdown
deleted file mode 100644
index 35a24a9d7..000000000
--- a/vendor/fguillot/picofeed/docs/feed-creation.markdown
+++ /dev/null
@@ -1,74 +0,0 @@
-Feed creation
-=============
-
-PicoFeed can also generate Atom and RSS feeds.
-
-Generate RSS 2.0 feed
-----------------------
-
-```php
-use PicoFeed\Syndication\Rss20;
-
-$writer = new Rss20();
-$writer->title = 'My site';
-$writer->site_url = 'http://boo/';
-$writer->feed_url = 'http://boo/feed.atom';
-$writer->author = array(
- 'name' => 'Me',
- 'url' => 'http://me',
- 'email' => 'me@here'
-);
-
-$writer->items[] = array(
- 'title' => 'My article 1',
- 'updated' => strtotime('-2 days'),
- 'url' => 'http://foo/bar',
- 'summary' => 'Super summary',
- 'content' => '<p>content</p>'
-);
-
-$writer->items[] = array(
- 'title' => 'My article 2',
- 'updated' => strtotime('-1 day'),
- 'url' => 'http://foo/bar2',
- 'summary' => 'Super summary 2',
- 'content' => '<p>content 2 &nbsp; &copy; 2015</p>',
- 'author' => array(
- 'name' => 'Me too',
- )
-);
-
-$writer->items[] = array(
- 'title' => 'My article 3',
- 'url' => 'http://foo/bar3'
-);
-
-echo $writer->execute();
-```
-
-Generate Atom feed
-------------------
-
-```php
-use PicoFeed\Syndication\Atom;
-
-$writer = new Atom();
-$writer->title = 'My site';
-$writer->site_url = 'http://boo/';
-$writer->feed_url = 'http://boo/feed.atom';
-$writer->author = array(
- 'name' => 'Me',
- 'url' => 'http://me',
- 'email' => 'me@here'
-);
-
-$writer->items[] = array(
- 'title' => 'My article 1',
- 'updated' => strtotime('-2 days'),
- 'url' => 'http://foo/bar',
- 'summary' => 'Super summary',
- 'content' => '<p>content</p>'
-);
-
-echo $writer->execute();
-```
diff --git a/vendor/fguillot/picofeed/docs/feed-parsing.markdown b/vendor/fguillot/picofeed/docs/feed-parsing.markdown
deleted file mode 100644
index e3e43d49d..000000000
--- a/vendor/fguillot/picofeed/docs/feed-parsing.markdown
+++ /dev/null
@@ -1,333 +0,0 @@
-Feed parsing
-============
-
-Parsing a subscription
-----------------------
-
-```php
-use PicoFeed\Reader\Reader;
-use PicoFeed\PicoFeedException;
-
-try {
-
- $reader = new Reader;
-
- // Return a resource
- $resource = $reader->download('http://linuxfr.org/news.atom');
-
- // Return the right parser instance according to the feed format
- $parser = $reader->getParser(
- $resource->getUrl(),
- $resource->getContent(),
- $resource->getEncoding()
- );
-
- // Return a Feed object
- $feed = $parser->execute();
-
- // Print the feed properties with the magic method __toString()
- echo $feed;
-}
-catch (PicoFeedException $e) {
- // Do Something...
-}
-```
-
-- The Reader class is the entry point for feed reading
-- The method `download()` fetch the remote content and return a resource, an instance of `PicoFeed\Client\Client`
-- The method `getParser()` returns a Parser instance according to the feed format Atom, Rss 2.0...
-- The parser itself returns a `Feed` object that contains feed and item properties
-
-Output:
-
-```bash
-Feed::id = tag:linuxfr.org,2005:/news
-Feed::title = LinuxFr.org : les dépêches
-Feed::feed_url = http://linuxfr.org/news.atom
-Feed::site_url = http://linuxfr.org/news
-Feed::language = en-US
-Feed::description =
-Feed::logo =
-Feed::date = Thu, 26 Feb 15 09:33:08 +0100
-Feed::isRTL() = false
-Feed::items = 15 items
-----
-Item::id = 56198c98ae852d21c369bfb5ffbc2ad13db2f3227236dde3e21ca1a9eb943faf
-Item::title = Les brevets logiciels : un frein à l'innovation et la recherche (un nouvel exemple aux États-Unis)
-Item::url = http://linuxfr.org/news/les-brevets-logiciels-un-frein-a-l-innovation-et-la-recherche-un-nouvel-exemple-aux-etats-unis
-Item::language = en-US
-Item::author = alenvers
-Item::enclosure_url =
-Item::enclosure_type =
-Item::date = Thu, 26 Feb 15 09:33:08 +0100
-Item::isRTL() = false
-Item::content = 6452 bytes
-....
-```
-
-Get the list of available subscriptions for a website
------------------------------------------------------
-
-The example below will returns all available subscriptions for the website:
-
-```php
-use PicoFeed\Reader\Reader;
-
-try {
-
- $reader = new Reader;
- $resource = $reader->download('http://www.cnn.com');
-
- $feeds = $reader->find(
- $resource->getUrl(),
- $resource->getContent()
- );
-
- print_r($feeds);
-}
-catch (PicoFeedException $e) {
- // Do something...
-}
-```
-
-Output:
-
-```php
-Array
-(
- [0] => http://rss.cnn.com/rss/cnn_topstories.rss
- [1] => http://rss.cnn.com/rss/cnn_latest.rss
-)
-```
-
-Feed discovery and parsing
---------------------------
-
-This example will discover automatically the subscription and parse the feed:
-
-```php
-try {
-
- $reader = new Reader;
- $resource = $reader->discover('http://linuxfr.org');
-
- $parser = $reader->getParser(
- $resource->getUrl(),
- $resource->getContent(),
- $resource->getEncoding()
- );
-
- $feed = $parser->execute();
- echo $feed;
-}
-catch (PicoFeedException $e) {
-}
-```
-
-HTTP caching
-------------
-
-PicoFeed supports HTTP caching to avoid unnecessary processing.
-
-1. After the first download, save in your database the values of the Etag and LastModified HTTP headers
-2. For the next requests, provide those values to the `download()` method and check if the feed was modified or not
-
-Here an example:
-
-```php
-try {
-
- // Fetch from your database the previous values of the Etag and LastModified headers
- $etag = '...';
- $last_modified = '...';
-
- $reader = new Reader;
-
- // Provide those values to the download method
- $resource = $reader->download('http://linuxfr.org/news.atom', $last_modified, $etag);
-
- // Return true if the remote content has changed
- if ($resource->isModified()) {
-
- $parser = $reader->getParser(
- $resource->getUrl(),
- $resource->getContent(),
- $resource->getEncoding()
- );
-
- $feed = $parser->execute();
-
- // Save your feed in your database
- // ...
-
- // Store the Etag and the LastModified headers in your database for the next requests
- $etag = $resource->getEtag();
- $last_modified = $resource->getLastModified();
-
- // ...
- }
- else {
-
- echo 'Not modified, nothing to do!';
- }
-}
-catch (PicoFeedException $e) {
- // Do something...
-}
-```
-
-HTTP basic auth
----------------
-If a feed requires basic auth headers, you can pass them as parameters to the **download** method, e.g.:
-
-```php
-try {
- $reader = new Reader;
-
- $user = 'john';
- $password = 'doe';
-
- // Provide those values to the download method
- $resource = $reader->download('http://linuxfr.org/news.atom', '', '', $user, $password);
-
- // Return true if the remote content has changed
- if ($resource->isModified()) {
-
- $parser = $reader->getParser(
- $resource->getUrl(),
- $resource->getContent(),
- $resource->getEncoding()
- );
-
- $feed = $parser->execute();
-
- // Save your feed in your database
- // ...
-
- }
- else {
-
- echo 'Not modified, nothing to do!';
- }
-}
-catch (PicoFeedException $e) {
- // Do something...
-}
-```
-
-Custom regex filters
---------------------
-In case you want modify the content with a simple regex, you can create a rule file named after the domain of the feed's link attribute. For the feed pointing to **http://www.twogag.com/** the file is stored under **Rules/twogag.com.php**
-
-For filtering, only the array with the key **filter** will be considered. The first level key is a preg_match regex that will match the sub url, e.g. to only match a feed whose link attribute points to **twogag.com/test**, the regex could look like **%/test.*%**. The second level array contains a list of search and replace strings, which will be passed to the preg\_replace function. The first string is the argument that should be matched, the second is the replacement.
-
-To replace all occurences of links to smaller images for twogag, the following rule can be used:
-
-
-```php
-<?php
-return array(
- 'filter' => array(
- '%.*%' => array(
- "%http://www.twogag.com/comics-rss/([^.]+)\\.jpg%" =>
- "http://www.twogag.com/comics/$1.jpg"
- )
- )
-);
-```
-
-Feed and item properties
-------------------------
-
-```php
-// Feed object
-$feed->getId(); // Unique feed id
-$feed->getTitle(); // Feed title
-$feed->getFeedUrl(); // Feed url
-$feed->getSiteUrl(); // Website url
-$feed->getDate(); // Feed last updated date (DateTime object)
-$feed->getLanguage(); // Feed language
-$feed->getDescription(); // Feed description
-$feed->getLogo(); // Feed logo (can be a large image, different from icon)
-$feed->getItems(); // List of item objects
-
-// Item object
-$feed->items[0]->getId(); // Item unique id (hash)
-$feed->items[0]->getTitle(); // Item title
-$feed->items[0]->getUrl(); // Item url
-$feed->items[0]->getDate(); // Item published date (DateTime object)
-$feed->items[0]->getLanguage(); // Item language
-$feed->items[0]->getAuthor(); // Item author
-$feed->items[0]->getEnclosureUrl(); // Enclosure url
-$feed->items[0]->getEnclosureType(); // Enclosure mime-type (audio/mp3, image/png...)
-$feed->items[0]->getContent(); // Item content (filtered or raw)
-$feed->items[0]->isRTL(); // Return true if the item language is Right-To-Left
-```
-
-Get raw XML tags/attributes or non standard tags for items
-----------------------------------------------------------
-The getTag function returns an array with all values of matching tags. If nothing can be found, an empty array is returned. In case of errors, the return value is false.
-
-Get the original `guid` tag for RSS 2.0 feeds:
-
-```php
-$values = $feed->items[0]->getTag('guid');
-print_r ($values);
-```
-
-Get a specific attribute value:
-
-```php
-$values = $feed->items[1]->getTag('category', 'term');
-print_r ($values);
-```
-
-Get value of namespaced tag:
-
-```php
-if (array_key_exists('wfw', $feed->items[0]->namespaces)) {
- $values = $feed->items[1]->getTag('wfw:commentRss');
- print_r ($values);
-}
-```
-
-Get attribute value of a namespaced tag:
-
-```php
-if (array_key_exists('media', $feed->items[0]->namespaces)) {
- $values = $feed->items[0]->getTag('media:content', 'url');
- print_r ($values);
-}
-```
-
-Get the xml of the item (returns a SimpleXMLElement instance):
-
-```php
-$simplexml = $feed->items[0]->xml;
-```
-
-Get the list of namespaces:
-
-```php
-print_r($feed->items[0]->namespaces);
-```
-
-RTL language detection
-----------------------
-
-Use the method `Item::isRTL()` to test if an item is RTL or not:
-
-```php
-var_dump($item->isRTL()); // true or false
-```
-
-Known RTL languages are:
-
-- Arabic (ar-**)
-- Farsi (fa-**)
-- Urdu (ur-**)
-- Pashtu (ps-**)
-- Syriac (syr-**)
-- Divehi (dv-**)
-- Hebrew (he-**)
-- Yiddish (yi-**)
diff --git a/vendor/fguillot/picofeed/docs/grabber.markdown b/vendor/fguillot/picofeed/docs/grabber.markdown
deleted file mode 100644
index 4ac83068f..000000000
--- a/vendor/fguillot/picofeed/docs/grabber.markdown
+++ /dev/null
@@ -1,195 +0,0 @@
-Web scraper
-===========
-
-The web scraper is useful for feeds that display only a summary of articles, the scraper can download and parse the full content from the original website.
-
-How the content grabber works?
-------------------------------
-
-1. Try with rules first (XPath queries) for the domain name (see `PicoFeed\Rules\`)
-2. Try to find the text content by using common attributes for class and id
-3. Finally, if nothing is found, the feed content is displayed
-
-**The best results are obtained with XPath rules file.**
-
-Standalone usage
-----------------
-
-Fetch remote content:
-
-```php
-<?php
-
-use PicoFeed\Config\Config;
-use PicoFeed\Scraper\Scraper;
-
-$config = new Config;
-
-$grabber = new Scraper($config)
-$grabber->setUrl($url);
-$grabber->execute();
-
-// Get raw HTML content
-echo $grabber->getRawContent();
-
-// Get relevant content
-echo $grabber->getRelevantContent();
-
-// Get filtered relevant content
-echo $grabber->getFilteredContent();
-
-// Return true if there is relevant content
-var_dump($grabber->hasRelevantContent());
-```
-