From b326c2d24f5c8f0d69ef4ca277ca4c0f12e483b1 Mon Sep 17 00:00:00 2001 From: Fred Gleason Date: Wed, 20 May 2020 12:42:54 -0400 Subject: [PATCH] 2020-05-20 Fred Gleason * Added 'FEEDS.CHANNEL_AUTHOR', 'FEEDS.CHANNEL_OWNER_NAME', 'FEEDS.CHANNEL_OWNER_EMAIL', 'FEEDS.CHANNEL_EXPLICIT' and 'PODCASTS.ITEM_EXPLICIT' fields to the database. * Incremented the database version to 326. * Added 'RDFeed::channelAuthor()', 'RDFeed::setChannelAuthor()', 'RDFeed::channelOwnerName()', 'RDFeed::setChannelOwnerName()', 'RDFeed::channelOwnerEmail(), 'RDFeed::setChannelOwnerEmail()', 'RDFeed::channelExplicit()', 'RDFeed::setChannelExplicit()', 'RDPodcast::itemExplicit()' and 'RDPodcast::setItemExplicit()' methods. * Added 'Author', Owner Name' and 'Owner E-Mail controls to the 'Edit Feed' dialog box in rdadmin(1). * Added a 'Channel contains explicit content' checkbox to the 'Edit Feed' dialog box in rdadmin(1). Signed-off-by: Fred Gleason --- ChangeLog | 15 ++ docs/tables/feeds.txt | 18 ++- docs/tables/podcasts.txt | 1 + lib/dbversion.h | 2 +- lib/rdfeed.cpp | 197 +++++++++++++++++-------- lib/rdfeed.h | 8 + lib/rdrssschemas.cpp | 35 ++++- lib/rdrssschemas.h | 4 +- rdadmin/edit_feed.cpp | 257 +++++++++++++++++++++------------ rdadmin/edit_feed.h | 10 +- rdadmin/rdadmin_cs.ts | 26 +++- rdadmin/rdadmin_de.ts | 32 ++-- rdadmin/rdadmin_es.ts | 26 +++- rdadmin/rdadmin_fr.ts | 32 ++-- rdadmin/rdadmin_nb.ts | 32 ++-- rdadmin/rdadmin_nn.ts | 32 ++-- rdadmin/rdadmin_pt_BR.ts | 32 ++-- utils/rddbmgr/revertschema.cpp | 13 ++ utils/rddbmgr/schemamap.cpp | 3 +- utils/rddbmgr/updateschema.cpp | 30 ++++ 20 files changed, 574 insertions(+), 231 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0de9272a..228ff2f9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -19946,3 +19946,18 @@ * Added 'RDRssSchemas' class. 2020-05-18 Fred Gleason * Added code to remove remote imaging when deleting an RSS feed. +2020-05-20 Fred Gleason + * Added 'FEEDS.CHANNEL_AUTHOR', 'FEEDS.CHANNEL_OWNER_NAME', + 'FEEDS.CHANNEL_OWNER_EMAIL', 'FEEDS.CHANNEL_EXPLICIT' and + 'PODCASTS.ITEM_EXPLICIT' fields to the database. + * Incremented the database version to 326. + * Added 'RDFeed::channelAuthor()', 'RDFeed::setChannelAuthor()', + 'RDFeed::channelOwnerName()', 'RDFeed::setChannelOwnerName()', + 'RDFeed::channelOwnerEmail(), 'RDFeed::setChannelOwnerEmail()', + 'RDFeed::channelExplicit()', 'RDFeed::setChannelExplicit()', + 'RDPodcast::itemExplicit()' and 'RDPodcast::setItemExplicit()' + methods. + * Added 'Author', Owner Name' and 'Owner E-Mail controls to the + 'Edit Feed' dialog box in rdadmin(1). + * Added a 'Channel contains explicit content' checkbox to the + 'Edit Feed' dialog box in rdadmin(1). diff --git a/docs/tables/feeds.txt b/docs/tables/feeds.txt index b9b3537f..8a134f61 100644 --- a/docs/tables/feeds.txt +++ b/docs/tables/feeds.txt @@ -4,18 +4,22 @@ The FEEDS table holds data concerning which defines RSS feeds. FIELD NAME TYPE REMARKS --------------------------------------------------------------- -ID int(10) unsigned Primary key, auto increment -KEY_NAME varchar(8) Unique -IS_SUPERFEED enum('N','Y') -AUDIENCE_METRICS enum('N','Y') -CHANNEL_TITLE varchar(191) -CHANNEL_DESCRIPTION text -CHANNEL_CATEGORY varchar(64) +ID int(10) unsigned Primary key, auto increment +KEY_NAME varchar(8) Unique +IS_SUPERFEED enum('N','Y') +AUDIENCE_METRICS enum('N','Y') +CHANNEL_TITLE varchar(191) +CHANNEL_DESCRIPTION text +CHANNEL_CATEGORY varchar(64) CHANNEL_LINK varchar(191) CHANNEL_COPYRIGHT varchar(64) CHANNEL_EDITOR varchar(64) +CHANNEL_AUTHOR varchar(64) +CHANNEL_OWNER_NAME varchar(64) +CHANNEL_OWNER_EMAIL varchar(64) CHANNEL_WEBMASTER varchar(64) CHANNEL_LANGUAGE varchar(5) +CHANNEL_EXPLICIT enum('N','Y') CHANNEL_IMAGE_ID int(11) From FEED_IMAGES.ID BASE_URL varchar(191) BASE_PREAMBLE varchar(191) diff --git a/docs/tables/podcasts.txt b/docs/tables/podcasts.txt index 84781a62..0b862239 100644 --- a/docs/tables/podcasts.txt +++ b/docs/tables/podcasts.txt @@ -15,6 +15,7 @@ ITEM_COMMENTS varchar(191) ITEM_AUTHOR varchar(191) ITEM_SOURCE_TEXT varchar(64) ITEM_SOURCE_URL varchar(191) +ITEM_EXPLICIT enum('N','Y') ITEM_IMAGE_ID int(11) From FEED_IMAGES.ID AUDIO_FILENAME varchar(191) AUDIO_LENGTH int(10) unsigned diff --git a/lib/dbversion.h b/lib/dbversion.h index d1ee3c65..b329c839 100644 --- a/lib/dbversion.h +++ b/lib/dbversion.h @@ -24,7 +24,7 @@ /* * Current Database Version */ -#define RD_VERSION_DATABASE 325 +#define RD_VERSION_DATABASE 326 #endif // DBVERSION_H diff --git a/lib/rdfeed.cpp b/lib/rdfeed.cpp index 6f905663..c0b67247 100644 --- a/lib/rdfeed.cpp +++ b/lib/rdfeed.cpp @@ -279,6 +279,45 @@ void RDFeed::setChannelEditor(const QString &str) const } +QString RDFeed::channelAuthor() const +{ + return RDGetSqlValue("FEEDS","KEY_NAME",feed_keyname,"CHANNEL_AUTHOR"). + toString(); +} + + +void RDFeed::setChannelAuthor(const QString &str) const +{ + SetRow("CHANNEL_AUTHOR",str); +} + + +QString RDFeed::channelOwnerName() const +{ + return RDGetSqlValue("FEEDS","KEY_NAME",feed_keyname,"CHANNEL_OWNER_NAME"). + toString(); +} + + +void RDFeed::setChannelOwnerName(const QString &str) const +{ + SetRow("CHANNEL_OWNER_NAME",str); +} + + +QString RDFeed::channelOwnerEmail() const +{ + return RDGetSqlValue("FEEDS","KEY_NAME",feed_keyname,"CHANNEL_OWNER_EMAIL"). + toString(); +} + + +void RDFeed::setChannelOwnerEmail(const QString &str) const +{ + SetRow("CHANNEL_OWNER_EMAIL",str); +} + + QString RDFeed::channelLanguage() const { return RDGetSqlValue("FEEDS","KEY_NAME",feed_keyname,"CHANNEL_LANGUAGE"). @@ -292,6 +331,19 @@ void RDFeed::setChannelLanguage(const QString &str) } +bool RDFeed::channelExplicit() const +{ + return RDBool(RDGetSqlValue("FEEDS","KEY_NAME",feed_keyname, + "CHANNEL_EXPLICIT").toString()); +} + + +void RDFeed::setChannelExplicit(bool state) const +{ + SetRow("CHANNEL_EXPLICIT",RDYesNo(state)); +} + + int RDFeed::channelImageId() const { return RDGetSqlValue("FEEDS","KEY_NAME",feed_keyname,"CHANNEL_IMAGE_ID"). @@ -1192,26 +1244,30 @@ QString RDFeed::rssXml(QString *err_msg,bool *ok) "FEEDS.CHANNEL_LINK,"+ // 03 "FEEDS.CHANNEL_COPYRIGHT,"+ // 04 "FEEDS.CHANNEL_EDITOR,"+ // 05 - "FEEDS.CHANNEL_WEBMASTER,"+ // 06 - "FEEDS.CHANNEL_LANGUAGE,"+ // 07 - "FEEDS.LAST_BUILD_DATETIME,"+ // 08 - "FEEDS.ORIGIN_DATETIME,"+ // 09 - "FEEDS.HEADER_XML,"+ // 10 - "FEEDS.CHANNEL_XML,"+ // 11 - "FEEDS.ITEM_XML,"+ // 12 - "FEEDS.BASE_URL,"+ // 13 - "FEEDS.ID,"+ // 14 - "FEEDS.UPLOAD_EXTENSION,"+ // 15 - "FEEDS.CAST_ORDER,"+ // 16 - "FEEDS.REDIRECT_PATH,"+ // 17 - "FEEDS.BASE_PREAMBLE,"+ // 18 - "FEEDS.AUDIENCE_METRICS,"+ // 19 - "FEEDS.IS_SUPERFEED,"+ // 20 - "FEED_IMAGES.ID,"+ // 21 - "FEED_IMAGES.WIDTH,"+ // 22 - "FEED_IMAGES.HEIGHT,"+ // 23 - "FEED_IMAGES.DESCRIPTION,"+ // 24 - "FEED_IMAGES.FILE_EXTENSION "+ // 25 + "FEEDS.CHANNEL_AUTHOR,"+ // 06 + "FEEDS.CHANNEL_OWNER_NAME,"+ // 07 + "FEEDS.CHANNEL_OWNER_EMAIL,"+ // 08 + "FEEDS.CHANNEL_WEBMASTER,"+ // 09 + "FEEDS.CHANNEL_LANGUAGE,"+ // 10 + "FEEDS.CHANNEL_EXPLICIT,"+ // 11 + "FEEDS.LAST_BUILD_DATETIME,"+ // 12 + "FEEDS.ORIGIN_DATETIME,"+ // 13 + "FEEDS.HEADER_XML,"+ // 14 + "FEEDS.CHANNEL_XML,"+ // 15 + "FEEDS.ITEM_XML,"+ // 16 + "FEEDS.BASE_URL,"+ // 17 + "FEEDS.ID,"+ // 18 + "FEEDS.UPLOAD_EXTENSION,"+ // 19 + "FEEDS.CAST_ORDER,"+ // 20 + "FEEDS.REDIRECT_PATH,"+ // 21 + "FEEDS.BASE_PREAMBLE,"+ // 22 + "FEEDS.AUDIENCE_METRICS,"+ // 23 + "FEEDS.IS_SUPERFEED,"+ // 24 + "FEED_IMAGES.ID,"+ // 25 + "FEED_IMAGES.WIDTH,"+ // 26 + "FEED_IMAGES.HEIGHT,"+ // 27 + "FEED_IMAGES.DESCRIPTION,"+ // 28 + "FEED_IMAGES.FILE_EXTENSION "+ // 29 "from FEEDS "; sql+="left join FEED_IMAGES "; sql+="on FEEDS.CHANNEL_IMAGE_ID=FEED_IMAGES.ID "; @@ -1230,9 +1286,9 @@ QString RDFeed::rssXml(QString *err_msg,bool *ok) QString channel_template=rssSchemas()->channelTemplate(rssSchema()); QString item_template=rssSchemas()->itemTemplate(rssSchema()); if(rssSchema()==RDRssSchemas::CustomSchema) { - header_template=q->value(10).toString(); - channel_template=q->value(11).toString(); - item_template=q->value(12).toString(); + header_template=q->value(14).toString(); + channel_template=q->value(15).toString(); + item_template=q->value(16).toString(); } // @@ -1250,20 +1306,20 @@ QString RDFeed::rssXml(QString *err_msg,bool *ok) // Render Item XML // QString where; - if(q->value(20).toString()=="Y") { + if(q->value(24).toString()=="Y") { sql=QString("select ")+ "MEMBER_FEED_ID "+ // 00 "from SUPERFEED_MAPS where "+ - QString().sprintf("FEED_ID=%d",q->value(14).toUInt()); + QString().sprintf("FEED_ID=%d",q->value(18).toUInt()); q1=new RDSqlQuery(sql); while(q1->next()) { - where+=QString().sprintf("(FEED_ID=%u) || ",q1->value(0).toUInt()); + where+=QString().sprintf("(PODCASTS.FEED_ID=%u) || ",q1->value(0).toUInt()); } delete q1; where=("("+where.left(where.length()-4)+") && "); } else { - where =QString().sprintf("(FEED_ID=%u)&&",q->value(14).toUInt()); + where =QString().sprintf("(PODCASTS.FEED_ID=%u)&&",q->value(18).toUInt()); } sql=QString("select ")+ "PODCASTS.ITEM_TITLE,"+ // 00 @@ -1274,18 +1330,26 @@ QString RDFeed::rssXml(QString *err_msg,bool *ok) "PODCASTS.ITEM_SOURCE_TEXT,"+ // 05 "PODCASTS.ITEM_SOURCE_URL,"+ // 06 "PODCASTS.ITEM_COMMENTS,"+ // 07 - "PODCASTS.AUDIO_FILENAME,"+ // 08 - "PODCASTS.AUDIO_LENGTH,"+ // 09 - "PODCASTS.AUDIO_TIME,"+ // 10 - "PODCASTS.EFFECTIVE_DATETIME,"+ // 11 - "PODCASTS.ID,"+ // 12 - "FEEDS.BASE_URL "+ // 13 + "PODCASTS.ITEM_EXPLICIT,"+ // 08 + "PODCASTS.AUDIO_FILENAME,"+ // 09 + "PODCASTS.AUDIO_LENGTH,"+ // 10 + "PODCASTS.AUDIO_TIME,"+ // 11 + "PODCASTS.EFFECTIVE_DATETIME,"+ // 12 + "PODCASTS.ID,"+ // 13 + "FEEDS.BASE_URL,"+ // 14 + "FEED_IMAGES.ID,"+ // 15 + "FEED_IMAGES.WIDTH,"+ // 16 + "FEED_IMAGES.HEIGHT,"+ // 17 + "FEED_IMAGES.DESCRIPTION,"+ // 18 + "FEED_IMAGES.FILE_EXTENSION "+ // 19 "from PODCASTS left join FEEDS "+ - "on PODCASTS.FEED_ID=FEEDS.ID where "+ + "on PODCASTS.FEED_ID=FEEDS.ID "+ + "left join FEED_IMAGES "+ + "on PODCASTS.ITEM_IMAGE_ID=FEED_IMAGES.ID where "+ where+ QString().sprintf("(PODCASTS.STATUS=%d) ",RDPodcast::StatusActive)+ "order by PODCASTS.ORIGIN_DATETIME"; - if(q->value(16).toString()=="N") { + if(q->value(20).toString()=="N") { sql+=" desc"; } q1=new RDSqlQuery(sql); @@ -1635,23 +1699,31 @@ QString RDFeed::ResolveChannelWildcards(const QString &tmplt,RDSqlQuery *chan_q) ret.replace("%LINK%",RDXmlEscape(chan_q->value(3).toString())); ret.replace("%COPYRIGHT%",RDXmlEscape(chan_q->value(4).toString())); ret.replace("%EDITOR%",RDXmlEscape(chan_q->value(5).toString())); - ret.replace("%WEBMASTER%",RDXmlEscape(chan_q->value(6).toString())); - ret.replace("%LANGUAGE%",RDXmlEscape(chan_q->value(7).toString())); - ret.replace("%BUILD_DATE%",chan_q->value(8).toDateTime(). + ret.replace("%AUTHOR%",RDXmlEscape(chan_q->value(6).toString())); + ret.replace("%OWNER_NAME%",RDXmlEscape(chan_q->value(7).toString())); + ret.replace("%OWNER_EMAIL%",RDXmlEscape(chan_q->value(8).toString())); + ret.replace("%WEBMASTER%",RDXmlEscape(chan_q->value(9).toString())); + ret.replace("%LANGUAGE%",RDXmlEscape(chan_q->value(10).toString())); + QString explicit_str="false"; + if(chan_q->value(11).toString()=="Y") { + explicit_str="true"; + } + ret.replace("%EXPLICIT%",RDXmlEscape(explicit_str)); + ret.replace("%BUILD_DATE%",chan_q->value(12).toDateTime(). toString("ddd, d MMM yyyy hh:mm:ss ")+"GMT"); - ret.replace("%PUBLISH_DATE%",chan_q->value(9).toDateTime(). + ret.replace("%PUBLISH_DATE%",chan_q->value(13).toDateTime(). toString("ddd, d MMM yyyy hh:mm:ss ")+"GMT"); ret.replace("%GENERATOR%",QString("Rivendell ")+VERSION); - ret.replace("%FEED_URL%",RDXmlEscape(chan_q->value(13).toString())+"/"+ + ret.replace("%FEED_URL%",RDXmlEscape(chan_q->value(17).toString())+"/"+ RDXmlEscape(keyName()+"."+RD_RSS_XML_FILE_EXTENSION)); - ret.replace("%IMAGE_URL%",chan_q->value(13).toString()+"/"+ - RDFeed::imageFilename(id(),chan_q->value(21).toInt(), - chan_q->value(25).toString())); + ret.replace("%IMAGE_URL%",chan_q->value(17).toString()+"/"+ + RDFeed::imageFilename(id(),chan_q->value(25).toInt(), + chan_q->value(29).toString())); ret.replace("%IMAGE_WIDTH%", - QString().sprintf("%d",chan_q->value(22).toInt())); + QString().sprintf("%d",chan_q->value(26).toInt())); ret.replace("%IMAGE_HEIGHT%", - QString().sprintf("%d",chan_q->value(23).toInt())); - ret.replace("%IMAGE_DESCRIPTION%",chan_q->value(24).toString()); + QString().sprintf("%d",chan_q->value(26).toInt())); + ret.replace("%IMAGE_DESCRIPTION%",chan_q->value(28).toString()); return ret; } @@ -1680,29 +1752,40 @@ QString RDFeed::ResolveItemWildcards(const QString &tmplt,RDSqlQuery *item_q, ret.replace("%ITEM_SOURCE_TEXT%", RDXmlEscape(chan_q->value(0).toString())); ret.replace("%ITEM_SOURCE_URL%", - RDXmlEscape(item_q->value(13).toString()+"/"+keyName())); + RDXmlEscape(item_q->value(14).toString()+"/"+keyName())); } ret.replace("%ITEM_COMMENTS%", RDXmlEscape(item_q->value(7).toString())); - if(chan_q->value(19).toString()=="Y") { + QString explicit_str="false"; + if(item_q->value(8).toString()=="Y") { + explicit_str="true"; + } + ret.replace("%ITEM_EXPLICIT%",explicit_str); + if(chan_q->value(23).toString()=="Y") { ret.replace("%ITEM_AUDIO_URL%", RDXmlEscape(audioUrl(RDFeed::LinkCounted,feed_cgi_hostname, - item_q->value(12).toUInt()))); + item_q->value(13).toUInt()))); } else { ret.replace("%ITEM_AUDIO_URL%", RDXmlEscape(audioUrl(RDFeed::LinkDirect,feed_cgi_hostname, - item_q->value(12).toUInt()))); + item_q->value(13).toUInt()))); } - ret.replace("%ITEM_AUDIO_LENGTH%",item_q->value(9).toString()); + ret.replace("%ITEM_AUDIO_LENGTH%",item_q->value(10).toString()); ret.replace("%ITEM_AUDIO_TIME%", - RDGetTimeLength(item_q->value(10).toInt(),false,false)); - ret.replace("%ITEM_PUBLISH_DATE%",item_q->value(11).toDateTime(). + RDGetTimeLength(item_q->value(11).toInt(),false,false)); + ret.replace("%ITEM_AUDIO_SECONDS%", + QString().sprintf("%d",item_q->value(11).toInt()/1000)); + ret.replace("%ITEM_PUBLISH_DATE%",item_q->value(12).toDateTime(). toString("ddd, d MMM yyyy hh:mm:ss ")+"GMT"); - ret.replace("%ITEM_GUID%",RDPodcast::guid(chan_q->value(13).toString(), - item_q->value(8).toString(), - chan_q->value(12).toUInt(), - item_q->value(12).toUInt())); + ret.replace("%ITEM_GUID%",RDPodcast::guid(chan_q->value(17).toString(), + item_q->value(9).toString(), + chan_q->value(16).toUInt(), + item_q->value(13).toUInt())); + ret.replace("%ITEM_IMAGE_URL%",chan_q->value(17).toString()+"/"+ + RDFeed::imageFilename(chan_q->value(18).toInt(), + item_q->value(15).toInt(), + item_q->value(19).toString())); return ret; } diff --git a/lib/rdfeed.h b/lib/rdfeed.h index fb348061..955e0a0e 100644 --- a/lib/rdfeed.h +++ b/lib/rdfeed.h @@ -63,10 +63,18 @@ class RDFeed : public QObject void setChannelCopyright(const QString &str) const; QString channelEditor() const; void setChannelEditor(const QString &str) const; + QString channelAuthor() const; + void setChannelAuthor(const QString &str) const; + QString channelOwnerName() const; + void setChannelOwnerName(const QString &str) const; + QString channelOwnerEmail() const; + void setChannelOwnerEmail(const QString &str) const; QString channelWebmaster() const; void setChannelWebmaster(const QString &str) const; QString channelLanguage() const; void setChannelLanguage(const QString &str); + bool channelExplicit() const; + void setChannelExplicit(bool state) const; int channelImageId() const; void setChannelImageId(int img_id) const; int defaultItemImageId() const; diff --git a/lib/rdrssschemas.cpp b/lib/rdrssschemas.cpp index b633c18c..f57b9208 100644 --- a/lib/rdrssschemas.cpp +++ b/lib/rdrssschemas.cpp @@ -27,20 +27,23 @@ RDRssSchemas::RDRssSchemas() // c_names.push_back("Custom"); // CustomSchema c_names.push_back("RSS 2.0.2"); // Rss202Schema + c_names.push_back("Apple"); // AppleSchema // // Minimum Images Sizes // - c_minimum_image_sizes.push_back(QSize(0,0)); // CustomSchema - c_minimum_image_sizes.push_back(QSize(88,31)); // Rss202Schema + c_minimum_image_sizes.push_back(QSize(0,0)); // CustomSchema + c_minimum_image_sizes.push_back(QSize(88,31)); // Rss202Schema + c_minimum_image_sizes.push_back(QSize(1400,1400)); // AppleSchema // // Maximum Image Sizes // - c_maximum_image_sizes.push_back(QSize(0,0)); // CustomSchema - c_maximum_image_sizes.push_back(QSize(144,400)); // Rss202Schema + c_maximum_image_sizes.push_back(QSize(0,0)); // CustomSchema + c_maximum_image_sizes.push_back(QSize(144,400)); // Rss202Schema + c_maximum_image_sizes.push_back(QSize(3000,3000)); // AppleSchema // @@ -52,6 +55,8 @@ RDRssSchemas::RDRssSchemas() // Rss202Schema c_header_templates.push_back("\n"); + // AppleSchema + c_header_templates.push_back("\n"); // // Channel Templates @@ -62,6 +67,22 @@ RDRssSchemas::RDRssSchemas() // Rs202Schema c_channel_templates.push_back("%TITLE%\n%DESCRIPTION%\n%CATEGORY%\n%LINK%\n%LANGUAGE%\n%COPYRIGHT%\n%BUILD_DATE%\n%PUBLISH_DATE%\n%EDITOR%\n%WEBMASTER%\n%GENERATOR%\n\n %IMAGE_URL%\n %TITLE%\n %LINK%\n %IMAGE_WIDTH%\n %IMAGE_HEIGHT%\n %IMAGE_DESCRIPTION%\n\n"); + // AppleSchema + c_channel_templates.push_back("%TITLE%\n%DESCRIPTION%\n%CATEGORY%\n%LINK%\n%LANGUAGE%\n%COPYRIGHT%\n%AUTHOR%\n%BUILD_DATE%\n%PUBLISH_DATE%\n%EDITOR%\n%WEBMASTER%\n%GENERATOR%\n\n %IMAGE_URL%\n %TITLE%\n %LINK%\n %IMAGE_WIDTH%\n %IMAGE_HEIGHT%\n %IMAGE_DESCRIPTION%\n\n"); + + + // + // Item Image Support + // + // CustomSchema + c_supports_item_images.push_back(true); + + // Rss202Schema + c_supports_item_images.push_back(false); + + // AppleSchema + c_supports_item_images.push_back(true); + // // Item Templates @@ -108,3 +129,9 @@ QString RDRssSchemas::itemTemplate(RssSchema schema) const { return c_item_templates.at(schema); } + + +bool RDRssSchemas::supportsItemImages(RssSchema schema) const +{ + return c_supports_item_images.at(schema); +} diff --git a/lib/rdrssschemas.h b/lib/rdrssschemas.h index 8f6a925d..037cf5e8 100644 --- a/lib/rdrssschemas.h +++ b/lib/rdrssschemas.h @@ -29,7 +29,7 @@ class RDRssSchemas { public: - enum RssSchema {CustomSchema=0,Rss202Schema=1,LastSchema=2}; + enum RssSchema {CustomSchema=0,Rss202Schema=1,AppleSchema=2,LastSchema=3}; RDRssSchemas(); QString name(RssSchema schema) const; QSize minimumImageSize(RssSchema schema) const; @@ -37,6 +37,7 @@ class RDRssSchemas QString headerTemplate(RssSchema schema) const; QString channelTemplate(RssSchema schema) const; QString itemTemplate(RssSchema schema) const; + bool supportsItemImages(RssSchema schema) const; private: QStringList c_names; @@ -45,6 +46,7 @@ class RDRssSchemas QStringList c_header_templates; QStringList c_channel_templates; QStringList c_item_templates; + QList c_supports_item_images; }; diff --git a/rdadmin/edit_feed.cpp b/rdadmin/edit_feed.cpp index 4e3d1e5b..bcfcbe9d 100644 --- a/rdadmin/edit_feed.cpp +++ b/rdadmin/edit_feed.cpp @@ -57,15 +57,8 @@ EditFeed::EditFeed(const QString &feed,QWidget *parent) feed_images_dialog=new ListImages(feed_image_model,this); // - // Feed Name + // Superfeed Settings // - feed_keyname_edit=new QLineEdit(this); - feed_keyname_edit->setMaxLength(8); - feed_keyname_edit->setReadOnly(true); - feed_keyname_label=new QLabel(feed_keyname_edit,tr("Key Name:"),this); - feed_keyname_label->setFont(labelFont()); - feed_keyname_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); - feed_is_superfeed_box=new QComboBox(this); feed_is_superfeed_box->insertItem(0,tr("No")); feed_is_superfeed_box->insertItem(1,tr("Yes")); @@ -154,6 +147,39 @@ EditFeed::EditFeed(const QString &feed,QWidget *parent) feed_channel_editor_label-> setAlignment(Qt::AlignRight|Qt::AlignVCenter); + // + // Channel Author + // + feed_channel_author_edit=new QLineEdit(this); + feed_channel_author_edit->setMaxLength(64); + feed_channel_author_label= + new QLabel(feed_channel_author_edit,tr("Author:"),this); + feed_channel_author_label->setFont(labelFont()); + feed_channel_author_label-> + setAlignment(Qt::AlignRight|Qt::AlignVCenter); + + // + // Channel Owner Name + // + feed_channel_owner_name_edit=new QLineEdit(this); + feed_channel_owner_name_edit->setMaxLength(64); + feed_channel_owner_name_label= + new QLabel(feed_channel_owner_name_edit,tr("Owner Name:"),this); + feed_channel_owner_name_label->setFont(labelFont()); + feed_channel_owner_name_label-> + setAlignment(Qt::AlignRight|Qt::AlignVCenter); + + // + // Channel Owner Email + // + feed_channel_owner_email_edit=new QLineEdit(this); + feed_channel_owner_email_edit->setMaxLength(64); + feed_channel_owner_email_label= + new QLabel(feed_channel_owner_email_edit,tr("Owner E-Mail:"),this); + feed_channel_owner_email_label->setFont(labelFont()); + feed_channel_owner_email_label-> + setAlignment(Qt::AlignRight|Qt::AlignVCenter); + // // Channel Webmaster // @@ -175,6 +201,15 @@ EditFeed::EditFeed(const QString &feed,QWidget *parent) feed_channel_language_label->setFont(labelFont()); feed_channel_language_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); + // + // Channel is Explicit + // + feed_channel_explicit_check=new QCheckBox(this); + feed_channel_explicit_label=new QLabel(feed_channel_explicit_check, + tr("Channel contains explicit content"),this); + feed_channel_explicit_label->setFont(labelFont()); + feed_channel_explicit_label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter); + // // Channel Image // @@ -364,20 +399,6 @@ EditFeed::EditFeed(const QString &feed,QWidget *parent) feed_item_image_label->setFont(labelFont()); feed_item_image_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); - // - // Feed Redirection - // - feed_redirect_check=new QCheckBox(this); - feed_redirect_label= - new QLabel(feed_redirect_check,tr("Enable Feed Redirection"),this); - feed_redirect_label->setFont(labelFont()); - feed_redirect_label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter); - - feed_redirect_url_edit=new QLineEdit(this); - feed_redirect_url_label=new QLabel(feed_redirect_url_edit,tr("URL:"),this); - feed_redirect_url_label->setFont(labelFont()); - feed_redirect_url_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); - // // RSS Schema // @@ -421,6 +442,24 @@ EditFeed::EditFeed(const QString &feed,QWidget *parent) feed_item_xml_label->setFont(labelFont()); feed_item_xml_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); + // + // Feed Redirection + // + feed_redirect_check=new QCheckBox(this); + connect(feed_audience_metrics_check,SIGNAL(toggled(bool)), + feed_redirect_check,SLOT(setEnabled(bool))); + feed_redirect_label= + new QLabel(feed_redirect_check,tr("Enable Feed Redirection"),this); + connect(feed_audience_metrics_check,SIGNAL(toggled(bool)), + feed_redirect_label,SLOT(setEnabled(bool))); + feed_redirect_label->setFont(labelFont()); + feed_redirect_label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter); + + feed_redirect_url_edit=new QLineEdit(this); + feed_redirect_url_label=new QLabel(feed_redirect_url_edit,tr("URL:"),this); + feed_redirect_url_label->setFont(labelFont()); + feed_redirect_url_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); + // // Ok Button // @@ -441,18 +480,23 @@ EditFeed::EditFeed(const QString &feed,QWidget *parent) // // Populate Values // - feed_keyname_edit->setText(feed_feed->keyName()); feed_is_superfeed_box->setCurrentIndex(feed_feed->isSuperfeed()); feed_audience_metrics_check->setChecked(feed_feed->audienceMetrics()); + feed_redirect_check->setEnabled(feed_audience_metrics_check->isChecked()); + feed_redirect_label->setEnabled(feed_audience_metrics_check->isChecked()); feed_channel_title_edit->setText(feed_feed->channelTitle()); feed_channel_category_edit->setText(feed_feed->channelCategory()); feed_channel_link_edit->setText(feed_feed->channelLink()); feed_channel_copyright_edit->setText(feed_feed->channelCopyright()); feed_channel_editor_edit->setText(feed_feed->channelEditor()); + feed_channel_author_edit->setText(feed_feed->channelAuthor()); + feed_channel_owner_name_edit->setText(feed_feed->channelOwnerName()); + feed_channel_owner_email_edit->setText(feed_feed->channelOwnerEmail()); feed_channel_webmaster_edit->setText(feed_feed->channelWebmaster()); feed_channel_description_edit->setPlainText(feed_feed->channelDescription()); feed_channel_image_box->setCurrentImageId(feed_feed->channelImageId()); feed_channel_language_edit->setText(feed_feed->channelLanguage()); + feed_channel_explicit_check->setChecked(feed_feed->channelExplicit()); feed_base_url_edit->setText(feed_feed->baseUrl("")); feed_base_preamble_edit->setText(feed_feed->basePreamble()); feed_purge_url_edit->setText(feed_feed->purgeUrl()); @@ -614,9 +658,13 @@ void EditFeed::okData() feed_feed->setChannelLink(feed_channel_link_edit->text()); feed_feed->setChannelCopyright(feed_channel_copyright_edit->text()); feed_feed->setChannelEditor(feed_channel_editor_edit->text()); + feed_feed->setChannelAuthor(feed_channel_author_edit->text()); + feed_feed->setChannelOwnerName(feed_channel_owner_name_edit->text()); + feed_feed->setChannelOwnerEmail(feed_channel_owner_email_edit->text()); feed_feed->setChannelWebmaster(feed_channel_webmaster_edit->text()); feed_feed->setChannelDescription(feed_channel_description_edit->text()); feed_feed->setChannelLanguage(feed_channel_language_edit->text()); + feed_feed->setChannelExplicit(feed_channel_explicit_check->isChecked()); feed_feed->setChannelImageId(feed_channel_image_box->currentImageId()); feed_feed->setDefaultItemImageId(feed_item_image_box->currentImageId()); feed_feed->setBaseUrl(feed_base_url_edit->text()); @@ -669,88 +717,98 @@ void EditFeed::resizeEvent(QResizeEvent *e) { feed_image_model->rescaleImages(QSize(36,36)); - feed_keyname_edit->setGeometry(115,11,100,19); - feed_keyname_label->setGeometry(10,11,100,19); + // + // Left-hand Side + // + feed_is_superfeed_box->setGeometry(115,13,60,19); + feed_is_superfeed_label->setGeometry(10,13,100,19); + feed_is_superfeed_button->setGeometry(185,13,140,38); - feed_is_superfeed_box->setGeometry(115,33,60,19); - feed_is_superfeed_label->setGeometry(10,33,100,19); - feed_is_superfeed_button->setGeometry(185,33,140,38); + feed_list_images_button->setGeometry(345,13,100,38); - feed_list_images_button->setGeometry(345,33,100,38); + feed_audience_metrics_check->setGeometry(20,54,15,15); + feed_audience_metrics_label->setGeometry(40,52,375,19); - feed_audience_metrics_check->setGeometry(20,74,15,15); - feed_audience_metrics_label->setGeometry(40,72,375,19); + feed_channel_section_groupbox->setGeometry(10,77,sizeHint().width()/2-10,355); + feed_channel_title_edit->setGeometry(115,92,375,19); + feed_channel_title_label->setGeometry(20,92,90,19); + feed_channel_category_edit->setGeometry(115,114,375,19); + feed_channel_category_label->setGeometry(20,114,90,19); + feed_channel_link_edit->setGeometry(115,136,375,19); + feed_channel_link_label->setGeometry(20,136,90,19); + feed_channel_copyright_edit->setGeometry(115,158,375,19); + feed_channel_copyright_label->setGeometry(20,158,90,19); + feed_channel_editor_edit->setGeometry(115,180,375,19); + feed_channel_editor_label->setGeometry(20,180,90,19); - feed_channel_section_groupbox->setGeometry(10,97,sizeHint().width()/2-10,289); - feed_channel_title_edit->setGeometry(115,112,375,19); - feed_channel_title_label->setGeometry(20,112,90,19); - feed_channel_category_edit->setGeometry(115,134,375,19); - feed_channel_category_label->setGeometry(20,134,90,19); - feed_channel_link_edit->setGeometry(115,156,375,19); - feed_channel_link_label->setGeometry(20,156,90,19); - feed_channel_copyright_edit->setGeometry(115,178,375,19); - feed_channel_copyright_label->setGeometry(20,178,90,19); - feed_channel_editor_edit->setGeometry(115,200,375,19); - feed_channel_editor_label->setGeometry(20,200,90,19); - feed_channel_webmaster_edit->setGeometry(115,222,375,19); - feed_channel_webmaster_label->setGeometry(20,222,90,19); - feed_channel_language_edit->setGeometry(115,244,60,19); - feed_channel_language_label->setGeometry(20,244,90,19); - feed_channel_description_edit->setGeometry(115,266,375,76); - feed_channel_description_label->setGeometry(20,266,90,19); - feed_channel_image_box->setGeometry(115,344,375,38); + feed_channel_author_edit->setGeometry(115,201,375,19); + feed_channel_author_label->setGeometry(20,201,90,19); + + feed_channel_owner_name_edit->setGeometry(115,223,375,19); + feed_channel_owner_name_label->setGeometry(20,223,90,19); + + feed_channel_owner_email_edit->setGeometry(115,245,375,19); + feed_channel_owner_email_label->setGeometry(20,245,90,19); + + feed_channel_webmaster_edit->setGeometry(115,267,375,19); + feed_channel_webmaster_label->setGeometry(20,267,90,19); + feed_channel_language_edit->setGeometry(115,289,60,19); + feed_channel_language_label->setGeometry(20,289,90,19); + feed_channel_explicit_check->setGeometry(205,291,15,15); + feed_channel_explicit_label->setGeometry(225,289,260,19); + feed_channel_description_edit->setGeometry(115,311,375,76); + feed_channel_description_label->setGeometry(20,311,90,19); + feed_channel_image_box->setGeometry(115,389,375,38); feed_channel_image_box->setIconSize(QSize(36,36)); - feed_channel_image_label->setGeometry(20,344,90,19); + feed_channel_image_label->setGeometry(20,389,90,19); - feed_purge_url_edit->setGeometry(155,394,335,19); - feed_purge_url_label->setGeometry(20,394,130,19); - feed_purge_username_edit->setGeometry(225,416,95,19); - feed_purge_username_label->setGeometry(40,416,180,19); - feed_purge_password_edit->setGeometry(395,416,95,19); - feed_purge_password_label->setGeometry(320,416,70,19); + feed_purge_url_edit->setGeometry(155,439,335,19); + feed_purge_url_label->setGeometry(20,439,130,19); + feed_purge_username_edit->setGeometry(225,461,95,19); + feed_purge_username_label->setGeometry(40,461,180,19); + feed_purge_password_edit->setGeometry(395,461,95,19); + feed_purge_password_label->setGeometry(320,461,70,19); - feed_format_edit->setGeometry(155,438,285,20); - feed_format_label->setGeometry(5,438,145,20); - feed_format_button->setGeometry(450,438,40,24); + feed_format_edit->setGeometry(155,483,285,20); + feed_format_label->setGeometry(5,483,145,20); + feed_format_button->setGeometry(450,483,40,24); - feed_normalize_check->setGeometry(155,462,15,15); - feed_normalize_check_label->setGeometry(175,460,83,20); - feed_normalize_spin->setGeometry(295,458,40,20); - feed_normalize_label->setGeometry(245,458,45,20); - feed_normalize_unit_label->setGeometry(340,458,40,20); + feed_normalize_check->setGeometry(155,507,15,15); + feed_normalize_check_label->setGeometry(175,505,83,20); + feed_normalize_spin->setGeometry(295,503,40,20); + feed_normalize_label->setGeometry(245,503,45,20); + feed_normalize_unit_label->setGeometry(340,503,40,20); - feed_base_url_edit->setGeometry(155,482,335,19); - feed_base_url_label->setGeometry(5,482,145,19); - feed_keep_metadata_box->setGeometry(155,504,15,15); - feed_keep_metadata_label->setGeometry(175,502,180,19); - feed_autopost_box->setGeometry(365,504,15,15); - feed_autopost_label->setGeometry(385,502,200,19); + feed_base_url_edit->setGeometry(155,527,335,19); + feed_base_url_label->setGeometry(5,527,145,19); + feed_keep_metadata_box->setGeometry(155,549,15,15); + feed_keep_metadata_label->setGeometry(175,547,180,19); + feed_autopost_box->setGeometry(365,549,15,15); + feed_autopost_label->setGeometry(385,547,200,19); - feed_base_preamble_edit->setGeometry(155,526,335,19); - feed_base_preamble_label->setGeometry(20,526,130,19); + feed_base_preamble_edit->setGeometry(155,571,335,19); + feed_base_preamble_label->setGeometry(20,571,130,19); - feed_extension_edit->setGeometry(155,548,70,19); - feed_extension_label->setGeometry(20,548,130,19); + feed_extension_edit->setGeometry(155,593,70,19); + feed_extension_label->setGeometry(20,593,130,19); - feed_max_shelf_life_spin->setGeometry(155,570,60,19); - feed_max_shelf_life_label->setGeometry(20,570,130,19); - feed_max_shelf_life_unit_label->setGeometry(220,570,50,19); + feed_max_shelf_life_spin->setGeometry(155,615,60,19); + feed_max_shelf_life_label->setGeometry(20,615,130,19); + feed_max_shelf_life_unit_label->setGeometry(220,615,50,19); - feed_castorder_box->setGeometry(155,592,100,19); - feed_castorder_label->setGeometry(20,592,130,19); + feed_castorder_box->setGeometry(155,637,100,19); + feed_castorder_label->setGeometry(20,637,130,19); - feed_media_link_mode_box->setGeometry(155,614,100,19); - feed_media_link_mode_label->setGeometry(20,614,130,19); + feed_media_link_mode_box->setGeometry(155,659,100,19); + feed_media_link_mode_label->setGeometry(20,659,130,19); - feed_item_image_box->setGeometry(155,636,335,38); + feed_item_image_box->setGeometry(155,681,335,38); feed_item_image_box->setIconSize(QSize(36,36)); - feed_item_image_label->setGeometry(20,636,130,19); - - feed_redirect_check->setGeometry(20,686,15,15); - feed_redirect_label->setGeometry(40,686,200,19); - feed_redirect_url_edit->setGeometry(85,706,405,20); - feed_redirect_url_label->setGeometry(40,706,40,19); + feed_item_image_label->setGeometry(20,681,130,19); + // + // Right-hand Side + // feed_rss_schema_label->setGeometry(520,10,90,19); feed_rss_schema_box->setGeometry(615,10,200,19); @@ -758,10 +816,15 @@ void EditFeed::resizeEvent(QResizeEvent *e) feed_header_xml_edit->setGeometry(615,32,size().width()-625,76); feed_channel_xml_label->setGeometry(520,110,90,19); - feed_channel_xml_edit->setGeometry(615,110,size().width()-625,216); + feed_channel_xml_edit->setGeometry(615,110,size().width()-625,256); - feed_item_xml_label->setGeometry(520,332,90,19); - feed_item_xml_edit->setGeometry(615,332,size().width()-625,240); + feed_item_xml_label->setGeometry(520,368,90,19); + feed_item_xml_edit->setGeometry(615,368,size().width()-625,240); + + feed_redirect_check->setGeometry(550,615,15,15); + feed_redirect_label->setGeometry(570,615,200,19); + feed_redirect_url_edit->setGeometry(615,637,375,20); + feed_redirect_url_label->setGeometry(570,637,40,19); feed_ok_button->setGeometry(size().width()-180,size().height()-60,80,50); feed_cancel_button->setGeometry(size().width()-90,size().height()-60,80,50); @@ -775,7 +838,9 @@ void EditFeed::UpdateControlState() bool custom_schema= feed_rss_schema_box->itemData(feed_rss_schema_box->currentIndex()).toInt()== RDRssSchemas::CustomSchema; - bool item_image=feed_rss_schema_box->itemData(feed_rss_schema_box->currentIndex()).toInt()!=RDRssSchemas::Rss202Schema; + bool item_image=feed_feed->rssSchemas()-> + supportsItemImages((RDRssSchemas::RssSchema)feed_rss_schema_box-> + itemData(feed_rss_schema_box->currentIndex()).toInt()); feed_is_superfeed_label->setDisabled(redirected); feed_is_superfeed_box->setDisabled(redirected); @@ -793,9 +858,17 @@ void EditFeed::UpdateControlState() feed_channel_copyright_edit->setDisabled(redirected); feed_channel_editor_label->setDisabled(redirected); feed_channel_editor_edit->setDisabled(redirected); + feed_channel_author_label->setDisabled(redirected); + feed_channel_author_edit->setDisabled(redirected); + feed_channel_owner_name_label->setDisabled(redirected); + feed_channel_owner_name_edit->setDisabled(redirected); + feed_channel_owner_email_label->setDisabled(redirected); + feed_channel_owner_email_edit->setDisabled(redirected); feed_channel_webmaster_label->setDisabled(redirected); feed_channel_webmaster_edit->setDisabled(redirected); feed_channel_language_edit->setDisabled(redirected); + feed_channel_explicit_check->setDisabled(redirected); + feed_channel_explicit_label->setDisabled(redirected); feed_channel_title_label->setDisabled(redirected); feed_channel_category_label->setDisabled(redirected); feed_channel_link_label->setDisabled(redirected); diff --git a/rdadmin/edit_feed.h b/rdadmin/edit_feed.h index 681129df..a6d18399 100644 --- a/rdadmin/edit_feed.h +++ b/rdadmin/edit_feed.h @@ -65,8 +65,6 @@ class EditFeed : public RDDialog void UpdateControlState(); RDFeed *feed_feed; RDImagePickerModel *feed_image_model; - QLabel *feed_keyname_label; - QLineEdit *feed_keyname_edit; QLabel *feed_is_superfeed_label; QPushButton *feed_is_superfeed_button; QPushButton *feed_list_images_button; @@ -80,9 +78,17 @@ class EditFeed : public RDDialog QLineEdit *feed_channel_copyright_edit; QLabel *feed_channel_editor_label; QLineEdit *feed_channel_editor_edit; + QLabel *feed_channel_author_label; + QLineEdit *feed_channel_author_edit; + QLabel *feed_channel_owner_name_label; + QLineEdit *feed_channel_owner_name_edit; + QLabel *feed_channel_owner_email_label; + QLineEdit *feed_channel_owner_email_edit; QLabel *feed_channel_webmaster_label; QLineEdit *feed_channel_webmaster_edit; QLineEdit *feed_channel_language_edit; + QCheckBox *feed_channel_explicit_check; + QLabel *feed_channel_explicit_label; QLineEdit *feed_base_url_edit; QLineEdit *feed_base_preamble_edit; QLineEdit *feed_purge_url_edit; diff --git a/rdadmin/rdadmin_cs.ts b/rdadmin/rdadmin_cs.ts index 61c02887..1b0dca2e 100644 --- a/rdadmin/rdadmin_cs.ts +++ b/rdadmin/rdadmin_cs.ts @@ -1445,7 +1445,7 @@ files, causing any whose files remain to be imported again. Key Name: - Název klíče: + Název klíče: CHANNEL VALUES @@ -1689,6 +1689,22 @@ Feeds Images + + Author: + + + + Owner Name: + + + + Owner E-Mail: + + + + Channel contains explicit content + + EditFeedPerms @@ -5121,11 +5137,11 @@ Stále ještě jej chcete smazat? Deleting Audio... - Mazání zvuku... + Mazání zvuku... Cancel - Zrušit + Zrušit Deleting @@ -5147,6 +5163,10 @@ Stále ještě jej chcete smazat? Warning Varování + + Deleting remote audio... + + ListGpis diff --git a/rdadmin/rdadmin_de.ts b/rdadmin/rdadmin_de.ts index e900760a..e292e035 100644 --- a/rdadmin/rdadmin_de.ts +++ b/rdadmin/rdadmin_de.ts @@ -1351,10 +1351,6 @@ files, causing any whose files remain to be imported again. Feed: Feed: - - Key Name: - - Title: Titel: @@ -1572,6 +1568,22 @@ Feeds Images + + Author: + + + + Owner Name: + + + + Owner E-Mail: + + + + Channel contains explicit content + + EditFeedPerms @@ -4949,14 +4961,6 @@ Wollen Sie ihn immernoch löschen? Delete Feed - - Deleting Audio... - - - - Cancel - - Superfeed @@ -4973,6 +4977,10 @@ Wollen Sie ihn immernoch löschen? Warning + + Deleting remote audio... + + ListGpis diff --git a/rdadmin/rdadmin_es.ts b/rdadmin/rdadmin_es.ts index f04c684d..61fcd92f 100644 --- a/rdadmin/rdadmin_es.ts +++ b/rdadmin/rdadmin_es.ts @@ -1447,7 +1447,7 @@ files, causing any whose files remain to be imported again. Key Name: - Nombre: + Nombre: Title: @@ -1692,6 +1692,22 @@ Feeds Images + + Author: + + + + Owner Name: + + + + Owner E-Mail: + + + + Channel contains explicit content + + EditFeedPerms @@ -5088,11 +5104,11 @@ Do you still want to delete it? Deleting Audio... - Eliminando Audio... + Eliminando Audio... Cancel - Cancelar + Cancelar Deleting @@ -5114,6 +5130,10 @@ Do you still want to delete it? Warning Advertencia + + Deleting remote audio... + + ListGpis diff --git a/rdadmin/rdadmin_fr.ts b/rdadmin/rdadmin_fr.ts index e336f270..f553a16e 100644 --- a/rdadmin/rdadmin_fr.ts +++ b/rdadmin/rdadmin_fr.ts @@ -1023,10 +1023,6 @@ files, causing any whose files remain to be imported again. Feed: - - Key Name: - - Title: @@ -1244,6 +1240,22 @@ Feeds Images + + Author: + + + + Owner Name: + + + + Owner E-Mail: + + + + Channel contains explicit content + + EditFeedPerms @@ -4099,14 +4111,6 @@ Permissions Delete Feed - - Deleting Audio... - - - - Cancel - - Superfeed @@ -4123,6 +4127,10 @@ Permissions Warning + + Deleting remote audio... + + ListGpis diff --git a/rdadmin/rdadmin_nb.ts b/rdadmin/rdadmin_nb.ts index 14948e8e..c8619ea9 100644 --- a/rdadmin/rdadmin_nb.ts +++ b/rdadmin/rdadmin_nb.ts @@ -1313,10 +1313,6 @@ files, causing any whose files remain to be imported again. Feed: Straum: - - Key Name: - - Title: Tittel: @@ -1534,6 +1530,22 @@ Feeds Images + + Author: + + + + Owner Name: + + + + Owner E-Mail: + + + + Channel contains explicit content + + EditFeedPerms @@ -4806,14 +4818,6 @@ Klikk på "Lisens"-knappen for fleire opplysningar. Delete Feed - - Deleting Audio... - - - - Cancel - - Superfeed @@ -4830,6 +4834,10 @@ Klikk på "Lisens"-knappen for fleire opplysningar. Warning + + Deleting remote audio... + + ListGpis diff --git a/rdadmin/rdadmin_nn.ts b/rdadmin/rdadmin_nn.ts index 14948e8e..c8619ea9 100644 --- a/rdadmin/rdadmin_nn.ts +++ b/rdadmin/rdadmin_nn.ts @@ -1313,10 +1313,6 @@ files, causing any whose files remain to be imported again. Feed: Straum: - - Key Name: - - Title: Tittel: @@ -1534,6 +1530,22 @@ Feeds Images + + Author: + + + + Owner Name: + + + + Owner E-Mail: + + + + Channel contains explicit content + + EditFeedPerms @@ -4806,14 +4818,6 @@ Klikk på "Lisens"-knappen for fleire opplysningar. Delete Feed - - Deleting Audio... - - - - Cancel - - Superfeed @@ -4830,6 +4834,10 @@ Klikk på "Lisens"-knappen for fleire opplysningar. Warning + + Deleting remote audio... + + ListGpis diff --git a/rdadmin/rdadmin_pt_BR.ts b/rdadmin/rdadmin_pt_BR.ts index 6a9721a5..106c3dac 100644 --- a/rdadmin/rdadmin_pt_BR.ts +++ b/rdadmin/rdadmin_pt_BR.ts @@ -1323,10 +1323,6 @@ files, causing any whose files remain to be imported again. Feed: Feed: - - Key Name: - - Title: Título: @@ -1544,6 +1540,22 @@ Feeds Images + + Author: + + + + Owner Name: + + + + Owner E-Mail: + + + + Channel contains explicit content + + EditFeedPerms @@ -4929,14 +4941,6 @@ Você ainda quer Deletar? Delete Feed - - Deleting Audio... - - - - Cancel - - Superfeed @@ -4953,6 +4957,10 @@ Você ainda quer Deletar? Warning + + Deleting remote audio... + + ListGpis diff --git a/utils/rddbmgr/revertschema.cpp b/utils/rddbmgr/revertschema.cpp index 84536cdb..06d9d6f6 100644 --- a/utils/rddbmgr/revertschema.cpp +++ b/utils/rddbmgr/revertschema.cpp @@ -41,6 +41,19 @@ bool MainObject::RevertSchema(int cur_schema,int set_schema,QString *err_msg) + // + // Revert 326 + // + if((cur_schema==326)&&(set_schemacur_schema)) { + sql=QString("alter table FEEDS add column CHANNEL_AUTHOR varchar(64) ")+ + "after CHANNEL_EDITOR"; + if(!RDSqlQuery::apply(sql,err_msg)) { + return false; + } + sql=QString("alter table FEEDS add column CHANNEL_OWNER_NAME varchar(64) ")+ + "after CHANNEL_AUTHOR"; + if(!RDSqlQuery::apply(sql,err_msg)) { + return false; + } + sql=QString("alter table FEEDS add column ")+ + "CHANNEL_OWNER_EMAIL varchar(64) after CHANNEL_OWNER_NAME"; + if(!RDSqlQuery::apply(sql,err_msg)) { + return false; + } + sql=QString("alter table FEEDS add column CHANNEL_EXPLICIT enum('N','Y') ")+ + "not null default 'N' after CHANNEL_LANGUAGE"; + if(!RDSqlQuery::apply(sql,err_msg)) { + return false; + } + sql=QString("alter table PODCASTS add column ITEM_EXPLICIT enum('N','Y') ")+ + "not null default 'N' after ITEM_SOURCE_URL"; + if(!RDSqlQuery::apply(sql,err_msg)) { + return false; + } + + WriteSchemaVersion(++cur_schema); + } + // NEW SCHEMA UPDATES GO HERE...