summaryrefslogtreecommitdiffstats
path: root/vendor/fguillot/picofeed/docs/feed-parsing.markdown
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2014-11-07 12:32:05 +0100
committerBernhard Posselt <dev@bernhard-posselt.com>2014-11-07 12:32:05 +0100
commit7f81afd7efbeb931d16ce1f3a1ed53a54226d553 (patch)
tree180720cd96aa66ae8964f13734e090d4b82a178e /vendor/fguillot/picofeed/docs/feed-parsing.markdown
parenta6d6288e65aa416aca7535e81d9e8837c2cfb103 (diff)
move 3rdparty directory to vendor to be more consistent with composer standard and because we also use js/vendor for third party libs
Diffstat (limited to 'vendor/fguillot/picofeed/docs/feed-parsing.markdown')
-rw-r--r--vendor/fguillot/picofeed/docs/feed-parsing.markdown164
1 files changed, 164 insertions, 0 deletions
diff --git a/vendor/fguillot/picofeed/docs/feed-parsing.markdown b/vendor/fguillot/picofeed/docs/feed-parsing.markdown
new file mode 100644
index 000000000..22f84339b
--- /dev/null
+++ b/vendor/fguillot/picofeed/docs/feed-parsing.markdown
@@ -0,0 +1,164 @@
+Feed parsing
+============
+
+Parsing a subscription
+----------------------
+
+```php
+use PicoFeed\Reader\Reader;
+use PicoFeed\PicoFeedException;
+
+try {
+
+ $reader = new Reader;
+
+ // Return a resource
+ $resource = $reader->download('https://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::url = http://linuxfr.org/news
+Feed::date = 1415138079
+Feed::language = en-US
+Feed::description =
+Feed::logo =
+Feed::items = 15 items
+----
+Item::id = 38d8f48284fb03940cbb3aff9101089b81e44efb1281641bdd7c3e7e4bf3b0cd
+Item::title = openSUSE 13.2 : nouvelle version du caméléon disponible !
+Item::url = http://linuxfr.org/news/opensuse-13-2-nouvelle-version-du-cameleon-disponible
+Item::date = 1415122640
+Item::language = en-US
+Item::author = Syvolc
+Item::enclosure_url =
+Item::enclosure_type =
+Item::content = 18307 bytes
+----
+Item::id = d0ebddc90bfc3f109f9be00a3bb0b4a770af7a647cdc88454fe15d79168e0dea
+Item::title = Fuzix OS, parce que les petites choses sont belles
+Item::url = http://linuxfr.org/news/fuzix-os-parce-que-les-petites-choses-sont-belles
+Item::date = 1415112167
+Item::language = en-US
+Item::author = Thomas DEBESSE
+Item::enclosure_url =
+Item::enclosure_type =
+Item::content = 6104 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
+------------
+
+TODO
+
+
+Feed and item properties
+------------------------
+
+```php
+// Feed object
+$feed->getId(); // Unique feed id
+$feed->getTitle(); // Feed title
+$feed->getUrl(); // Website url
+$feed->getDate(); // Feed last updated date
+$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 (timestamp)
+$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)
+```