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 {