diff --git a/CHANGELOG.md b/CHANGELOG.md index c58f94b2..96609e97 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ This project adheres to [Semantic Versioning](http://semver.org/). - Add graceful shutdown of modules by calling `stop` function of each `node_helper` on SIGINT before exiting. - Link update subtext to Github diff of current version versus tracking branch. - Add Catalan translation. +- Add ability to filter out newsfeed items based on prohibited words found in title (resolves #1071) ### Updated diff --git a/modules/default/newsfeed/README.md b/modules/default/newsfeed/README.md index 7c4ad48d..843c2dda 100644 --- a/modules/default/newsfeed/README.md +++ b/modules/default/newsfeed/README.md @@ -76,6 +76,7 @@ The following properties can be configured: | `startTags` | List the tags you would like to have removed at the beginning of the feed item

**Possible values:** `['TAG']` or `['TAG1','TAG2',...]` | `removeEndTags` | Remove specified tags from the **end** of an item's description and/or title.

**Possible values:**`'title'`, `'description'`, `'both'` | `endTags` | List the tags you would like to have removed at the end of the feed item

**Possible values:** `['TAG']` or `['TAG1','TAG2',...]` +| `prohibitedWords` | Remove news feed item if one of these words is found anywhere in the title (case insensitive and greedy matching)

**Possible values:** `['word']` or `['word1','word2',...]` The `feeds` property contains an array with multiple objects. These objects have the following properties: diff --git a/modules/default/newsfeed/newsfeed.js b/modules/default/newsfeed/newsfeed.js index b230fdb1..75a5e2b5 100644 --- a/modules/default/newsfeed/newsfeed.js +++ b/modules/default/newsfeed/newsfeed.js @@ -33,7 +33,8 @@ Module.register("newsfeed",{ removeStartTags: "", removeEndTags: "", startTags: [], - endTags: [] + endTags: [], + prohibitedWords: [] }, @@ -241,6 +242,18 @@ Module.register("newsfeed",{ if(this.config.maxNewsItems > 0) { newsItems = newsItems.slice(0, this.config.maxNewsItems); } + + if(this.config.prohibitedWords.length > 0) { + newsItems = newsItems.filter(function(value){ + for (var i=0; i < this.config.prohibitedWords.length; i++) { + if (value["title"].toLowerCase().indexOf(this.config.prohibitedWords[i].toLowerCase()) > -1) { + return false; + } + } + return true; + }, this); + } + this.newsItems = newsItems; },