mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-10-11 09:03:40 +02:00
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:
@@ -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;
|
||||
|
Reference in New Issue
Block a user