Plugin parameters

In the previous example, the home URL and number of feed items to generate were hard-coded in the script. We'll make these user-configurable by adding some parameters to the plugin.

Setting up parameters for a channel plugin

Start the Channel Wizard and select the script This time there will be an extra step in the wizard that lets you set the home URL and the number of feed items to generate.

To define plugin parameters, create a file in the same directory that has the same name as the script but with a .plugin extension. It should look something like this:

Name = HomeUrl
Type = string
DefaultValue =
Description = Our demo home URL.
IsRequired = 1

Name = nItems
Type = int
DefaultValue = 5
Description = The number of feed items to generate.
IsRequired = 1

Each section defines a new parameter and can be repeated as many times as required. The exact format of this file is given in the appendix.

Getting parameter values at runtime

When the script is run, it receives a single command-line parameter, the path to an INI file that contains the values for these parameters for the channel requesting the feed. For this example, if the user had changed the number of items to generate but left the home URL with the default value, the plugin will be given an INI file that might look something like this:

HomeUrl =
nItems = 3

We now modify the start of the script to read these values from the INI file, instead of using hard-coded values:

# get our channel parameters
parser = configparser.ConfigParser() sys.argv[1] )
home_url = parser.get( "ChannelParameters", "HomeUrl", fallback="" )
n_items = int( parser.get( "ChannelParameters", "nItems", fallback=0 ) )

# the rest of the script is the same as before...

Now you can create as many channels as you like using the same script, but with different parameters.