Custom Comparisons
Custom Comparisons are additional checks after the default algorithm determines whether an article is new or old. They can be accessed by the
compare
command. Properties on the original article object are used. To get the original properties, use the dump
command with the original
argument. For nested keys, separate them with _
.All comparison keys are from the original feed object, which can be accessed through the
rss.dump original
command. If the values are not pure strings, they will get ignored (this includes dates).To remove all settings, add the
reset
argument, for example rss.compare reset
."blocking" comparisons will check additional article properties to attempt to block an article from sending after default algorithms mark an article as new.
An example use case is when you don't want articles with the same title to send.
"passing" comparisons will check additional article properties to attempt to pass an article for it to send after default algorithms mark an article as old.
An example use case is when you want the same article that frequently changes description to repeatedly send.
If date checks are turned on, an article that passes p-comparisons will still be blocked if it is marked old via date checks.
Feed
{
"title" : "some title",
"url" : "https://somefeed.com/feed.xml",
"channel" : "12345",
"text" : "📰 | **{title}**\n\n{description}\n\n{subscriptions}",
"pcomparisons" : [
"description"
],
"ncomparisons": [
"title"
]
}
Assume
dump original
gives the file contents:[
{
"title": "[Monitor] Samsung Odyssey G5-34\" UWQHD 3440x1440 165hz 1ms VA-($599.99-$50.00)$549.99",
"description": "<table> <tr><td> <a href=\"https://www.reddit.com/r/buildapcsales/comments/ldz9yg/monitor_samsung_odyssey_g534_uwqhd_3440x1440/\"> <img src=\"https://b.thumbs.redditmedia.com/ynjnniuznA1nN7hZHSSU3jRzTRcE8E1JifDtXWUNWPA.jpg\" alt=\"[Monitor] Samsung Odyssey G5-34" UWQHD 3440x1440 165hz 1ms VA-($599.99-$50.00)$549.99\" title=\"[Monitor] Samsung Odyssey G5-34" UWQHD 3440x1440 165hz 1ms VA-($599.99-$50.00)$549.99\" /> </a> </td><td>   submitted by   <a href=\"https://www.reddit.com/user/SenorSalsa\"> /u/SenorSalsa </a> <br/> <span><a href=\"https://www.bestbuy.com/site/samsung-g5-odyssey-34-curved-gaming-monitor-with-165hz-refresh-rate-black/6445082.p?skuId=6445082\">[link]</a></span>   <span><a href=\"https://www.reddit.com/r/buildapcsales/comments/ldz9yg/monitor_samsung_odyssey_g534_uwqhd_3440x1440/\">[comments]</a></span> </td></tr></table>",
"summary": null,
"date": "2021-02-06T15:03:27.000Z",
"pubdate": "2021-02-06T15:03:27.000Z",
"pubDate": "2021-02-06T15:03:27.000Z",
"link": "https://www.reddit.com/r/buildapcsales/comments/ldz9yg/monitor_samsung_odyssey_g534_uwqhd_3440x1440/",
"guid": "t3_ldz9yg",
"author": "/u/SenorSalsa",
"comments": null,
"origlink": null,
"image": {
"url": "https://b.thumbs.redditmedia.com/ynjnniuznA1nN7hZHSSU3jRzTRcE8E1JifDtXWUNWPA.jpg"
}
}
]
The first object is an example of an article object.
If you'd like the article to be delivered whenever the
image.url
changes for any article, the command would be rss.compare +image_url
.If you'd like the article to be delivered whenever the both the
image.url
and the author
changes, the command would be rss.compare +image_url +author
.If you'd like articles to be blocked if a title was already posted by another article, the command would be
compare -title
.If you'd like articles to be blocked if either the
title
or the guid
was posted by another article, the command would be compare -title -guid
.You can mix
+
and -
as much as you'd like.