rss-bridge/CREATE_BRIDGE.md
teromene ca2f6f425d Amélioration de la documentation sur la création de bridges.
Signed-off-by: teromene <teromene@teromene.fr>
2015-11-05 13:28:32 +00:00

2.8 KiB

Howto create a bridge

A bridge is an interface that allows rss-bridge to create a RSS feed from a website. The bridge is a PHP file, located in the bridges/ folder.

##Specifications

A rss bridge must extend the BridgeAbstract class, and implement the following functions :

  • The loadMetadatas function, described below,
  • The getCacheDuration function, describing the time during which rss-bridge will output cached values instead of re-generating a RSS feed.
  • The collectData function, also described below.

##The collectData function

This function takes as a parameter an array called $param, that is automatically filled with values from the user, according to the values setted in loadMetadatas. This function is the place where all the website scrapping and the RSS feed generation process will go.

The RSS elements are stored in the class variable items[].

Every RSS element is an instance of the Item class.

##The loadMetadatas function

This function is the one used by rss-bridge core to determine the name, maintainer name, website, last updated date... of the bridge, and the user parameters.

Basic metadatas.

The basic metadatas are the following :

$this->maintainer
$this->name
$this->uri
$this->description
$this->update

The default values are the following :

$this->name = "Unnamed bridge";
$this->uri = "";
$this->description = 'No description provided';
$this->maintainer = 'No maintainer';

Parameters

Parameters use a JSON-like format, which is parsed and transformed to HTML <form> by rss-bridge.

These datas goes into the $this->parameters array, which is not mandatory if your bridge doesn't take any parameter.

Every possible usage of a bridge is an array element.

The array can be a key-based array, but it is not necessary. The following syntaxes are hereby correct :

$this->parameters[] = ...
$this->parameters['First usage of my bridge'] = ...

Format specifications

Every $this->parameters element is a JSON array ([ ... ]) containing every input.

It needs the following elements to be setted :

  • name, the input name as displayed to the user
  • identifier, which will be the key in the $param array for the corresponding data.

Hence, the most basic parameter definition is the following:

	$this->parameters =
	'[
		{
			"name" : "Username",
			"identifier" : "u"

		}
	]';

####Optional parameters

Here is a list of optional parameters for the input :

Parameter Name Parameter values Description
type text, number, list, checkbox Type of the input, default is text
required true Set this if you want your attribute to be required
values [ {"name" : option1Name, "value" : "option1Value"}, ...] Values list, required with the 'list' type