* Implemented the 'Repost' button on the 'Rivendell Feed List'
dialog in rdadmin(1).
* Added an 'Unpost' button to the 'Rivendell Feed List' dialog
in rdadmin(1).
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* Added a 'PostPodcast' method to the Web API.
* Added a 'RemovePodcast' method to the Web API.
* Added a 'PostRss' method to the Web API.
* Added a 'RemoveRss' method to the Web API.
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* Added a 'PODCASTS.SHA1_HASH' field to the database.
* Incremented the database version to 335.
* Added 'RDPodcast::sha1Hash()' and 'RDPodcast::setSha1Hash()'
methods.
* Implemented audio relinking for podcast media files.
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* Added a 'STATIONS.SSH_IDENTITY_FILE' field to the database.
* Added a 'RECORDINGS.URL_USE_ID_FILE' field to the database.
* Added a 'FEEDS.PURGE_USE_ID_FILE' field to the database.
* Incremented the database version to 333.
* Added 'RDStation::sshIdentityFile()' and
'RDStation::setSshIdentityFile()' methods.
* Added 'RDRecording::urlUseIdFile()' and
'RDRecording::setUrlUseIdFile()' methods.
* Added 'RDFeed::purgeUseIdFile()' and 'RDFeed::setPurgeUseIdFile()'
methods.
* Added a 'SSH Ident. File' control to the 'Host' dialog in
rdadmin(1).
* Added an 'Authenticate with local identity file' checkbox to
the 'Feed' dialog in rdadmin(1).
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* Added a 'PODCASTS.ORIGIN_LOGIN_NAME' field to the database.
* Added a 'PODCASTS.ORIGIN_STATION' field to the database.
* Incremented the database version to 330.
* Changed the 'Origin' column to 'Start' in the 'Podcast Item List'
dialog in rdcastmanager(1).
* Added a 'Posted By' column to the 'Podcast Item List' dialog in
rdcastmanager(1).
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* Added a 'SYSTEM.RSS_PROCESSOR_STATION' field to the database.
* Added a 'PODCASTS.EXPIRATION_DATETIME' field to the database.
* Dropped the 'PODCASTS.SHELF_LIFE' field from the database.
* Incremented the database version to 329.
* Modified convention to use local system time for all podcast
components.
* Added 'RDPodcast::expirationDateTime()' and
'RDPodcast::setExpirationDateTime()' methods.
* Removed 'RDPodcast::shelfLife()' and 'RDPodcast::setShelfLife()'
methods.
* Added an rdrssd(8) daemon.
* Removed the rdpurgecasts(8) utility.
* Added 'RDSystem::rssProcessorStation()' and
'RDSystem::setRssProcessorStation()' methods.
* Added a 'Process RSS Updates' control to the 'System-Wide Settings'
dialog in rdadmin(1).
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* Added 'RDPodcast::itemExplicit()', 'RDPodcast::setItemExplicit()',
'RDPodcast::itemImageId()', and 'RDPodcast::setItemImageId()'
methods.
* Added a 'Post contains explicit content' checkbox to the 'Edit
Podcast' dialog in rdcastmanager(1).
* Added an 'Image' control to the 'Edit Podcast dialog in
rdcastmanager(1).
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* 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.
* Refactored logging system to use syslog(3) exclusively.
* Removed the 'Facility=', 'LogDirectory=', 'CoreDumpDirectory='
and 'LogPattern=' directives from rd.conf(5).
* Cleaned up memory leaks in 'RDAudioExport', 'RDAudioImport',
'RDAudioStore', 'RDCart', 'RDCopyAudio', 'RDPeakExport',
'RDRehash', and 'RDTrimAudio'.
* Modified Xload operations in 'RDDelete', 'RDDownload' and
'RDUpload' to work properly with credentials using UTF-8 strings.
Most files are simple swaps to get rid of extra " as a NULL return will give
invalid SQL if used as follows UPDATE x SET y="NULL";
See github issue 121 for more info.
Extra changes have been made to the following files:
* lib/rdcartslot.cpp
- Added a QDateTime variable to prevent EVENT_DATETIME becoming
"2016-06-09" "NULL" as it was checked separately for date and time
* lib/rdcut.cpp
- Reworked START_DATETIME and END_DATETIME to save the SQL ifs. I believe this
makes it easier to read and understand.
- The >QDate(1900,1,1) and < 8000 is probably not needed but I left it there
just in case.
* lib/rdescape_string.cpp
- Reworked to add extra " if the date is not NULL see issue 121
* lib/rdfeed.cpp && lib/rdpodcast.cpp
- Had to add a SetRow for QDateTime as with the string conversion the existing
SetRow would add an extra set of "
* lib/rdsound_panel.cpp && rdairplay/log_traffic.cpp
&& utils/rddgimport/rddgimport.cpp
- Added a QString to contain EVENT_DATETIME to prevent double checks of date
and time separately (similar to lib/rdcartslot.cpp)
* rdcatchd/rdcatchd.cpp
- Reverted the changes. The RML here is not touching the DB so is fine, plus
with the RDCheckDateTime changes you'd have extra " unless it was NULL
* tests/sas_switch_torture.cpp && sas_torture.cpp
- Included missing rdescape_string.h
This doesn't use a dedicated setRow, instead it converts to QString and then
tries to insert the dates instead.
Amended setOrigin and setEffectiveDateTime to use RDCheckDateTime