# Custom Comparisons

{% hint style="danger" %}
**This documentation site is deprecated. Please visit the control panel at** [**https://monitorss.xyz** ](https://monitorss.xyz)**for all up-to-date functionality**
{% endhint %}

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

"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

"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.

{% hint style="danger" %}
If date checks are turned on, an article that passes p-comparisons will still be blocked if it is marked old via date checks.
{% endhint %}

## Format

{% code title="Feed" %}

```javascript
{
    "title" : "some title", 
    "url" : "https://somefeed.com/feed.xml", 
    "channel" : "12345", 
    "text" : "📰  |  **{title}**\n\n{description}\n\n{subscriptions}",
    "pcomparisons" : [
        "description"
    ],
    "ncomparisons": [
        "title"
    ]
}

```

{% endcode %}

## Example

Assume `dump original` gives the file contents:

```javascript
[
  {
    "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&quot; UWQHD 3440x1440 165hz 1ms VA-($599.99-$50.00)$549.99\" title=\"[Monitor] Samsung Odyssey G5-34&quot; UWQHD 3440x1440 165hz 1ms VA-($599.99-$50.00)$549.99\" /> </a> </td><td> &#32; submitted by &#32; <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> &#32; <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.
