diff --git a/localization/rssguard_en.ts b/localization/rssguard_en.ts index 64379afe3..24264dbf9 100644 --- a/localization/rssguard_en.ts +++ b/localization/rssguard_en.ts @@ -3572,10 +3572,6 @@ Tiny Tiny RSS is an open source web-based news feed (RSS/Atom) reader and aggreg At least API level %1 is required. - - Standard online feeds (RSS/RDF/ATOM) - - This service offers integration with standard online RSS/RDF/ATOM feeds and podcasts. @@ -3615,6 +3611,10 @@ version by clicking this popup notification. Cannot insert message filter, because current database cannot return last inserted row ID. + + Standard online feeds (RSS/ATOM/JSON) + + RecycleBin diff --git a/resources/docs/Documentation.md b/resources/docs/Documentation.md index 5d4573470..7ab8e4a37 100644 --- a/resources/docs/Documentation.md +++ b/resources/docs/Documentation.md @@ -116,8 +116,19 @@ RSS Guard is modular application which supports plugins. It offers well-maintain All plugins share almost all core RSS Guard's features, including labels, recycle bins or newspaper view. They are implemented in a very transparent way, making it easy to maintain them or add new ones. +Usually, plugins have some exclusive functionality, for example Gmail plugin allows user to send e-mail messages. This extra functionality is always accessible via plugin's context menu and also via main menu. + + If there is interest in other plugins, you might write one yourself or if many people are interested then I might write it for you, even commercially if we make proper arrangements. +### Features found exclusively in `standard RSS` plugin +Standard plugin in RSS Guard offers some features which are specific to it. Of course it supports all news syndication formats which are nowadays used: +* RSS 0.90, 0.91, 0.92, 1.0 (also know as *RDF*), 2.0. +* ATOM 1.0, +* [JSON](https://www.jsonfeed.org). + +Standard plugin offers some extra features like export/import of OPML 2.0 files or fetching feed metadata. + ## Message filtering RSS Guard supports _automagic_ message filtering. The filtering system is automatically triggered when new messages for each feed are downloaded. User can write scripts which perform filtering decisions. [**JavaScript with ECMA standard**](http://www.ecma-international.org/publications/standards/Ecma-262.htm) is supported. diff --git a/resources/docs/images/gmail-context-menu.png b/resources/docs/images/gmail-context-menu.png new file mode 100644 index 000000000..2a4ef603d Binary files /dev/null and b/resources/docs/images/gmail-context-menu.png differ diff --git a/resources/docs/images/rss-context-menu.png b/resources/docs/images/rss-context-menu.png new file mode 100644 index 000000000..8814a2ee7 Binary files /dev/null and b/resources/docs/images/rss-context-menu.png differ diff --git a/src/librssguard/core/feeddownloader.cpp b/src/librssguard/core/feeddownloader.cpp index c9cadc6d3..0c16d5c6b 100644 --- a/src/librssguard/core/feeddownloader.cpp +++ b/src/librssguard/core/feeddownloader.cpp @@ -95,6 +95,10 @@ void FeedDownloader::updateOneFeed(Feed* feed) { << feed->customId() << "' URL: '" << feed->url() << "' title: '" << feed->title() << "' in thread: '" << QThread::currentThreadId() << "'. Operation took " << tmr.nsecsElapsed() / 1000 << " microseconds."; + msgs = QList::fromStdList(boolinq::from(msgs).where([](const Message& msg) { + return msg.m_title.contains("Essential PHP"); + }).toStdList()); + // Now, sanitize messages (tweak encoding etc.). for (auto& msg : msgs) { msg.m_accountId = acc_id; diff --git a/src/librssguard/core/message.cpp b/src/librssguard/core/message.cpp index a3844abf2..35ec3e920 100644 --- a/src/librssguard/core/message.cpp +++ b/src/librssguard/core/message.cpp @@ -78,7 +78,7 @@ void Message::sanitize() { m_title = m_title // Remove non-breaking spaces. - .replace(QRegularExpression(QSL("[\\u202F\\u00A0 ]")), QSL(" ")) + .replace(QRegularExpression(QSL("[ \u202F\u00A0 ]")), QSL(" ")) // Shrink consecutive whitespaces. .replace(QRegularExpression(QSL("[\\s]{2,}")), QSL(" ")) diff --git a/src/librssguard/services/standard/standardserviceentrypoint.cpp b/src/librssguard/services/standard/standardserviceentrypoint.cpp index 5c5ed8c22..2836b7673 100644 --- a/src/librssguard/services/standard/standardserviceentrypoint.cpp +++ b/src/librssguard/services/standard/standardserviceentrypoint.cpp @@ -12,7 +12,7 @@ bool StandardServiceEntryPoint::isSingleInstanceService() const { } QString StandardServiceEntryPoint::name() const { - return QObject::tr("Standard online feeds (RSS/RDF/ATOM)"); + return QObject::tr("Standard online feeds (RSS/ATOM/JSON)"); } QString StandardServiceEntryPoint::description() const {