From 463eb5489775e29c273c7c69c2e65e0e6670706c Mon Sep 17 00:00:00 2001 From: Chris Caron Date: Thu, 2 Jun 2022 19:31:38 -0400 Subject: [PATCH] Pushover to support numerical priority values (#597) --- apprise/plugins/NotifyPushover.py | 20 +++++++++++++------- test/test_plugin_pushover.py | 4 ++++ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/apprise/plugins/NotifyPushover.py b/apprise/plugins/NotifyPushover.py index d7f5750f..c94a75c5 100644 --- a/apprise/plugins/NotifyPushover.py +++ b/apprise/plugins/NotifyPushover.py @@ -564,19 +564,25 @@ class NotifyPushover(NotifyBase): # Set our priority if 'priority' in results['qsd'] and len(results['qsd']['priority']): _map = { + # Keep for backwards compatibility 'l': PushoverPriority.LOW, 'm': PushoverPriority.MODERATE, 'n': PushoverPriority.NORMAL, 'h': PushoverPriority.HIGH, 'e': PushoverPriority.EMERGENCY, - } - try: - results['priority'] = \ - _map[results['qsd']['priority'][0].lower()] - except KeyError: - # No priority was set - pass + # Entries to additionally support (so more like PushOver's API + '-2': PushoverPriority.LOW, + '-1': PushoverPriority.MODERATE, + '0': PushoverPriority.NORMAL, + '1': PushoverPriority.HIGH, + '2': PushoverPriority.EMERGENCY, + } + priority = results['qsd']['priority'][0].lower() + results['priority'] = \ + next(( + v for k, v in _map.items() if priority.startswith(k)), + NotifyPushover.template_args['priority']['default']) # Retrieve all of our targets results['targets'] = NotifyPushover.split_path(results['fullpath']) diff --git a/test/test_plugin_pushover.py b/test/test_plugin_pushover.py index f880eb21..fef109fa 100644 --- a/test/test_plugin_pushover.py +++ b/test/test_plugin_pushover.py @@ -115,6 +115,10 @@ apprise_url_tests = ( ('pover://%s@%s?priority=emergency' % ('u' * 30, 'a' * 30), { 'instance': plugins.NotifyPushover, }), + # API Key + emergency(2) priority setting (via numeric value + ('pover://%s@%s?priority=2' % ('u' * 30, 'a' * 30), { + 'instance': plugins.NotifyPushover, + }), # API Key + emergency priority setting with retry and expire ('pover://%s@%s?priority=emergency&%s&%s' % ('u' * 30, 'a' * 30,