* Added a 'USERS.EMAIL_ADDRESS' field to the database.
* Added 'RDUser::emailAddress()', 'RDUser::setEmaiAddress()' and
'RDUser::emailContact()' methods.
* Added 'RDUser::emailIsValid()' and 'RDUser::emailContact()'
static methods.
* Added logic to rdcastmanager(1) to insert the author's e-mail
contact automatically when posting a new episode.
* Added a 'FEEDS.AUDIENCE_METRICS' field to the database.
* Incremented the database version to 316.
* Added a 'Collect Audience Metrics' checkbox to the 'Feed'
dialog in rdadmin(1).
* Added an 'RDTransfer' base class.
* Rebased 'RDDelete' to 'RDTransfer'.
* Added 'sftp' support to 'RDDelete'.
* Added 'file' support to 'RDDelete'.
* Refactored RSS generation to occur in 'RDFeed'.
* Added a 'delete_test' test harness.
* Fixed a bug with the '%y' metadata wildcard where garbage would
be returned if a valid year had not been set.
* Added a 'metadata_wildcard_test' harness.
* Added a 'FEEDS.IS_SUPERFEED' field to the database.
* Added a 'FEED_KEY_NAMES' table to the database.
* Incremented the database version to 315.
* Added a 'Superfeed' column to the feed list in the 'Rivendell
Feed List' dialog in rdadmin(1).
* Added an 'Is Superfeed' dropdown to the 'Feed' dialog in
rdadmin(1).
* Added a 'Select Member Feeds' button to the 'Feed' dialog in
rdadmin(1).
* Added an 'RSS Superfeed' selection dialog to rdadmin(1).
* Added a '%wc' ['Industry Standard Commercial Identification (ISCI)
Code'] metadata wildcard.
* Implemented the '%wc' metadata wildcard for PyPAD.
* Added support for the '%wc' wildcards to the '--metadata-pattern='
switch in rdimport(1).
* Added '--set-string-isci' switch to rdimport(1).
* Added support for the '%wc' wildcard to the '--metadata-pattern='
switch in rdexport(1).
* Consolidated the Metadata Wildcard definitions in the
'RDResolveNowNext()' function into the 'RDLogLine::resolveWildcards()'
method.
* Added 'recordMbId' and 'releaseMbId' fields to the cut XML data
schema.
* Added '%wm' ['MusicBrainz Recording ID'] and '%wr'
['MusicBrainz Release ID'] metadata wildcards.
* Fixed a bug in the MusicBrainz CD lookup that caused it to
confound track info in multi-disc releases.
* Fixed a bug in the MusicBrainz CD lookup that caused it to
segfault when processing release with no Label information.
* Added a 'STATIONS.BROWSER_PATH' field to the database.
* Incremented the database version to 314.
* Added a 'Web Browser' control to the 'Edit Host' dialog in
rdadmin(1).
* Added a MusicBrainz record lookup button to the full disc ripper
in rdlibrary(1).
* Added a MusicBrainz record lookup button to the disc track ripper
in rdlibrary(1).
* Fixed a bug in the full disc ripper in rdlibrary(1)that caused it
to fail to save MBIDs to the database after a successful rip.
* Fixed a bug in the disc track ripper in rdlibrary(1)that caused it
to fail to save MBIDs to the database after a successful rip.
* Added a 'RDLIBRARY.CD_SERVER_TYPE' field to the database.
* Added an 'RDLIBRARY.MB_SERVER' field to the database.
* Incremented the database version to 312.
* Added a 'CD Metadata Source' dropdown to the 'Configure RDLibrary'
dialog in rdadmin(1).
* Added a 'Dummy' CD metadata lookup source in the 'RDDummyLookup'
class.
* Added a 'CUTS.TRACK_MBID' field to the database.
* Added a 'CUTS.RELEASE_MBID' field to the database.
* Removed all Qt3Support dependencies from the 'RDUpload' class.
* Removed all Qt3Support dependencies from the 'RDDownload' class.
* Added a 'test_download' test harness.
* Fixed a regression in the Web API that caused the
'origindatetime', 'startdatetime' and 'enddatetime' to be incorrect
and/or corrupt in served XML documents.
* Fixed a regression in rdimport(1) that caused null characters to
be written to cart metadata fields when importing files containing
an 'AIR1' RIFF chunk.