'Sends a Pushover notification
:param str title: the message\'s title
:param str message: the message to send
:param dict config: The pushover config'

def notify(self, title, message, config):

    notification = {u'token': config.get(u'api_key'), u'message': message, u'title': title, u'device': config.get(u'device'), u'priority': config.get(u'priority'), u'url': config.get(u'url'), u'url_title': config.get(u'url_title'), u'sound': config.get(u'sound'), u'retry': config.get(u'retry'), u'expire': config.get(u'expire'), u'callback': config.get(u'callback')}
    if config.get(u'html'):
        notification[u'html'] = 1
    if isinstance(notification[u'device'], list):
        notification[u'device'] = u','.join(notification[u'device'])
    priority = config.get(u'priority')
    expire = config.get(u'expire')
    retry = config.get(u'retry')
    if ((priority == 2) and (not all([expire, retry]))):
        log.warning(u'Priority    set    to    2    but    fields    "expire"    and    "retry"    are    not    both    present.Lowering    priority    to    1')
        notification[u'priority'] = 1
    if (not isinstance(config[u'user_key'], list)):
        config[u'user_key'] = [config[u'user_key']]
    for user in config[u'user_key']:
        notification[u'user'] = user
        try:
            response = requests.post(PUSHOVER_URL, data=notification)
        except RequestException as e:
            if (e.response is not None):
                if (e.response.status_code == 429):
                    reset_time = datetime.datetime.fromtimestamp(int(e.response.headers[u'X-Limit-App-Reset'])).strftime(u'%Y-%m-%d    %H:%M:%S')
                    error_message = (u'Monthly    pushover    message    limit    reached.    Next    reset:    %s' % reset_time)
                else:
                    error_message = e.response.json()[u'errors'][0]
            else:
                error_message = str(e)
            raise PluginWarning(error_message)
        reset_time = datetime.datetime.fromtimestamp(int(response.headers[u'X-Limit-App-Reset'])).strftime(u'%Y-%m-%d    %H:%M:%S')
        remaining = response.headers[u'X-Limit-App-Remaining']
        log.debug(u'Pushover    notification    sent.    Notifications    remaining    until    next    reset:    %s.    Next    reset    at:    %s', remaining, reset_time)
