* Fixed a bug in 'pypad_icecast2.py' that caused double-escaping of
metadata fields.
* Fixed a bug in 'pypad_tunein.py' that caused double-escaping of
metadata fields.
* Fixed a bug in 'PyPAD.Receiver' that threw an exception when
processing a PAD update with no active timer.
* Added a 'pypad_spottrap.py' PyPAD script.
* Removed the 'rlm_spottrap' RLM.
* Removed the 'rlm_test' RLM.
* Added a 'lineNumber' parameter to the 'padUpdate' structure.
* Added a 'FIELD_LINE_NUMBER' data value to PyPAD.
* Defined the '%z' metadata wildcard to refer to log line number.
* Added a 'lineId' parameter to the 'padUpdate' structure.
* Added 'FIELD_LINE_ID' data value to PyPAD.
* Defined the '%x' metadata wildcard to refer to log line ID.
* Added a 'pypad_live365.py' PyPAD script.
* Removed the 'rlm_live365' RLM.
* Fixed typos in the docstrings for 'PyPAD.Update::startDateTime()'
and 'PyPAD.Update::padField()'.
* Deleted the 'rlm_facebook' RLM.
* Deleted the 'rlm_filewrite' RLM.
* Deleted the 'rlm_tagstation' RLM.
* Deleted the 'rlm_twitter' RLM.
* Deleted the 'rlm_udp' RLM.
* Renamed the RD_RLM2_CLIENT_TCP_PORT define to RD_PAD_CLIENT_TCP_PORT.
* Renamed the RD_RLM_SOURCE_UNIX_ADDRESS define to
RD_PAD_SOURCE_UNIX_ADDRESS.
* Added a RD_PYPAD_SCRIPT_DIR define.
* Added an 'RDNotification::PypadType' value to the
'RDNotification::Type' enumeration.
* Added 'PypadOwner=' and 'PypadGroup=' directives to the
'[Identity]' section of rd.conf(5).
* Added an rdpadengined(8) service.
* Added a 'PYPAD_INSTANCES.IS_RUNNING' field to the database.
* Added a 'PYPAD_INSTANCES.EXIT_CODE' field to the database.
* Added a 'PYPAD_INSTANCES.ERROR_TEXT' field to the database.
* Incremented the database version to 304.
* Added a 'PYPAD_INSTANCES' table to the database.
* Incremented the database version to 303.
* Added a 'PyPAD Instances' button to the 'Edit Station' dialog
in rdadmin(1).
* Added a 'ListPyPAD Instances' dialog in rdadmin(1).
* Added an 'Edit PyPAD' Instance' dialog in rdadmin(1).
* Added a 'PyPAD.Receiver::setConfigFile()' method.
* Added a 'PyPAD.Update::shouldBeProcessed()' method.
* Updated the 'pypad_filewrite.py' script to use the
'PyPAD.Update::shouldBeProcessed()' method.
* Updated the 'pypad_udp.py' script to use the
'PyPAD.Update::shouldBeProcessed()' method.
* Added a 'make install' rule in 'apis/PyPAD/examples/' to install
PyPAD scripts in '${libdir}/rivendell/PyPAD/'.
* Fixed a typo in the pseudo-bangpath line in the example PyPAD
scripts.
* Renamed 'apis/PyPAD/examples/pypad_test.py' to
'apisPyPAD/tests/pad_test.py'.
* Added a 'hostName' field to the JSON PAD 'padUpdate' object.
* Added a 'PyPAD.Update::hostName()' method.
* Added a 'shortHostName' field to the JSON PAD 'padUpdate' object.
* Added a 'PyPAD.Update::shortHostName()' method.
* Added a 'PyPAD.Update::resolveFilepath()' method.
* Added 'apis/PyPAD/tests/filepath_test.py.
* Added 'api/PyPAD/examples/pypad_filewrite.py'.
* Renamed 'apis/PyPAD/examples/pypad_test.py' to
'apisPyPAD/tests/pad_test.py'.
* Added a 'hostName' field to the JSON PAD 'padUpdate' object.
* Added a 'PyPAD.Update::hostName()' method.
* Added a 'shortHostName' field to the JSON PAD 'padUpdate' object.
* Added a 'PyPAD.Update::shortHostName()' method.
* Added a 'PyPAD.Update::resolveFilepath()' method.
* Added 'apis/PyPAD/tests/filepath_test.py.
* Added 'api/PyPAD/examples/pypad_filewrite.py'.