2018-07-19 Fred Gleason <fredg@paravelsystems.com>

* Cleaned up SQL quieries in 'web/rdfeed/' to ensure UTF-8
	compatibility.
This commit is contained in:
Fred Gleason
2018-07-19 15:02:21 +00:00
parent 6a5563f3e7
commit 68cb66468e
2 changed files with 51 additions and 23 deletions

View File

@@ -17181,3 +17181,6 @@
2018-07-19 Fred Gleason <fredg@paravelsystems.com>
* Cleaned up SQL quieries in 'web/rdcastmanager/' to ensure UTF-8
compatibility.
2018-07-19 Fred Gleason <fredg@paravelsystems.com>
* Cleaned up SQL quieries in 'web/rdfeed/' to ensure UTF-8
compatibility.

View File

@@ -32,6 +32,7 @@
#include <rdapplication.h>
#include <rdconf.h>
#include <rddb.h>
#include <rdescape_string.h>
#include <rdfeed.h>
#include <rdfeedlog.h>
#include <rdformpost.h>
@@ -139,14 +140,27 @@ void MainObject::ServeRss(const char *keyname,bool count)
RDSqlQuery *q;
RDSqlQuery *q1;
sql=QString().sprintf("select CHANNEL_TITLE,CHANNEL_DESCRIPTION,\
CHANNEL_CATEGORY,CHANNEL_LINK,CHANNEL_COPYRIGHT,\
CHANNEL_WEBMASTER,CHANNEL_LANGUAGE,\
LAST_BUILD_DATETIME,ORIGIN_DATETIME,\
HEADER_XML,CHANNEL_XML,ITEM_XML,BASE_URL,ID, \
UPLOAD_EXTENSION,CAST_ORDER,REDIRECT_PATH,\
BASE_PREAMBLE from FEEDS \
where KEY_NAME=\"%s\"",keyname);
sql=QString("select ")+
"CHANNEL_TITLE,"+ // 00
"CHANNEL_DESCRIPTION,"+ // 01
"CHANNEL_CATEGORY,"+ // 02
"CHANNEL_LINK,"+ // 03
"CHANNEL_COPYRIGHT,"+ // 04
"CHANNEL_WEBMASTER,"+ // 05
"CHANNEL_LANGUAGE,"+ // 06
"LAST_BUILD_DATETIME,"+ // 07
"ORIGIN_DATETIME,"+ // 08
"HEADER_XML,"+ // 09
"CHANNEL_XML,"+ // 10
"ITEM_XML,"+ // 11
"BASE_URL,"+ // 12
"ID,"+ // 13
"UPLOAD_EXTENSION,"+ // 14
"CAST_ORDER,"+ // 15
"REDIRECT_PATH,"+ // 16
"BASE_PREAMBLE "+ // 17
"from FEEDS where "+
"KEY_NAME=\""+RDEscapeString(keyname)+"\"";
q=new RDSqlQuery(sql);
if(!q->first()) {
printf("Content-type: text/html\n\n");
@@ -189,14 +203,23 @@ void MainObject::ServeRss(const char *keyname,bool count)
//
// Render Item XML
//
sql=QString().sprintf("select ITEM_TITLE,ITEM_DESCRIPTION,ITEM_CATEGORY,\
ITEM_LINK,ITEM_AUTHOR,ITEM_SOURCE_TEXT,\
ITEM_SOURCE_URL,ITEM_COMMENTS,\
AUDIO_FILENAME,AUDIO_LENGTH,AUDIO_TIME,\
EFFECTIVE_DATETIME,ID from PODCASTS \
where (FEED_ID=%d)&&(STATUS=%d) \
order by EFFECTIVE_DATETIME",
q->value(13).toUInt(),RDPodcast::StatusActive);
sql=QString("select ")+
"ITEM_TITLE,"+ // 00
"ITEM_DESCRIPTION,"+ // 01
"ITEM_CATEGORY,"+ // 02
"ITEM_LINK,"+ // 03
"ITEM_AUTHOR,"+ // 04
"ITEM_SOURCE_TEXT,"+ // 05
"ITEM_SOURCE_URL,"+ // 06
"ITEM_COMMENTS,"+ // 07
"AUDIO_FILENAME,"+ // 08
"AUDIO_LENGTH,"+ // 09
"AUDIO_TIME,"+ // 10
"EFFECTIVE_DATETIME,"+ // 11
"ID "+ // 12
"from PODCASTS where "+
QString().sprintf("(FEED_ID=%d)&&",q->value(13).toUInt())+
QString().sprintf("(STATUS=%d)",RDPodcast::StatusActive);
if(q->value(15).toString()=="N") {
sql+=" desc";
}
@@ -226,11 +249,13 @@ void MainObject::ServeLink(const char *keyname,int cast_id,bool count)
QString sql;
RDSqlQuery *q;
sql=QString().sprintf("select FEEDS.BASE_URL,PODCASTS.AUDIO_FILENAME from \
FEEDS left join PODCASTS \
on FEEDS.ID=PODCASTS.FEED_ID \
where (FEEDS.KEY_NAME=\"%s\")&&(PODCASTS.ID=%d)",
(const char *)keyname,cast_id);
sql=QString("select ")+
"FEEDS.BASE_URL,"+ // 00
"PODCASTS.AUDIO_FILENAME "+ // 01
"from FEEDS left join PODCASTS "+
"on FEEDS.ID=PODCASTS.FEED_ID where "+
"(FEEDS.KEY_NAME=\""+RDEscapeString(keyname)+"\")&&"+
QString().sprintf("(PODCASTS.ID=%d)",cast_id);
q=new RDSqlQuery(sql);
if(!q->first()) {
delete q;
@@ -312,8 +337,8 @@ QString MainObject::ResolveAuxWildcards(QString xml,QString keyname,
RDSqlQuery *q1;
keyname.replace(" ","_");
sql=QString().sprintf("select VAR_NAME from AUX_METADATA where FEED_ID=%u",
feed_id);
sql=QString("select VAR_NAME from AUX_METADATA where ")+
QString().sprintf("FEED_ID=%u",feed_id);
q=new RDSqlQuery(sql);
if(q->size()==0) {
delete q;