newsfeed: add specific ignoreOlderThan value (override) per feed (#3742)

fixes #3360 

superseeds https://github.com/MagicMirrorOrg/MagicMirror/pull/3429

had to open a new PR because getting `permission denied` when trying to
push to the old one.
This commit is contained in:
Karsten Hassel 2025-03-18 10:19:05 +01:00 committed by GitHub
parent 51d11bf26c
commit 0cfe2730ea
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 14 additions and 1 deletions

View File

@ -19,6 +19,7 @@ planned for 2025-04-01
- Add Arabic (#3719) and Esperanto translation. - Add Arabic (#3719) and Esperanto translation.
- Mark option `secondsColor` as deprecated in clock module. - Mark option `secondsColor` as deprecated in clock module.
- Add Greek translation to Alerts module. - Add Greek translation to Alerts module.
- [newsfeed] Add specific ignoreOlderThan value (override) per feed (#3360)
### Changed ### Changed

View File

@ -177,6 +177,18 @@ Module.register("newsfeed", {
} }
}, },
/**
* Gets a feed property by name
* @param {object} feed A feed object.
* @param {string} property The name of the property.
*/
getFeedProperty (feed, property) {
let res = this.config[property];
const f = this.config.feeds.find((feedItem) => feedItem.url === feed);
if (f && f[property]) res = f[property];
return res;
},
/** /**
* Generate an ordered list of items for this configured module. * Generate an ordered list of items for this configured module.
* @param {object} feeds An object with feeds returned by the node helper. * @param {object} feeds An object with feeds returned by the node helper.
@ -188,7 +200,7 @@ Module.register("newsfeed", {
if (this.subscribedToFeed(feed)) { if (this.subscribedToFeed(feed)) {
for (let item of feedItems) { for (let item of feedItems) {
item.sourceTitle = this.titleForFeed(feed); item.sourceTitle = this.titleForFeed(feed);
if (!(this.config.ignoreOldItems && Date.now() - new Date(item.pubdate) > this.config.ignoreOlderThan)) { if (!(this.getFeedProperty(feed, "ignoreOldItems") && Date.now() - new Date(item.pubdate) > this.getFeedProperty(feed, "ignoreOlderThan"))) {
newsItems.push(item); newsItems.push(item);
} }
} }