2020-08-08 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>
This commit is contained in:
Fred Gleason
2020-08-08 12:25:52 -04:00
parent 532904865e
commit a16e1b0dcc
2 changed files with 53 additions and 29 deletions

View File

@@ -20165,3 +20165,8 @@
dialog in rdadmin(1). dialog in rdadmin(1).
2020-08-08 Fred Gleason <fredg@paravelsystems.com> 2020-08-08 Fred Gleason <fredg@paravelsystems.com>
* Changed 'Cast' to 'Item' in rdcastmanager(1). * Changed 'Cast' to 'Item' in rdcastmanager(1).
2020-08-08 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.

View File

@@ -39,6 +39,7 @@
#include "rdescape_string.h" #include "rdescape_string.h"
#include "rdfeed.h" #include "rdfeed.h"
#include "rdlibrary_conf.h" #include "rdlibrary_conf.h"
#include "rdlog.h"
#include "rdlog_event.h" #include "rdlog_event.h"
#include "rdpodcast.h" #include "rdpodcast.h"
#include "rdrenderer.h" #include "rdrenderer.h"
@@ -980,7 +981,9 @@ unsigned RDFeed::postCut(const QString &cutname,Error *err)
settings->setNormalizationLevel(normalizeLevel()/100); settings->setNormalizationLevel(normalizeLevel()/100);
conv->setDestinationSettings(settings); conv->setDestinationSettings(settings);
emit postProgressChanged(1); emit postProgressChanged(1);
switch((export_err=conv->runExport(rda->user()->name(),rda->user()->password(),&audio_conv_err))) { switch((export_err=conv->
runExport(rda->user()->name(),rda->user()->password(),
&audio_conv_err))) {
case RDAudioExport::ErrorOk: case RDAudioExport::ErrorOk:
break; break;
@@ -989,6 +992,7 @@ unsigned RDFeed::postCut(const QString &cutname,Error *err)
delete conv; delete conv;
*err=RDFeed::ErrorUnsupportedType; *err=RDFeed::ErrorUnsupportedType;
unlink(tmpfile); unlink(tmpfile);
emit postProgressChanged(5);
return 0; return 0;
case RDAudioExport::ErrorNoSource: case RDAudioExport::ErrorNoSource:
@@ -1003,6 +1007,7 @@ unsigned RDFeed::postCut(const QString &cutname,Error *err)
delete conv; delete conv;
*err=RDFeed::ErrorGeneral; *err=RDFeed::ErrorGeneral;
unlink(tmpfile); unlink(tmpfile);
emit postProgressChanged(5);
return 0; return 0;
} }
delete settings; delete settings;
@@ -1027,7 +1032,6 @@ unsigned RDFeed::postCut(const QString &cutname,Error *err)
break; break;
default: default:
emit postProgressChanged(5);
*err=RDFeed::ErrorUploadFailed; *err=RDFeed::ErrorUploadFailed;
sql=QString().sprintf("delete from PODCASTS where ID=%u",cast_id); sql=QString().sprintf("delete from PODCASTS where ID=%u",cast_id);
q=new RDSqlQuery(sql); q=new RDSqlQuery(sql);
@@ -1036,6 +1040,7 @@ unsigned RDFeed::postCut(const QString &cutname,Error *err)
delete cast; delete cast;
*err=RDFeed::ErrorUploadFailed; *err=RDFeed::ErrorUploadFailed;
unlink(tmpfile); unlink(tmpfile);
emit postProgressChanged(5);
return 0; return 0;
} }
emit postProgressChanged(3); emit postProgressChanged(3);
@@ -1045,8 +1050,11 @@ unsigned RDFeed::postCut(const QString &cutname,Error *err)
// //
// Set default cast parameters // Set default cast parameters
// //
RDCart *cart=new RDCart(RDCut::cartNumber(cutname));
cast->setItemTitle(cart->title());
cast->setItemAuthor(rda->user()->emailContact()); cast->setItemAuthor(rda->user()->emailContact());
cast->setItemImageId(defaultItemImageId()); cast->setItemImageId(defaultItemImageId());
delete cart;
delete cast; delete cast;
emit postProgressChanged(4); emit postProgressChanged(4);
@@ -1071,6 +1079,7 @@ unsigned RDFeed::postFile(const QString &srcfile,Error *err)
RDUpload *upload=NULL; RDUpload *upload=NULL;
RDUpload::ErrorCode upload_err; RDUpload::ErrorCode upload_err;
RDWaveFile *wave=NULL; RDWaveFile *wave=NULL;
RDWaveData wavedata;
unsigned audio_time=0; unsigned audio_time=0;
emit postProgressRangeChanged(0,4); emit postProgressRangeChanged(0,4);
@@ -1095,8 +1104,8 @@ unsigned RDFeed::postFile(const QString &srcfile,Error *err)
switch(conv->convert()) { switch(conv->convert()) {
case RDAudioConvert::ErrorOk: case RDAudioConvert::ErrorOk:
wave=new RDWaveFile(tmpfile); wave=new RDWaveFile(srcfile);
if(wave->openWave()) { if(wave->openWave(&wavedata)) {
audio_time=wave->getExtTimeLength(); audio_time=wave->getExtTimeLength();
} }
delete wave; delete wave;
@@ -1104,11 +1113,11 @@ unsigned RDFeed::postFile(const QString &srcfile,Error *err)
case RDAudioConvert::ErrorInvalidSettings: case RDAudioConvert::ErrorInvalidSettings:
case RDAudioConvert::ErrorFormatNotSupported: case RDAudioConvert::ErrorFormatNotSupported:
emit postProgressChanged(4);
delete settings; delete settings;
delete conv; delete conv;
*err=RDFeed::ErrorUnsupportedType; *err=RDFeed::ErrorUnsupportedType;
unlink(tmpfile); unlink(tmpfile);
emit postProgressChanged(4);
return 0; return 0;
case RDAudioConvert::ErrorNoSource: case RDAudioConvert::ErrorNoSource:
@@ -1120,11 +1129,11 @@ unsigned RDFeed::postFile(const QString &srcfile,Error *err)
case RDAudioConvert::ErrorInvalidSpeed: case RDAudioConvert::ErrorInvalidSpeed:
case RDAudioConvert::ErrorFormatError: case RDAudioConvert::ErrorFormatError:
case RDAudioConvert::ErrorNoSpace: case RDAudioConvert::ErrorNoSpace:
emit postProgressChanged(4);
delete settings; delete settings;
delete conv; delete conv;
*err=RDFeed::ErrorGeneral; *err=RDFeed::ErrorGeneral;
unlink(tmpfile); unlink(tmpfile);
emit postProgressChanged(4);
return 0; return 0;
} }
delete settings; delete settings;
@@ -1153,7 +1162,6 @@ unsigned RDFeed::postFile(const QString &srcfile,Error *err)
break; break;
default: default:
emit postProgressChanged(4);
*err=RDFeed::ErrorUploadFailed; *err=RDFeed::ErrorUploadFailed;
sql=QString().sprintf("delete from PODCASTS where ID=%u",cast_id); sql=QString().sprintf("delete from PODCASTS where ID=%u",cast_id);
q=new RDSqlQuery(sql); q=new RDSqlQuery(sql);
@@ -1162,6 +1170,7 @@ unsigned RDFeed::postFile(const QString &srcfile,Error *err)
delete cast; delete cast;
*err=RDFeed::ErrorUploadFailed; *err=RDFeed::ErrorUploadFailed;
unlink(tmpfile); unlink(tmpfile);
emit postProgressChanged(4);
return 0; return 0;
} }
delete upload; delete upload;
@@ -1172,6 +1181,12 @@ unsigned RDFeed::postFile(const QString &srcfile,Error *err)
// //
// Set default cast parameters // Set default cast parameters
// //
if(wavedata.metadataFound()&&(!wavedata.title().isEmpty())) {
cast->setItemTitle(wavedata.title());
}
else {
cast->setItemTitle(srcfile.split("/").last());
}
cast->setItemAuthor(rda->user()->emailContact()); cast->setItemAuthor(rda->user()->emailContact());
cast->setItemImageId(defaultItemImageId()); cast->setItemImageId(defaultItemImageId());
delete cast; delete cast;
@@ -1199,22 +1214,22 @@ unsigned RDFeed::postLog(const QString &logname,const QTime &start_time,
RDUpload::ErrorCode upload_err; RDUpload::ErrorCode upload_err;
RDRenderer *renderer=NULL; RDRenderer *renderer=NULL;
RDSettings *settings=NULL; RDSettings *settings=NULL;
RDLogEvent *log=NULL; RDLogEvent *log_event=NULL;
emit postProgressChanged(0); emit postProgressChanged(0);
// //
// Open Log // Open Log
// //
log=new RDLogEvent(logname); log_event=new RDLogEvent(logname);
log->load(); log_event->load();
if(!log->exists()) { if(!log_event->exists()) {
*err=RDFeed::ErrorNoLog; *err=RDFeed::ErrorNoLog;
delete log; delete log_event;
return 0; return 0;
} }
emit postProgressRangeChanged(0,3+log->size()); emit postProgressRangeChanged(0,3+log_event->size());
// //
// Render Log // Render Log
@@ -1236,24 +1251,25 @@ unsigned RDFeed::postLog(const QString &logname,const QTime &start_time,
printf("first: %d last: %d\n",start_line,end_line); printf("first: %d last: %d\n",start_line,end_line);
if(!renderer->renderToFile(tmpfile,log,settings,start_time,stop_at_stop, if(!renderer->renderToFile(tmpfile,log_event,settings,start_time,stop_at_stop,
&err_msg,start_line,end_line)) { &err_msg,start_line,end_line)) {
*err=RDFeed::ErrorRenderError; *err=RDFeed::ErrorRenderError;
delete renderer; delete renderer;
delete settings; delete settings;
delete log; delete log_event;
unlink(tmpfile); unlink(tmpfile);
return 0; return 0;
} }
delete renderer; delete renderer;
emit postProgressChanged(1+log->size()); emit postProgressChanged(1+log_event->size());
// //
// Upload Rendered File // Upload Rendered File
// //
QFile f(tmpfile); QFile f(tmpfile);
unsigned cast_id=CreateCast(&destfile,f.size(),log->length(0,log->size())); unsigned cast_id=
CreateCast(&destfile,f.size(),log_event->length(0,log_event->size()));
RDPodcast *cast=new RDPodcast(feed_config,cast_id); RDPodcast *cast=new RDPodcast(feed_config,cast_id);
upload=new RDUpload(rda->config(),this); upload=new RDUpload(rda->config(),this);
upload->setSourceFile(tmpfile); upload->setSourceFile(tmpfile);
@@ -1262,13 +1278,12 @@ unsigned RDFeed::postLog(const QString &logname,const QTime &start_time,
rda->config()->logXloadDebugData()))) { rda->config()->logXloadDebugData()))) {
case RDUpload::ErrorOk: case RDUpload::ErrorOk:
sql=QString().sprintf("update PODCASTS set AUDIO_TIME=%u where ID=%u", sql=QString().sprintf("update PODCASTS set AUDIO_TIME=%u where ID=%u",
log->length(0,log->size()),cast_id); log_event->length(0,log_event->size()),cast_id);
q=new RDSqlQuery(sql); q=new RDSqlQuery(sql);
delete q; delete q;
break; break;
default: default:
//emit postProgressChanged(totalPostSteps());
*err=RDFeed::ErrorUploadFailed; *err=RDFeed::ErrorUploadFailed;
sql=QString().sprintf("delete from PODCASTS where ID=%u",cast_id); sql=QString().sprintf("delete from PODCASTS where ID=%u",cast_id);
q=new RDSqlQuery(sql); q=new RDSqlQuery(sql);
@@ -1276,37 +1291,41 @@ unsigned RDFeed::postLog(const QString &logname,const QTime &start_time,
delete upload; delete upload;
delete cast; delete cast;
delete settings; delete settings;
delete log; delete log_event;
*err=RDFeed::ErrorUploadFailed; *err=RDFeed::ErrorUploadFailed;
unlink(tmpfile); unlink(tmpfile);
emit postProgressChanged(3+log_event->size());
return 0; return 0;
} }
emit postProgressChanged(2+log->size()); emit postProgressChanged(2+log_event->size());
//unlink(QString(tmpfile)+".wav");
unlink(tmpfile); unlink(tmpfile);
// //
// Set default cast parameters // Set default cast parameters
// //
RDLog *log=new RDLog(logname);
if(log->description().isEmpty()) {
cast->setItemTitle(logname+" "+tr("log"));
}
else {
cast->setItemTitle(log->description());
}
cast->setItemAuthor(rda->user()->emailContact()); cast->setItemAuthor(rda->user()->emailContact());
cast->setItemImageId(defaultItemImageId()); cast->setItemImageId(defaultItemImageId());
delete cast; delete log;
// emit postProgressChanged(4);
postXml(&err_msg); postXml(&err_msg);
// emit postProgressChanged(totalPostSteps());
*err=RDFeed::ErrorOk; *err=RDFeed::ErrorOk;
emit postProgressChanged(3+log->size()); emit postProgressChanged(3+log_event->size());
delete cast;
delete upload; delete upload;
// delete cast;
delete settings; delete settings;
delete log; delete log_event;
unlink(tmpfile); unlink(tmpfile);
return cast_id; return cast_id;