Configuration file handling for xmltv grabbers
Utility library that helps grabbers read from configuration files and implement a configuration method that can be run from the command-line.
All these functions are exported on demand.
Takes the name of the configuration file to load as a parameter. Returns a hashref with configuration fieldnames as keys. Note that the values of the hash are references to an array of values. Example:
{ username => [ 'mattias' ], password => [ 'xxx' ], channel => [ 'svt1.svt.se', 'kanal5.se' ], no_channel => ['svt2.svt.se' ], }
Note that unselected options from a selectmany are collected in an entry named after the key with a prefix of 'no_'. See the channel and no_channel entry in the example. They are the result of a selectmany with id=channel. The configuration file must be in the format described in the file \*(L"ConfigurationFiles.txt\*(R". If the file does not exist or if the format is wrong, LoadConfig returns undef.
Write a configuration hash in the format returned by LoadConfig to a file that can be loaded with LoadConfig. Takes two parameters, a reference to a configuration hash and a filename. Note that a grabber should normally never have to call SaveConfig. This is done by the Configure-method.
Generates a configuration file for the grabber. Takes three parameters: stagesub, listsub and the name of the configuration file. stagesub shall be a coderef that takes a stage-name or undef and a configuration hashref as a parameter and returns an xml-string that describes the configuration necessary for that stage. The xml-string shall follow the xmltv-configuration.dtd. listsub shall be a coderef that takes a configuration hash as returned by LoadConfig as the first parameter and an option hash as returned by ParseOptions as the second parameter and returns an xml-string containing a list of all the channels that the grabber can deliver data for using the supplied configuration. Note that the listsub shall not use any channel-configuration from the hashref.
Copyright (C) 2005 Mattias Holmlund.
This program is free software; you can redistribute it and/or modify it under the terms of the \s-1GNU\s0 General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but \s-1WITHOUT\s0 \s-1ANY\s0 \s-1WARRANTY\s0; without even the implied warranty of \s-1MERCHANTABILITY\s0 or \s-1FITNESS\s0 \s-1FOR\s0 A \s-1PARTICULAR\s0 \s-1PURPOSE\s0. See the \s-1GNU\s0 General Public License for more details.
You should have received a copy of the \s-1GNU\s0 General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, \s-1MA\s0 02110-1301, \s-1USA\s0.