49 Commits

Author SHA1 Message Date
Fred Gleason
9123bf420a 2022-03-04 Fred Gleason <fredg@paravelsystems.com>
* Modified the 'RDCart::setSchedCodesList()' so as to normalize
	the case of scheduler codes.

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
2022-03-04 15:55:54 -05:00
Fred Gleason
5afcd7e7af 2022-03-04 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in rdimport(1) that could create duplicate
	Scheduler Code entries when using the '--to-cart' and
	'--add-scheduler-code' switches simultaneously.

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
2022-03-04 13:15:42 -05:00
Fred Gleason
26e323f672 2021-04-06 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in rdimport(1) where the title of an existing cart
	would be overwritten with a default title even when no title
	was found in the file metadata.

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
2021-04-06 11:58:16 -04:00
Fred Gleason
ea4852fa3d 2020-12-09 Fred Gleason <fredg@paravelsystems.com>
* Reverted changed from 2020-12-09.

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
2020-12-09 11:42:38 -05:00
Fred Gleason
e8fcadbac8 2020-12-09 Fred Gleason <fredg@paravelsystems.com>
* Reverted changed from 2020-12-09.

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
2020-12-09 11:39:58 -05:00
Fred Gleason
503de8000d 2020-12-07 Fred Gleason <fredg@paravelsystems.com>
* Added a 'RDCart::ensureTitleIsUnique()' static method.
	* Removed code to make cart titles automatically unique from
	'RDCart::setTitle()'.
	* Refactored rdimport(1) to allow detection of duplicate titles.

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
2020-12-07 15:44:06 -05:00
Fred Gleason
f033d3b4b0 2020-02-03 Fred Gleason <fredg@paravelsystems.com>
* 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.
2020-02-03 18:17:24 -05:00
Patrick Linstruth
5f5d3dbe79 Merge RDCart::setYear fix. 2019-09-12 13:04:47 -07:00
Patrick Linstruth
d1874b868a Database changes for Nexus integration 2019-09-11 12:01:40 -07:00
Fred Gleason
c31c267e8d 2019-09-03 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in 'RDCart::setYear()' that caused invalid SQL to be
	generated when given a null year.
2019-09-03 13:18:13 -04:00
Fred Gleason
ae23c18c62 2019-07-19 Fred Gleason <fredg@paravelsystems.com>
* Added an 'HttpUserAgent=' directive to the '[Identity]' section
	of rd.conf(5).
2019-07-19 13:56:13 -04:00
Fred Gleason
f50447eb8b 2019-06-21 Fred Gleason <fredg@paravelsystems.com>
* Added 'RDApplication::syslog()' methods.
2019-06-24 16:40:18 -04:00
Fred Gleason
3c363ff5f5 2019-03-06 Fred Gleason <fredg@paravelsystems.com>
* Renamed the 'RDWaveData::introStartPos()' method to
	'RDWaveData::talkStartPos()'.
	* Renamed the 'RDWaveData::setIntroStartPos()' method to
	'RDWaveData::setTalkStartPos()'.
	* Renamed the 'RDWaveData::introEndPos()' method to
	'RDWaveData::talkEndPos()'.
	* Renamed the 'RDWaveData::setIntroEndPos()' method to
	'RDWaveData::setTalkEndPos()'.
2019-03-06 11:14:13 -05:00
Patrick Linstruth
3ed7a7ca6f Move 'CART.SCHED_CODES' field to 'CART_SCHED_CODES' table. 2018-11-13 13:16:26 -08:00
Fred Gleason
75bec4d3c4 2018-10-19 Fred Gleason <fredg@paravelsystems.com>
* Removed 'build_win32.bat'.
	* Removed all conditional compilation based on 'WIN32'.
2018-10-19 17:03:58 -04:00
Fred Gleason
8d11616b4b 2018-08-08 Fred Gleason <fredg@paravelsystems.com>
* Modified all instances of 'QStringList::split()' calls to use
	'QString::split()'.
2018-08-08 18:11:23 -04:00
Fred Gleason
796e1bebc3 2018-08-07 Fred Gleason <fredg@paravelsystems.com>
* Removed the 'pam_rd' plug-in.
	* Removed rdchunk(1).
	* Upgraded Qt3 to Qt4.
2018-08-07 10:09:49 -04:00
Fred Gleason
76b4c866eb 2018-08-03 Fred Gleason <fredg@paravelsystems.com>
* Fixed a regression in 'RDCart' that threw a SQL error.
2018-08-03 14:22:43 -04:00
Fred Gleason
ad639bc79e 2018-07-30 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in 'RDAudioExport', 'RDAudioImport',
	'RDAudioStore', 'RDCart', 'RDCopyAudio', 'RDPeakExport',
	'RDRehash', and 'RDTrimAudio' that caused credentials encoded in
	UTF-8 to be corrupted.
2018-07-30 14:47:40 -04:00
Fred Gleason
5482e87e23 2018-07-30 Fred Gleason <fredg@paravelsystems.com>
* 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.
2018-07-30 11:02:55 -04:00
Fred Gleason
91fb00a284 2018-07-30 Fred Gleason <fredg@paravelsystems.com>
* Modified 'RDCart' to use multipart-mime encoding.
2018-07-30 10:07:36 -04:00
Fred Gleason
363dbb7878 2018-07-12 Fred Gleason <fredg@paravelsystems.com>
* Cleaned up SQL quieries in 'lib/' ensure UTF-8 compatibility.
2018-07-12 13:47:20 -04:00
Fred Gleason
c63ae45991 2018-01-03 Fred Gleason <fredg@paravelsystems.com>
* Fixed races in creation of new carts.
2018-01-03 15:36:45 -05:00
Fred Gleason
912479e846 2017-11-20 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug that caused the initial playable cut in a cart set
	for 'By Order' scheduling to be skipped.
2017-11-19 17:09:19 -05:00
Fred Gleason
fdb5917f64 2017-10-13 Fred Gleason <fredg@paravelsystems.com>
* Added a 'GROUPS.DEFAULT_CUT_LIFE' field to the database.
	* Incremented the database version to 269.
	* Added 'RDGroup::defaultCutLife()' and 'RDGroup::setDefaultCutLife()'
	methods.
	* Added a 'Set End Date/Time' control to the 'Edit Group' dialog in
	RDAdmin(1).
2017-10-13 13:53:19 -04:00
Fred Gleason
796164403c 2017-09-01 Fred Gleason <fredg@paravelsystems.com>
* Added 'CUTS.ORIGIN_LOGIN_NAME' and 'CUTS.SOURCE_HOSTNAME' fields to
	the database.
	* Incremented the database version to 267.
	* Added 'RDCut::originLoginName()', 'RDCut::setOriginLoginName()',
	'RDCut::sourceHostname()' and 'RDCut::setSourceHostname()' methods
	in 'lib/rdcut.cpp' and 'lib/rdcut.h'.
	* Added '<originLoginName>' and '<sourceHostname>' tags to the cut
	XML schema in 'RDCart::xmlSql()' and 'RDCut::xml()' methods.
	* Refactored the layout of the 'Cut Info/Record' dialog in RDLibrary.
	* Added a 'Source Host' control to the 'Cut Info/Record' dialog
	in RDLibrary.
2017-09-01 09:34:25 -04:00
Fred Gleason
aef7c2229b 2017-08-31 Fred Gleason <fredg@paravelsystems.com>
* Modified web client components to use a distinctive http USER_AGENT
	string.
2017-08-31 12:38:39 -04:00
Fred Gleason
bec5067090 2017-06-28 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in 'web/rdxport/carts.cpp' and 'web/rdxport/import.cpp'
	that caused the 'EditCart' web API call to return an error when
	attempting to set the Title field to its current value when
	Allow Duplicate Cart Titles was not enabled.
2017-06-28 14:05:43 -04:00
Fred Gleason
108fd8c40c 2017-06-19 Fred Gleason <fredg@paravelsystems.com>
* Added a 'SYSTEM.FIX_DUP_CART_TITLES' field to the database.
	* Incremented the database version to 264.
	* Added 'RDSystem::fixDuplicateCartTitles()' and
	'RDSystem::setFixDuplicateCartTitles()' methods in 'lib/rdsystem.cpp'
	and 'lib/rdsystem.h'.
	* Added an 'Auto-Correct Duplicate Cart Titles' checkbox to the
	'System Settings' dialog in 'rdadmin/edit_settings.cpp' and
	'rdadmin/edit_settings.h'.
	* Modified the 'EditCart' web call to enforce the 'Auto-Correct
	Duplicate Cart Titles' setting.
2017-06-19 13:16:33 -04:00
Fred Gleason
781f6a7ea9 2017-04-17 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in 'lib/rdcart.cpp' that caused the 'Import' web API call
	to return 404 when importing with 'CREATE' set to '1' and unique titles
	enabled in the database.
2017-04-17 12:54:18 -04:00
Fred Gleason
23df8ca675 2017-04-05 Fred Gleason <fredg@paravelsystems.com>
* Fixed a regression in 'lib/carts.cpp' that broke cut listings
	in the 'ListCarts' web API call.
2017-04-05 14:39:06 -04:00
Fred Gleason
b41fb8c657 2017-03-01 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in 'rdlibrary/audio_cart.cpp' where the 'Conductor'
	failed to be imported from RDXL chunks.
	* Added a 'songId' field to the cart metadata XML.
2017-03-01 12:58:12 -05:00
Fred Gleason
0a934357c4 2017-03-01 Fred Gleason <fredg@paravelsystems.com>
* Added 'RDCart::xmlSql()' and second 'RDCart::xml()' methods.
	* Refactored the 'RDCart::xml()' method to use a SQL query.
	* Refactored the Cart and Cut web methods in 'web/rdxport/carts.cpp'
	to use SQL queries.
2017-03-01 11:52:14 -05:00
Fred Gleason
d4682f6e1b 2017-02-16 Fred Gleason <fredg@paravelsystems.com>
* Modified the '<forcedLength>', '<averageLength>',
	'<lengthDeviation>', '<averageSegueLength>' and
	'<averageHookLength>' fields in the return of the 'ListCart'
	and 'ListCarts' web methods to return a two-digit hours field.
2017-02-16 08:15:07 -05:00
Fred Gleason
51cdcfb9be 2016-08-03 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in rdlibrary(1) that caused exports to contain incorrect
	marker data in the RDXL file structure.
2016-08-03 12:21:05 -04:00
Fred Gleason
6c31c9e1d4 2016-07-13 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in the 'RDCart::GetXmlValue()' method that caused
	XML field values not to be unescaped correctly.
2016-07-13 10:47:42 -04:00
Fred Gleason
d8636ebb2c 2016-07-13 Fred Gleason <fredg@paravelsystems.com>
* Implemented storage of RDXML data structures within a 'rdxl'
	user defined information frame in ID3 tags 'lib/rdwavefile.cpp' and
	'lib/rdaudio_convert.cpp'.
2016-07-13 10:11:08 -04:00
Fred Gleason
fc332c3655 2016-07-12 Fred Gleason <fredg@paravelsystems.com>
* Added an '--xml' switch to rdimport(1) in
	'utils/rdimport/rdimport.cpp' and 'utils/rdimport/rdimport.h'.
2016-07-12 08:52:29 -04:00
Fred Gleason
edd8221b6f 2016-07-11 Fred Gleason <fredg@paravelsystems.com>
* Added rdxml_parse_test(1) in 'tests/'.
	* Added a RDCart::readXml()' method in 'lib/rdcart.cpp' and
	'lib/rdcart.h'.
	* Fixed a typo in the 'averageSegueLength' field in the 'RDCart::xml()'
	method in 'lib/rdcart.cpp'.
	* Removed the 'validity' field from the output of the 'RDCart::xml()'
	method in 'lib/rdcart.cpp'.
	* Removed the 'validity' and 'localCounter' fields from the output
	of the 'RDCut::xml()' method in 'lib/rdcut.cpp'.
2016-07-11 14:01:30 -04:00
Fred Gleason
f04fa15090 2016-06-17 Fred Gleason <fredg@paravelsystems.com>
* Modified rdexport(1) to list correct audio format parameters
	in the XML output.
2016-06-17 12:02:43 -04:00
Fred Gleason
d48935a00a 2016-06-15 Fred Gleason <fredg@paravelsystems.com>
* Added an '--xml' switch to rdexport(1) in
	'utils/rdexport/rdexport.cpp' and 'utils/rdexport/rdexport.h'.
2016-06-15 13:01:03 -04:00
Wayne Merricks
f1175cd2f2 Fixes for invalid NULL sql on date/times
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
2016-06-09 00:01:38 +01:00
Wayne Merricks
b9452b8e8d lib/rdcart.cpp MySQL v5.7+ date/time changes 2016-06-04 20:27:14 +01:00
Fred Gleason
698b475933 2016-05-24 Fred Gleason <fredg@paravelsystems.com>
* Removed all CVS tags.
	* Removed 'const char *name' parameter from all QObject contructors.
2016-05-24 13:13:26 -04:00
Fred Gleason
3b766a5e7d 2016-05-18 Fred Gleason <fredg@paravelsystems.com>
* Added an entry for the Broadcast Tools SRC-16 in
	'docs/SWITCHERS.txt'.
	* Added a 'CUT_EVENTS' table to the database.
	* Added a 'DECK_EVENTS' table to the database.
	* Incremented the database version to 256.
	* Implemented a 'Cut Event' ['CE'] RML.
	* Added a 'Event Carts' section to the Edit Deck dialog in
	'rdadmin/edit_deck.cpp' and 'rdadmin/edit_deck.h'.
2016-05-18 13:43:21 -04:00
Brian P. McGlynn
43f7bb297a Favor cuts expiring first in playback 2016-04-23 16:27:51 -04:00
Fred Gleason
03cfa9d614 2016-03-24 Fred Gleason <fredg@paravelsystems.com>
* Update web test methods in 'web/tests/'.
	* Added an 'RDSchedCode' class in 'lib/rdschedcode.cpp' and
	'lib/rdschedcode.h'.
	* Implemented the 'ListSchedCodes' web method in
	'web/rdxport/schedcodes.cpp'.
	* Implemented the 'AssignSchedCode' web method in
	'web/rdxport/schedcodes.cpp'.
	* Implemented the 'UnassignSchedCode' web method in
	'web/rdxport/schedcodes.cpp'.
	* Implemented the 'ListCartSchedCodes' web method in
	'web/rdxport/schedcodes.cpp'.
	* Extended 'RDGetWebTime()' and 'RDGetWebDateTime()' functions to
	support XML 'xs' namespace formats.
	* Implemented '*_POINT' fields in the 'EditCut' web method in
	'web/rdxport/carts.cpp'.
	* Modified the 'RDCart::removeSchedCode()' method so as to treat
	scheduler codes in a case-insensitve manner.
	* Modified the return of the 'EditCut' web method to provide a full
	<cutList> record in 'web/rdxport/carts.cpp'.
2016-03-24 13:53:39 -04:00
Fred Gleason
6d168b0a8f 2016-03-23 Fred Gleason <fredg@paravelsystems.com>
* Added a 'CART.USE_WEIGHTING' field to the database.
	* Added a 'CUTS.PLAY_ORDER' field to the database.
	* Incremented the database version to 254.
	* Added a 'Schedule Cuts By' control to the Edit Cart dialog in
	'rdlibrary/edit_cart.cpp' and 'rdlibrary/edit_cart.h'.
	* Added 'RDCart::useWeighting()' and 'RDCart::setUseWeighting()'
	methods in 'lib/rdcart.cpp' and 'lib/rdcart.h'.
	* Added 'RDCut::playOrder()' and 'RDCut::setPlayOrder()' methods
	in 'lib/rdcut.cpp' and 'lib/rdcut.h'.
2016-03-24 11:38:21 -04:00
Fred Gleason
afd67c7af8 Initial import of CVS-v2_8_branch 2014-08-12 15:13:02 -04:00