* Fixed a regression that caused the 'Repost' action in the 'List
Feeds' dialog to fail to post the feed XML in rdadmin(1).
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in the podcasting subsystem that could cause SFTP
operations to fail due to unknown SSH host certificates.
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* Added a 'FEEDS.CDN_PURGE_PLUGIN_PATH' field to the database.
* Incremented the database version to 369.
* Added ' RDFeed::cdnPurgePluginPath()' and
'RDFeed::setCdnPurgePluginPath()' methods.
* Removed the RD_MODULES_DIR #define from 'lib/rd.h'.
* Changed the RD_PYPAD_SCRIPT_DIR #define in 'lib/rd.h' to be
a static value of "/usr/lib/rivendell/pypad".
* Added a 'CDN Purge Plug-In' control to the 'Feed' dialog in
rdadmin(1).
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* Added a 'FEEDS.SHA1_HASH' field to the database.
* Incremented the database version to 368.
* Added 'RDFeed::sha1Hash()' and 'RDFeed::setSha1Hash()' methods.
* Added a 'RDSha1HashData()' function.
* Optimized the podcasting subsystem so as to upload feed XML only
when the XML contents have actually changed.
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* Refactored the RSS reports in rdadmin(1) to include information on
missing items.
* Modified the feed report in rdcastmanager to include information
on missing items.
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* Removed a 'RDFeed::generateReport()' methods.
* Added a 'DownloadRss()' method to the WebAPI.
* Added a 'RDXsltEngine' class.
* Added a 'Generate Front Report' item to the right-click menu in
the 'Podcast Feeds' list in the 'Rivendell Feed List' dialog in
rdadmin(1).
* Added a 'Generate Back Report' item to the right-click menu in
the 'Podcast Feeds' list in the 'Rivendell Feed List' dialog in
rdadmin(1).
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* Modified the podcasting system to sort items in the XML feed
on the basis of the 'Air Date/Time' rather than the 'Posted By'
datetime.
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in rdcastmanager(1) that could cause items from
non-selected feeds to appear in the 'Podcast Item List' dialog.
* Fixed a regression in rdcastmanager(1) that could cause a segfault
when posting a new item.
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* Simplified error return descriptions for the podcast methods in
the Web API.
* Removed the 'RDFeed::Error' enumeration.
* Removed the 'RDFeed::errorString()' method.
* Fixed bugs in rdcatchd(8) in handling errors when posting to
RSS feeds.
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* Added code to catch warning exception when processing image
conversions in 'RDIMResizeImage()'.
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* Added a file format check to the 'Image Manager' dialog in
rdadmin(1) to ensure that only JPEG or PNG formatted image files can
be imported.
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* Added a dependency for ImageMagick's 'Magick++' library interface.
* Added a 'FEED_IMAGES.DATA_MID_THUMB' field to the database.
* Added a 'FEED_IMAGES.DATA_SMALL_THUMB' field to the database.
* Incremented the database version to 365.
* Optimized loading of thumbnail image data in rdadmin(1),
rdcastmanager(1) and rdcatch(1).
* Re-enabled uploads to RSS feeds in rdcatch(1).
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in the podcasting subsystem where a feed with no
provisioned images would generated invalid image URLs.
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* Reverted the following changes:
2022-03-09 Fred Gleason <fredg@paravelsystems.com>
* Fixed a regression in rdlogedit(1) that caused events from
previously viewed logs to be prepended to subsequent logs viewed
during the same session.
2022-03-09 Fred Gleason <fredg@paravelsystems.com>
* Refactored the 'RDAddLog' dialog to allow for instance reuse.
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* Escaped all SQL identifiers in 'lib/'.
* Replaced " with ' delimiters in all SQL literal strings in 'lib/'.
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* Removed the 'USERS.ADMIN_USERS_PRIV' field from the database.
* Added a 'USERS.ADMIN_RSS_PRIV' field to the database.
* Incremented the database version to 346.
* Added 'RDUser:adminRss()' and 'RDUser::setAdminRss()' methods.
* Added an 'Administer RSS Feeds' checkbox to the 'Administrative
Rights' section of the 'User' dialog in rdadmin(1).
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* 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>
* Changed the database field 'FEEDS.PURGE_PASSWORD' from
'varchar(64)' to 'text'.
* Changed the contents of the 'FEEDS.PURGE_PASSWORD' database
field from plaintext to Base64 encoding.
* Incremented the database version to 334.
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 'FEEDS.CHANNEL_AUTHOR_IS_DEFAULT' field to the database.
* Incremented the database version to 332.
* Added 'RDFeed::channelAuthorIsDefault()' and
'RDFeed::setChannelAuthorIsDefault()' methods.
* Added a 'Use as default Item Author' checkbox to the 'Edit 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>
* Modified rdcastmanager(1) to apply the cart title as the default
item title when posting from a cart/cut.
* Modified rdcastmanager(1) to apply the file metadata or filename
as the default item title when posting from a file.
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>
* Dropped the 'FEEDS.AUDIENCE_METRICS' field from the database.
* Dropped the 'FEEDS.KEEP_METADATA' field from the database.
* Dropped the 'FEEDS.MEDIA_LINK_MODE' field from the database.
* Dropped the 'FEEDS.REDIRECT_PATH' field from the database.
* Dropped the 'CAST_DOWNLOADS' table from the database.
* Incremented the database version to 328.
* Removed support for dynamically generated RSS feed metadata.
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* Added a 'FEEDS.CHANNEL_SUB_CATEGORY' field to the database.
* Incremented the database version to 327.
* Added 'RDFeed::channelSubCategory()' and
'RDFeed::setChannelSubCategory()' methods.
* Added a 'RDRssCategoryBox' widget.
* Updated the 'Edit Feed' dialog in rdadmin(1) to use the
'RDRssCategoryBox' widget.
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* Removed the 'exemplar' parameter from the 'RDFeed::create()'
method.
* Removed the 'Base Feed On' dropdown from the 'Add Feed'
dialog in rdadmin(1).
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* Added a 'RDFeed::publicUrl()' static method.
* Added a 'Public URL' column in the 'List Feeds' dialog in
rdadmin(1).
* Removed the 'Superfeed' and 'Description' columns from the
main window of rdcastmanager(1).
* Added a 'Public URL' column and a 'Copy URL to Clipboard'
button to the main window of rdcastmanager(1).
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* Fixed bugs in the podcasting system that caused corrupt URLs
to be generated for GUID and image tags for items contained in
a superfeed.
* Commented out file posting code in the web version of
RDCastManager.
* Disabled the 'Post from Cart/Cut', 'Post from File', 'Edit' and
'Delete' buttons when showing a superfeed in the 'Podcast List'
dialog of rdcastmanager(1).