diff --git a/resources/sql/db_init_sqlite.sql b/resources/sql/db_init_sqlite.sql index ef2c375a1..08e44ab02 100644 --- a/resources/sql/db_init_sqlite.sql +++ b/resources/sql/db_init_sqlite.sql @@ -37,16 +37,9 @@ CREATE TABLE Feeds ( date_created INTEGER, icon BLOB, category INTEGER NOT NULL CHECK (category >= -1), /* Root feeds contain -1 here. */ - encoding TEXT, - source_type INTEGER, - url TEXT, - post_process TEXT, - protected INTEGER(1) NOT NULL CHECK (protected >= 0 AND protected <= 1), - username TEXT, - password TEXT, + source TEXT, update_type INTEGER(1) NOT NULL CHECK (update_type >= 0), update_interval INTEGER NOT NULL DEFAULT 15 CHECK (update_interval >= 1), - type INTEGER, account_id INTEGER NOT NULL, custom_id TEXT, diff --git a/src/librssguard/core/feeddownloader.cpp b/src/librssguard/core/feeddownloader.cpp index ff898ac26..179fdab85 100644 --- a/src/librssguard/core/feeddownloader.cpp +++ b/src/librssguard/core/feeddownloader.cpp @@ -114,7 +114,7 @@ void FeedDownloader::stopRunningUpdate() { void FeedDownloader::updateOneFeed(Feed* feed) { qDebugNN << LOGSEC_FEEDDOWNLOADER << "Downloading new messages for feed ID '" - << feed->customId() << "' URL: '" << feed->url() << "' title: '" << feed->title() << "' in thread: '" + << feed->customId() << "' URL: '" << feed->source() << "' title: '" << feed->title() << "' in thread: '" << QThread::currentThreadId() << "'."; bool error_during_obtaining = false; @@ -123,7 +123,7 @@ void FeedDownloader::updateOneFeed(Feed* feed) { QList msgs = feed->obtainNewMessages(&error_during_obtaining); qDebugNN << LOGSEC_FEEDDOWNLOADER << "Downloaded " << msgs.size() << " messages for feed ID '" - << feed->customId() << "' URL: '" << feed->url() << "' title: '" << feed->title() << "' in thread: '" + << feed->customId() << "' URL: '" << feed->source() << "' title: '" << feed->title() << "' in thread: '" << QThread::currentThreadId() << "'. Operation took " << tmr.nsecsElapsed() / 1000 << " microseconds."; // Now, sanitize messages (tweak encoding etc.). @@ -290,7 +290,7 @@ void FeedDownloader::updateOneFeed(Feed* feed) { // Now make sure, that messages are actually stored to SQL in a locked state. qDebugNN << LOGSEC_FEEDDOWNLOADER << "Saving messages of feed ID '" - << feed->customId() << "' URL: '" << feed->url() << "' title: '" << feed->title() << "' in thread: '" + << feed->customId() << "' URL: '" << feed->source() << "' title: '" << feed->title() << "' in thread: '" << QThread::currentThreadId() << "'."; int updated_messages = feed->updateMessages(msgs, error_during_obtaining); diff --git a/src/librssguard/gui/feedsview.cpp b/src/librssguard/gui/feedsview.cpp index 6f42353ba..6a86df0e5 100755 --- a/src/librssguard/gui/feedsview.cpp +++ b/src/librssguard/gui/feedsview.cpp @@ -133,8 +133,8 @@ void FeedsView::copyUrlOfSelectedFeeds() const { QStringList urls; for (const auto* feed : feeds) { - if (!feed->url().isEmpty()) { - urls << feed->url(); + if (!feed->source().isEmpty()) { + urls << feed->source(); } } diff --git a/src/librssguard/miscellaneous/databasequeries.cpp b/src/librssguard/miscellaneous/databasequeries.cpp index a3ea11647..c4b425f60 100755 --- a/src/librssguard/miscellaneous/databasequeries.cpp +++ b/src/librssguard/miscellaneous/databasequeries.cpp @@ -1510,7 +1510,7 @@ bool DatabaseQueries::storeAccountTree(const QSqlDatabase& db, RootItem* tree_ro query_feed.bindValue(QSL(":title"), feed->title()); query_feed.bindValue(QSL(":icon"), qApp->icons()->toByteArray(feed->icon())); - query_feed.bindValue(QSL(":url"), feed->url()); + query_feed.bindValue(QSL(":url"), feed->source()); query_feed.bindValue(QSL(":category"), feed->parent()->id()); query_feed.bindValue(QSL(":protected"), 0); query_feed.bindValue(QSL(":update_type"), int(feed->autoUpdateType())); diff --git a/src/librssguard/services/abstract/feed.cpp b/src/librssguard/services/abstract/feed.cpp index e253ca614..4d150f3e2 100755 --- a/src/librssguard/services/abstract/feed.cpp +++ b/src/librssguard/services/abstract/feed.cpp @@ -19,7 +19,7 @@ #include Feed::Feed(RootItem* parent) - : RootItem(parent), m_url(QString()), m_status(Status::Normal), m_autoUpdateType(AutoUpdateType::DefaultAutoUpdate), + : RootItem(parent), m_source(QString()), m_status(Status::Normal), m_autoUpdateType(AutoUpdateType::DefaultAutoUpdate), m_autoUpdateInitialInterval(DEFAULT_AUTO_UPDATE_INTERVAL), m_autoUpdateRemainingInterval(DEFAULT_AUTO_UPDATE_INTERVAL), m_messageFilters(QList>()) { @@ -33,7 +33,7 @@ Feed::Feed(RootItem* parent) Feed::Feed(const QSqlRecord& record) : Feed(nullptr) { setTitle(record.value(FDS_DB_TITLE_INDEX).toString()); setId(record.value(FDS_DB_ID_INDEX).toInt()); - setUrl(record.value(FDS_DB_URL_INDEX).toString()); + setSource(record.value(FDS_DB_URL_INDEX).toString()); setCustomId(record.value(FDS_DB_CUSTOM_ID_INDEX).toString()); if (customId().isEmpty()) { @@ -66,7 +66,7 @@ Feed::Feed(const Feed& other) : RootItem(other) { setCountOfAllMessages(other.countOfAllMessages()); setCountOfUnreadMessages(other.countOfUnreadMessages()); - setUrl(other.url()); + setSource(other.source()); setStatus(other.status()); setAutoUpdateType(other.autoUpdateType()); setAutoUpdateInitialInterval(other.autoUpdateInitialInterval()); @@ -144,6 +144,14 @@ int Feed::countOfUnreadMessages() const { return m_unreadCount; } +QVariantHash Feed::customDatabaseData() const { + return {}; +} + +void Feed::setCustomDatabaseData(const QVariantHash& data) { + Q_UNUSED(data) +} + void Feed::setCountOfAllMessages(int count_all_messages) { m_totalCount = count_all_messages; } @@ -218,12 +226,12 @@ void Feed::setStatus(const Feed::Status& status) { m_status = status; } -QString Feed::url() const { - return m_url; +QString Feed::source() const { + return m_source; } -void Feed::setUrl(const QString& url) { - m_url = url; +void Feed::setSource(const QString& source) { + m_source = source; } void Feed::appendMessageFilter(MessageFilter* filter) { @@ -290,7 +298,7 @@ int Feed::updateMessages(const QList& messages, bool error_during_obtai qApp->database()->connection(QSL("feed_upd")); updated_messages = DatabaseQueries::updateMessages(database, messages, custom_id, account_id, - url(), force_update, &anything_updated, &ok); + source(), force_update, &anything_updated, &ok); } else { qDebugNN << LOGSEC_CORE diff --git a/src/librssguard/services/abstract/feed.h b/src/librssguard/services/abstract/feed.h index 97dd677c8..7da038361 100644 --- a/src/librssguard/services/abstract/feed.h +++ b/src/librssguard/services/abstract/feed.h @@ -49,6 +49,8 @@ class Feed : public RootItem { virtual QList obtainNewMessages(bool* error_during_obtaining); virtual int countOfAllMessages() const; virtual int countOfUnreadMessages() const; + virtual QVariantHash customDatabaseData() const; + virtual void setCustomDatabaseData(const QVariantHash& data); void setCountOfAllMessages(int count_all_messages); void setCountOfUnreadMessages(int count_unread_messages); @@ -72,8 +74,8 @@ class Feed : public RootItem { Status status() const; void setStatus(const Status& status); - QString url() const; - void setUrl(const QString& url); + QString source() const; + void setSource(const QString& source); bool passwordProtected() const; void setPasswordProtected(bool passwordProtected); @@ -99,7 +101,7 @@ class Feed : public RootItem { QString getStatusDescription() const; private: - QString m_url; + QString m_source; Status m_status; AutoUpdateType m_autoUpdateType; int m_autoUpdateInitialInterval{}; diff --git a/src/librssguard/services/abstract/serviceroot.cpp b/src/librssguard/services/abstract/serviceroot.cpp index f1901e2fd..2b01e8880 100644 --- a/src/librssguard/services/abstract/serviceroot.cpp +++ b/src/librssguard/services/abstract/serviceroot.cpp @@ -288,7 +288,7 @@ QVariantHash ServiceRoot::customDatabaseData() const { return {}; } -void ServiceRoot::setCustomDatabaseData(const QVariantHash& data) const { +void ServiceRoot::setCustomDatabaseData(const QVariantHash& data) { Q_UNUSED(data) } @@ -524,7 +524,7 @@ QStringList ServiceRoot::textualFeedUrls(const QList& feeds) const { stringy_urls.reserve(feeds.size()); for (const Feed* feed : feeds) { - stringy_urls.append(!feed->url().isEmpty() ? feed->url() : QL1S("no-url")); + stringy_urls.append(!feed->source().isEmpty() ? feed->source() : QL1S("no-url")); } return stringy_urls; diff --git a/src/librssguard/services/abstract/serviceroot.h b/src/librssguard/services/abstract/serviceroot.h index 7aabcd097..7705fa29e 100644 --- a/src/librssguard/services/abstract/serviceroot.h +++ b/src/librssguard/services/abstract/serviceroot.h @@ -54,7 +54,7 @@ class ServiceRoot : public RootItem { virtual LabelOperation supportedLabelOperations() const; virtual void saveAccountDataToDatabase(); virtual QVariantHash customDatabaseData() const; - virtual void setCustomDatabaseData(const QVariantHash& json) const; + virtual void setCustomDatabaseData(const QVariantHash& data); // Returns list of specific actions for "Add new item" main window menu. // So typical list of returned actions could look like: diff --git a/src/librssguard/services/feedly/feedlyserviceroot.cpp b/src/librssguard/services/feedly/feedlyserviceroot.cpp index 0a4820314..ba3839719 100755 --- a/src/librssguard/services/feedly/feedlyserviceroot.cpp +++ b/src/librssguard/services/feedly/feedlyserviceroot.cpp @@ -60,7 +60,7 @@ QVariantHash FeedlyServiceRoot::customDatabaseData() const { return data; } -void FeedlyServiceRoot::setCustomDatabaseData(const QVariantHash& data) const { +void FeedlyServiceRoot::setCustomDatabaseData(const QVariantHash& data) { m_network->setUsername(data["username"].toString()); m_network->setDeveloperAccessToken(data["dat"].toString()); diff --git a/src/librssguard/services/feedly/feedlyserviceroot.h b/src/librssguard/services/feedly/feedlyserviceroot.h index a052e0092..98f116d7f 100755 --- a/src/librssguard/services/feedly/feedlyserviceroot.h +++ b/src/librssguard/services/feedly/feedlyserviceroot.h @@ -22,7 +22,7 @@ class FeedlyServiceRoot : public ServiceRoot, public CacheForServiceRoot { virtual void saveAllCachedData(bool ignore_errors); virtual LabelOperation supportedLabelOperations() const; virtual QVariantHash customDatabaseData() const; - virtual void setCustomDatabaseData(const QVariantHash& data) const; + virtual void setCustomDatabaseData(const QVariantHash& data); FeedlyNetwork* network() const; diff --git a/src/librssguard/services/gmail/gmailserviceroot.cpp b/src/librssguard/services/gmail/gmailserviceroot.cpp index 050a6b75d..9abaa2bc1 100644 --- a/src/librssguard/services/gmail/gmailserviceroot.cpp +++ b/src/librssguard/services/gmail/gmailserviceroot.cpp @@ -63,7 +63,7 @@ QVariantHash GmailServiceRoot::customDatabaseData() const { return data; } -void GmailServiceRoot::setCustomDatabaseData(const QVariantHash& data) const { +void GmailServiceRoot::setCustomDatabaseData(const QVariantHash& data) { m_network->setUsername(data["username"].toString()); m_network->setBatchSize(data["batch_size"].toInt()); m_network->oauth()->setClientId(data["client_id"].toString()); diff --git a/src/librssguard/services/gmail/gmailserviceroot.h b/src/librssguard/services/gmail/gmailserviceroot.h index f2c8535a2..f23200e55 100644 --- a/src/librssguard/services/gmail/gmailserviceroot.h +++ b/src/librssguard/services/gmail/gmailserviceroot.h @@ -30,7 +30,7 @@ class GmailServiceRoot : public ServiceRoot, public CacheForServiceRoot { virtual QString additionalTooltip() const; virtual void saveAllCachedData(bool ignore_errors); virtual QVariantHash customDatabaseData() const; - virtual void setCustomDatabaseData(const QVariantHash& data) const; + virtual void setCustomDatabaseData(const QVariantHash& data); protected: virtual RootItem* obtainNewTreeForSyncIn() const; diff --git a/src/librssguard/services/greader/greadernetwork.cpp b/src/librssguard/services/greader/greadernetwork.cpp index 68bd098d9..38bd0de21 100755 --- a/src/librssguard/services/greader/greadernetwork.cpp +++ b/src/librssguard/services/greader/greadernetwork.cpp @@ -292,7 +292,7 @@ RootItem* GreaderNetwork::decodeTagsSubscriptions(const QString& categories, con auto* feed = new GreaderFeed(); feed->setDescription(url); - feed->setUrl(url); + feed->setSource(url); feed->setTitle(title); feed->setCustomId(id); diff --git a/src/librssguard/services/greader/greaderserviceroot.cpp b/src/librssguard/services/greader/greaderserviceroot.cpp index f8a91a7c3..85a6e9ec7 100755 --- a/src/librssguard/services/greader/greaderserviceroot.cpp +++ b/src/librssguard/services/greader/greaderserviceroot.cpp @@ -47,7 +47,7 @@ QVariantHash GreaderServiceRoot::customDatabaseData() const { return data; } -void GreaderServiceRoot::setCustomDatabaseData(const QVariantHash& data) const { +void GreaderServiceRoot::setCustomDatabaseData(const QVariantHash& data) { m_network->setService(GreaderServiceRoot::Service(data["service"].toInt())); m_network->setUsername(data["username"].toString()); TextFactory::decrypt(data["password"].toString()); diff --git a/src/librssguard/services/greader/greaderserviceroot.h b/src/librssguard/services/greader/greaderserviceroot.h index 3362aff02..aa64898e7 100755 --- a/src/librssguard/services/greader/greaderserviceroot.h +++ b/src/librssguard/services/greader/greaderserviceroot.h @@ -30,7 +30,7 @@ class GreaderServiceRoot : public ServiceRoot, public CacheForServiceRoot { virtual void saveAllCachedData(bool ignore_errors); virtual LabelOperation supportedLabelOperations() const; virtual QVariantHash customDatabaseData() const; - virtual void setCustomDatabaseData(const QVariantHash& data) const; + virtual void setCustomDatabaseData(const QVariantHash& data); GreaderNetwork* network() const; diff --git a/src/librssguard/services/inoreader/inoreadernetworkfactory.cpp b/src/librssguard/services/inoreader/inoreadernetworkfactory.cpp index aad7669f0..8ae0ea2bb 100755 --- a/src/librssguard/services/inoreader/inoreadernetworkfactory.cpp +++ b/src/librssguard/services/inoreader/inoreadernetworkfactory.cpp @@ -421,7 +421,7 @@ RootItem* InoreaderNetworkFactory::decodeFeedCategoriesData(const QString& categ auto* feed = new InoreaderFeed(); feed->setDescription(url); - feed->setUrl(url); + feed->setSource(url); feed->setTitle(title); feed->setCustomId(id); diff --git a/src/librssguard/services/inoreader/inoreaderserviceroot.cpp b/src/librssguard/services/inoreader/inoreaderserviceroot.cpp index 3810abb72..688760aa1 100644 --- a/src/librssguard/services/inoreader/inoreaderserviceroot.cpp +++ b/src/librssguard/services/inoreader/inoreaderserviceroot.cpp @@ -45,7 +45,7 @@ QVariantHash InoreaderServiceRoot::customDatabaseData() const { return data; } -void InoreaderServiceRoot::setCustomDatabaseData(const QVariantHash& data) const { +void InoreaderServiceRoot::setCustomDatabaseData(const QVariantHash& data) { m_network->setUsername(data["username"].toString()); m_network->setBatchSize(data["batch_size"].toInt()); m_network->oauth()->setClientId(data["client_id"].toString()); diff --git a/src/librssguard/services/inoreader/inoreaderserviceroot.h b/src/librssguard/services/inoreader/inoreaderserviceroot.h index e6a5b6b1e..59b37f54c 100644 --- a/src/librssguard/services/inoreader/inoreaderserviceroot.h +++ b/src/librssguard/services/inoreader/inoreaderserviceroot.h @@ -28,7 +28,7 @@ class InoreaderServiceRoot : public ServiceRoot, public CacheForServiceRoot { virtual QString additionalTooltip() const; virtual void saveAllCachedData(bool ignore_errors); virtual QVariantHash customDatabaseData() const; - virtual void setCustomDatabaseData(const QVariantHash& data) const; + virtual void setCustomDatabaseData(const QVariantHash& data); protected: virtual RootItem* obtainNewTreeForSyncIn() const; diff --git a/src/librssguard/services/owncloud/owncloudnetworkfactory.cpp b/src/librssguard/services/owncloud/owncloudnetworkfactory.cpp index 9e60a2cb5..a15630fdd 100755 --- a/src/librssguard/services/owncloud/owncloudnetworkfactory.cpp +++ b/src/librssguard/services/owncloud/owncloudnetworkfactory.cpp @@ -531,16 +531,16 @@ RootItem* OwnCloudGetFeedsCategoriesResponse::feedsCategories(bool obtain_icons) } feed->setCustomId(QString::number(item["id"].toInt())); - feed->setUrl(item["url"].toString()); + feed->setSource(item["url"].toString()); - if (feed->url().isEmpty()) { - feed->setUrl(item["link"].toString()); + if (feed->source().isEmpty()) { + feed->setSource(item["link"].toString()); } feed->setTitle(item["title"].toString()); if (feed->title().isEmpty()) { - if (feed->url().isEmpty()) { + if (feed->source().isEmpty()) { // We cannot add feed which has no title and no url to RSS Guard!!! qCriticalNN << LOGSEC_NEXTCLOUD << "Skipping feed with custom ID" @@ -549,7 +549,7 @@ RootItem* OwnCloudGetFeedsCategoriesResponse::feedsCategories(bool obtain_icons) continue; } else { - feed->setTitle(feed->url()); + feed->setTitle(feed->source()); } } diff --git a/src/librssguard/services/owncloud/owncloudserviceroot.cpp b/src/librssguard/services/owncloud/owncloudserviceroot.cpp index 5fdeae63b..c573a63ae 100644 --- a/src/librssguard/services/owncloud/owncloudserviceroot.cpp +++ b/src/librssguard/services/owncloud/owncloudserviceroot.cpp @@ -140,7 +140,7 @@ QVariantHash OwnCloudServiceRoot::customDatabaseData() const { return data; } -void OwnCloudServiceRoot::setCustomDatabaseData(const QVariantHash& data) const { +void OwnCloudServiceRoot::setCustomDatabaseData(const QVariantHash& data) { m_network->setAuthUsername(data["auth_username"].toString()); m_network->setAuthPassword(TextFactory::decrypt(data["auth_password"].toString())); m_network->setUrl(data["url"].toString()); diff --git a/src/librssguard/services/owncloud/owncloudserviceroot.h b/src/librssguard/services/owncloud/owncloudserviceroot.h index fc2ca972d..1945b857c 100644 --- a/src/librssguard/services/owncloud/owncloudserviceroot.h +++ b/src/librssguard/services/owncloud/owncloudserviceroot.h @@ -27,7 +27,7 @@ class OwnCloudServiceRoot : public ServiceRoot, public CacheForServiceRoot { virtual QString code() const; virtual void saveAllCachedData(bool ignore_errors); virtual QVariantHash customDatabaseData() const; - virtual void setCustomDatabaseData(const QVariantHash& data) const; + virtual void setCustomDatabaseData(const QVariantHash& data); OwnCloudNetworkFactory* network() const; diff --git a/src/librssguard/services/standard/gui/formstandardfeeddetails.cpp b/src/librssguard/services/standard/gui/formstandardfeeddetails.cpp index aa5d70f8b..17b88a4fa 100644 --- a/src/librssguard/services/standard/gui/formstandardfeeddetails.cpp +++ b/src/librssguard/services/standard/gui/formstandardfeeddetails.cpp @@ -80,7 +80,7 @@ void FormStandardFeedDetails::apply() { new_feed->setType(type); new_feed->setSourceType(m_standardFeedDetails->sourceType()); new_feed->setPostProcessScript(m_standardFeedDetails->m_ui.m_txtPostProcessScript->textEdit()->toPlainText()); - new_feed->setUrl(m_standardFeedDetails->m_ui.m_txtSource->textEdit()->toPlainText()); + new_feed->setSource(m_standardFeedDetails->m_ui.m_txtSource->textEdit()->toPlainText()); new_feed->setPasswordProtected(m_authDetails->m_gbAuthentication->isChecked()); new_feed->setUsername(m_authDetails->m_txtUsername->lineEdit()->text()); new_feed->setPassword(m_authDetails->m_txtPassword->lineEdit()->text()); diff --git a/src/librssguard/services/standard/gui/standardfeeddetails.cpp b/src/librssguard/services/standard/gui/standardfeeddetails.cpp index 505c141a2..9b0636684 100755 --- a/src/librssguard/services/standard/gui/standardfeeddetails.cpp +++ b/src/librssguard/services/standard/gui/standardfeeddetails.cpp @@ -329,7 +329,7 @@ void StandardFeedDetails::setExistingFeed(StandardFeed* feed) { m_ui.m_txtTitle->lineEdit()->setText(feed->title()); m_ui.m_txtDescription->lineEdit()->setText(feed->description()); m_ui.m_btnIcon->setIcon(feed->icon()); - m_ui.m_txtSource->textEdit()->setPlainText(feed->url()); + m_ui.m_txtSource->textEdit()->setPlainText(feed->source()); m_ui.m_txtPostProcessScript->textEdit()->setPlainText(feed->postProcessScript()); m_ui.m_cmbType->setCurrentIndex(m_ui.m_cmbType->findData(QVariant::fromValue(int(feed->type())))); m_ui.m_cmbEncoding->setCurrentIndex(m_ui.m_cmbEncoding->findData(feed->encoding(), diff --git a/src/librssguard/services/standard/standardfeed.cpp b/src/librssguard/services/standard/standardfeed.cpp index 4fc684885..233b34674 100644 --- a/src/librssguard/services/standard/standardfeed.cpp +++ b/src/librssguard/services/standard/standardfeed.cpp @@ -98,6 +98,30 @@ bool StandardFeed::deleteViaGui() { } } +QVariantHash StandardFeed::customDatabaseData() const { + QVariantHash data; + + data["source_type"] = int(sourceType()); + data["type"] = int(type()); + data["encoding"] = encoding(); + data["post_process"] = postProcessScript(); + data["protected"] = passwordProtected(); + data["username"] = username(); + data["password"] = TextFactory::encrypt(password()); + + return data; +} + +void StandardFeed::setCustomDatabaseData(const QVariantHash& data) { + setSourceType(SourceType(data["source_type"].toInt())); + setType(Type(data["type"].toInt())); + setEncoding(data["encoding"].toString()); + setPostProcessScript(data["post_process"].toString()); + setPasswordProtected(data["protected"].toBool()); + setUsername(data["username"].toString()); + setPassword(TextFactory::decrypt(data["password"].toString())); +} + QString StandardFeed::typeToString(StandardFeed::Type type) { switch (type) { case Type::Atom10: @@ -137,7 +161,7 @@ QString StandardFeed::sourceTypeToString(StandardFeed::SourceType type) { void StandardFeed::fetchMetadataForItself() { bool result; StandardFeed* metadata = guessFeed(sourceType(), - url(), + source(), postProcessScript(), &result, username(), @@ -147,7 +171,7 @@ void StandardFeed::fetchMetadataForItself() { if (metadata != nullptr && result) { // Some properties are not updated when new metadata are fetched. metadata->setParent(parent()); - metadata->setUrl(url()); + metadata->setSource(source()); metadata->setPasswordProtected(passwordProtected()); metadata->setUsername(username()); metadata->setPassword(password()); @@ -181,7 +205,7 @@ StandardFeed::SourceType StandardFeed::sourceType() const { return m_sourceType; } -void StandardFeed::setSourceType(const SourceType& source_type) { +void StandardFeed::setSourceType(SourceType source_type) { m_sourceType = source_type; } @@ -478,7 +502,7 @@ bool StandardFeed::addItself(RootItem* parent) { QSqlDatabase database = qApp->database()->connection(metaObject()->className()); bool ok; int new_id = DatabaseQueries::addStandardFeed(database, parent->id(), parent->getParentServiceRoot()->accountId(), - title(), description(), creationDate(), icon(), encoding(), url(), + title(), description(), creationDate(), icon(), encoding(), source(), passwordProtected(), username(), password(), autoUpdateType(), autoUpdateInitialInterval(), sourceType(), postProcessScript(), type(), &ok); @@ -502,7 +526,7 @@ bool StandardFeed::editItself(StandardFeed* new_feed_data) { if (!DatabaseQueries::editStandardFeed(database, new_parent->id(), original_feed->id(), new_feed_data->title(), new_feed_data->description(), new_feed_data->icon(), - new_feed_data->encoding(), new_feed_data->url(), new_feed_data->passwordProtected(), + new_feed_data->encoding(), new_feed_data->source(), new_feed_data->passwordProtected(), new_feed_data->username(), new_feed_data->password(), new_feed_data->autoUpdateType(), new_feed_data->autoUpdateInitialInterval(), new_feed_data->sourceType(), new_feed_data->postProcessScript(), @@ -519,7 +543,7 @@ bool StandardFeed::editItself(StandardFeed* new_feed_data) { original_feed->setIcon(new_feed_data->icon()); original_feed->setEncoding(new_feed_data->encoding()); original_feed->setDescription(new_feed_data->description()); - original_feed->setUrl(new_feed_data->url()); + original_feed->setSource(new_feed_data->source()); original_feed->setPasswordProtected(new_feed_data->passwordProtected()); original_feed->setUsername(new_feed_data->username()); original_feed->setPassword(new_feed_data->password()); @@ -556,14 +580,14 @@ QList StandardFeed::obtainNewMessages(bool* error_during_obtaining) { if (sourceType() == SourceType::Url) { qDebugNN << LOGSEC_CORE << "Downloading URL" - << QUOTE_W_SPACE(url()) + << QUOTE_W_SPACE(source()) << "to obtain feed data."; QByteArray feed_contents; QList> headers; headers << NetworkFactory::generateBasicAuthHeader(username(), password()); - m_networkError = NetworkFactory::performNetworkOperation(url(), + m_networkError = NetworkFactory::performNetworkOperation(source(), download_timeout, QByteArray(), feed_contents, @@ -579,7 +603,7 @@ QList StandardFeed::obtainNewMessages(bool* error_during_obtaining) { << "Error" << QUOTE_W_SPACE(m_networkError) << "during fetching of new messages for feed" - << QUOTE_W_SPACE_DOT(url()); + << QUOTE_W_SPACE_DOT(source()); setStatus(Status::NetworkError); *error_during_obtaining = true; return QList(); @@ -603,12 +627,12 @@ QList StandardFeed::obtainNewMessages(bool* error_during_obtaining) { else { qDebugNN << LOGSEC_CORE << "Running custom script" - << QUOTE_W_SPACE(url()) + << QUOTE_W_SPACE(source()) << "to obtain feed data."; // Use script to generate feed file. try { - formatted_feed_contents = generateFeedFileWithScript(url(), download_timeout); + formatted_feed_contents = generateFeedFileWithScript(source(), download_timeout); } catch (const ScriptException& ex) { qCriticalNN << LOGSEC_CORE diff --git a/src/librssguard/services/standard/standardfeed.h b/src/librssguard/services/standard/standardfeed.h index 77e89a4d7..b7c5ab4fb 100644 --- a/src/librssguard/services/standard/standardfeed.h +++ b/src/librssguard/services/standard/standardfeed.h @@ -53,6 +53,9 @@ class StandardFeed : public Feed { bool editViaGui(); bool deleteViaGui(); + virtual QVariantHash customDatabaseData() const; + virtual void setCustomDatabaseData(const QVariantHash& data); + // Obtains data related to this feed. Qt::ItemFlags additionalFlags() const; bool performDragDropChange(RootItem* target_item); @@ -66,7 +69,7 @@ class StandardFeed : public Feed { void setType(Type type); SourceType sourceType() const; - void setSourceType(const SourceType& source_type); + void setSourceType(SourceType source_type); QString encoding() const; void setEncoding(const QString& encoding); diff --git a/src/librssguard/services/standard/standardfeedsimportexportmodel.cpp b/src/librssguard/services/standard/standardfeedsimportexportmodel.cpp index 97b368cc7..5bd8d1e3a 100644 --- a/src/librssguard/services/standard/standardfeedsimportexportmodel.cpp +++ b/src/librssguard/services/standard/standardfeedsimportexportmodel.cpp @@ -89,7 +89,7 @@ bool FeedsImportExportModel::exportToOMPL20(QByteArray& result) { outline_feed.setAttribute(QSL("type"), QSL("rss")); outline_feed.setAttribute(QSL("text"), child_feed->title()); - outline_feed.setAttribute(QSL("xmlUrl"), child_feed->url()); + outline_feed.setAttribute(QSL("xmlUrl"), child_feed->source()); outline_feed.setAttribute(QSL("description"), child_feed->description()); outline_feed.setAttribute(QSL("encoding"), child_feed->encoding()); outline_feed.setAttribute(QSL("title"), child_feed->title()); @@ -196,7 +196,7 @@ void FeedsImportExportModel::importAsOPML20(const QByteArray& data, bool fetch_m custom_proxy)) != nullptr && result) { // We should obtain fresh metadata from online feed source. - guessed->setUrl(feed_url); + guessed->setSource(feed_url); active_model_item->appendChild(guessed); succeded++; } @@ -211,7 +211,7 @@ void FeedsImportExportModel::importAsOPML20(const QByteArray& data, bool fetch_m new_feed->setTitle(feed_title); new_feed->setDescription(feed_description); new_feed->setEncoding(feed_encoding); - new_feed->setUrl(feed_url); + new_feed->setSource(feed_url); new_feed->setCreationDate(QDateTime::currentDateTime()); new_feed->setIcon(feed_icon); @@ -285,7 +285,7 @@ void FeedsImportExportModel::importAsOPML20(const QByteArray& data, bool fetch_m bool FeedsImportExportModel::exportToTxtURLPerLine(QByteArray& result) { for (const Feed* const feed : sourceModel()->rootItem()->getSubTreeFeeds()) { - result += feed->url() + QL1S("\n"); + result += feed->source() + QL1S("\n"); } return true; @@ -318,14 +318,14 @@ void FeedsImportExportModel::importAsTxtURLPerLine(const QByteArray& data, bool url, {}, &result, {}, {}, custom_proxy)) != nullptr && result) { - guessed->setUrl(url); + guessed->setSource(url); root_item->appendChild(guessed); succeded++; } else { auto* feed = new StandardFeed(); - feed->setUrl(url); + feed->setSource(url); feed->setTitle(url); feed->setCreationDate(QDateTime::currentDateTime()); feed->setIcon(qApp->icons()->fromTheme(QSL("application-rss+xml"))); diff --git a/src/librssguard/services/tt-rss/ttrssserviceroot.cpp b/src/librssguard/services/tt-rss/ttrssserviceroot.cpp index ef17dd6b3..9a7adf69e 100644 --- a/src/librssguard/services/tt-rss/ttrssserviceroot.cpp +++ b/src/librssguard/services/tt-rss/ttrssserviceroot.cpp @@ -200,7 +200,7 @@ QVariantHash TtRssServiceRoot::customDatabaseData() const { return data; } -void TtRssServiceRoot::setCustomDatabaseData(const QVariantHash& data) const { +void TtRssServiceRoot::setCustomDatabaseData(const QVariantHash& data) { m_network->setUsername( data["username"].toString()); m_network->setPassword(TextFactory::decrypt(data["password"].toString())); m_network->setAuthIsUsed(data["auth_protected"].toBool()); diff --git a/src/librssguard/services/tt-rss/ttrssserviceroot.h b/src/librssguard/services/tt-rss/ttrssserviceroot.h index 418c366d1..297a5098e 100644 --- a/src/librssguard/services/tt-rss/ttrssserviceroot.h +++ b/src/librssguard/services/tt-rss/ttrssserviceroot.h @@ -32,7 +32,7 @@ class TtRssServiceRoot : public ServiceRoot, public CacheForServiceRoot { virtual QString additionalTooltip() const; virtual void saveAllCachedData(bool ignore_errors); virtual QVariantHash customDatabaseData() const; - virtual void setCustomDatabaseData(const QVariantHash& data) const; + virtual void setCustomDatabaseData(const QVariantHash& data); // Access to network. TtRssNetworkFactory* network() const;