RSS-Bridge Search Search...

GitHub Repository
Help/Support/Bugs
Docker Images

Show Code Blocks

Dark Mode

Powered by Daux.io

# Bridge API
FeedExpander

July 28, 2024 at 1:41 PM Edit on GitHub

Usage example: You have discovered a site that provides feeds which are hidden and inaccessible by normal means. You want your bridge to directly read the feeds and provide them via RSS-Bridge

Find a template at the end of this file.

Notice: For a standard feed only `collectData` need to be implemented. `collectData` should call `$this->collectExpandableDatas('your URI here');` to automatically load feed items and header data (will subsequently call `parseItem` for each item in the feed). You can limit the number of items to fetch by specifying an additional parameter for: `$this->collectExpandableDatas('your URI here', 10)` (limited to 10 items).

## #The `parseItem` method

This method receives one item from the current feed and should return one RSS-Bridge item. The default function does all the work to get the item data from the feed, whether it is RSS 1.0, RSS 2.0 or Atom 1.0.

Notice: The following code sample is just an example. Implementation depends on your requirements!

    protected function parseItem(array $item)
    {
        $item['content'] = str_replace('rssbridge','RSS-Bridge',$item['content']);
        return $item;
    }

### #Feed parsing

How rss-bridge processes xml feeds:

Function | uri | title | timestamp | author | content
--- | --- | --- | --- | --- | ---
`atom` | id | title | updated | author | content
`rss 0.91` | link | title |  |  | description
`rss 1.0` | link | title | dc:date | dc:creator | description
`rss 2.0` | link, guid | title | pubDate, dc:date | author, dc:creator | description

# #Template

This is the template for a new bridge:

    <?php
    class MySiteBridge extends FeedExpander
    {

        const MAINTAINER = 'No maintainer';
        const NAME = 'Unnamed bridge';
        const URI = '';
        const DESCRIPTION = 'No description provided';
        const PARAMETERS = [];
        const CACHE_TIMEOUT = 3600;

        public function collectData()
        {
            $this->collectExpandableDatas('your feed URI');
        }
    }