mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-10-11 17:13:47 +02:00
2020-05-18 Fred Gleason <fredg@paravelsystems.com>
* Added 'RDRssSchemas' class. Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
31
lib/rdfeed.h
31
lib/rdfeed.h
@@ -25,28 +25,12 @@
|
||||
|
||||
#include <rdapplication.h>
|
||||
#include <rdconfig.h>
|
||||
#include <rdrssschemas.h>
|
||||
#include <rdsettings.h>
|
||||
#include <rdstation.h>
|
||||
#include <rduser.h>
|
||||
#include <rdweb.h>
|
||||
|
||||
//
|
||||
// RSS-2.0.2 Templates
|
||||
//
|
||||
#define RSS_2_0_2_NAME "RSS 2.0.2"
|
||||
|
||||
#define RSS_2_0_2_IMAGE_MIN_SIZE QSize(88,31)
|
||||
#define RSS_2_0_2_IMAGE_MAX_SIZE QSize(144,400)
|
||||
#define RSS_2_0_2_IMAGE_IN_ITEM false
|
||||
|
||||
#define RSS_2_0_2_HEADER_XML "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\">"
|
||||
|
||||
#define RSS_2_0_2_CHANNEL_XML "<title>%TITLE%</title>\n<description>%DESCRIPTION%</description>\n<category>%CATEGORY%</category>\n<link>%LINK%</link>\n<language>%LANGUAGE%</language>\n<copyright>%COPYRIGHT%</copyright>\n<lastBuildDate>%BUILD_DATE%</lastBuildDate>\n<pubDate>%PUBLISH_DATE%</pubDate>\n<managingEditor>%EDITOR%</managingEditor>\n<webMaster>%WEBMASTER%</webMaster>\n<generator>%GENERATOR%</generator>\n<image>\n <url>%IMAGE_URL%</url>\n <title>%TITLE%</title>\n <link>%LINK%</link>\n <width>%IMAGE_WIDTH%</width>\n <height>%IMAGE_HEIGHT%</height>\n <description>%IMAGE_DESCRIPTION%</description>\n</image>\n<atom:link href=\"%FEED_URL%\" rel=\"self\" type=\"application/rss+xml\" />"
|
||||
|
||||
#define RSS_2_0_2_ITEM_XML "<title>%ITEM_TITLE%</title>\n<link>%ITEM_LINK%</link>\n<guid isPermaLink=\"false\">%ITEM_GUID%</guid>\n<description>%ITEM_DESCRIPTION%</description>\n<author>%ITEM_AUTHOR%</author>\n<comments>%ITEM_COMMENTS%</comments>\n<source url=\"%ITEM_SOURCE_URL%\">%ITEM_SOURCE_TEXT%</source>\n<enclosure url=\"%ITEM_AUDIO_URL%\" length=\"%ITEM_AUDIO_LENGTH%\" type=\"audio/mpeg\" />\n<category>%ITEM_CATEGORY%</category>\n<pubDate>%ITEM_PUBLISH_DATE%</pubDate>"
|
||||
|
||||
|
||||
|
||||
#define RDFEED_TOTAL_POST_STEPS 4
|
||||
|
||||
class RDFeed : public QObject
|
||||
@@ -56,9 +40,9 @@ class RDFeed : public QObject
|
||||
enum Error {ErrorOk=0,ErrorNoFile=1,ErrorCannotOpenFile=2,
|
||||
ErrorUnsupportedType=3,ErrorUploadFailed=4,ErrorGeneral=5};
|
||||
enum MediaLinkMode {LinkNone=0,LinkDirect=1,LinkCounted=2};
|
||||
enum RssSchema {CustomSchema=0,Rss202Schema=1,LastSchema=2};
|
||||
RDFeed(const QString &keyname,RDConfig *config,QObject *parent=0);
|
||||
RDFeed(unsigned id,RDConfig *config,QObject *parent=0);
|
||||
~RDFeed();
|
||||
QString keyName() const;
|
||||
unsigned id() const;
|
||||
bool exists() const;
|
||||
@@ -98,8 +82,8 @@ class RDFeed : public QObject
|
||||
void setPurgeUsername(const QString &str) const;
|
||||
QString purgePassword() const;
|
||||
void setPurgePassword(const QString &str) const;
|
||||
RssSchema rssSchema() const;
|
||||
void setRssSchema(RssSchema schema) const;
|
||||
RDRssSchemas::RssSchema rssSchema() const;
|
||||
void setRssSchema(RDRssSchemas::RssSchema schema) const;
|
||||
QString headerXml() const;
|
||||
void setHeaderXml(const QString &str);
|
||||
QString channelXml() const;
|
||||
@@ -155,13 +139,10 @@ class RDFeed : public QObject
|
||||
bool log_debug,RDConfig *config);
|
||||
int totalPostSteps() const;
|
||||
QString rssXml(QString *err_msg,bool *ok=NULL);
|
||||
RDRssSchemas *rssSchemas() const;
|
||||
static unsigned create(const QString &keyname,bool enable_users,
|
||||
QString *err_msg,const QString &exemplar="");
|
||||
static QString errorString(RDFeed::Error err);
|
||||
static QString rssSchemaString(RDFeed::RssSchema schema);
|
||||
static QString rssHeaderTemplate(RssSchema schema);
|
||||
static QString rssChannelTemplate(RssSchema schema);
|
||||
static QString rssItemTemplate(RssSchema schema);
|
||||
static QString imageFilename(int feed_id,int img_id,const QString &ext);
|
||||
|
||||
signals:
|
||||
@@ -173,6 +154,7 @@ class RDFeed : public QObject
|
||||
QString ResolveItemWildcards(const QString &tmplt,RDSqlQuery *item_q,
|
||||
RDSqlQuery *chan_q);
|
||||
QString GetTempFilename() const;
|
||||
void LoadSchemas();
|
||||
void SetRow(const QString ¶m,int value) const;
|
||||
void SetRow(const QString ¶m,const QString &value) const;
|
||||
void SetRow(const QString ¶m,const QDateTime &value,
|
||||
@@ -183,6 +165,7 @@ class RDFeed : public QObject
|
||||
RDConfig *feed_config;
|
||||
QByteArray feed_xml;
|
||||
int feed_xml_ptr;
|
||||
RDRssSchemas *feed_schemas;
|
||||
friend size_t __RDFeed_Readfunction_Callback(char *buffer,size_t size,
|
||||
size_t nitems,void *userdata);
|
||||
};
|
||||
|
Reference in New Issue
Block a user