/** * Execute pushover test * * @todo move test to separate class */ protected function testPushover() { $pushover = psm_build_pushover(); $pushover->setDebug(true); $user = $this->getUser()->getUser(); $api_token = psm_get_conf('pushover_api_token'); if (empty($api_token)) { $this->addMessage(psm_get_lang('config', 'pushover_error_noapp'), 'error'); } elseif (empty($user->pushover_key)) { $this->addMessage(psm_get_lang('config', 'pushover_error_nokey'), 'error'); } else { $pushover->setPriority(0); $pushover->setTitle(psm_get_lang('config', 'test_subject')); $pushover->setMessage(psm_get_lang('config', 'test_message')); $pushover->setUser($user->pushover_key); if ($user->pushover_device != '') { $pushover->setDevice($user->pushover_device); } $result = $pushover->send(); if (isset($result['output']->status) && $result['output']->status == 1) { $this->addMessage(psm_get_lang('config', 'pushover_sent'), 'success'); } else { if (isset($result['output']->errors->error)) { $error = $result['output']->errors->error; } else { $error = 'Unknown'; } $this->addMessage(sprintf(psm_get_lang('config', 'pushover_error'), $error), 'error'); } } }
/** * This functions performs the pushover notifications * * @param array $users * @return boolean */ protected function notifyByPushover($users) { $userlist = array(); $pushover = psm_build_pushover(); if ($this->status_new === true) { $pushover->setPriority(0); } else { $pushover->setPriority(2); $pushover->setRetry(300); //Used with Priority = 2; Pushover will resend the notification every 60 seconds until the user accepts. $pushover->setExpire(3600); //Used with Priority = 2; Pushover will resend the notification every 60 seconds for 3600 seconds. After that point, it stops sending notifications. } $message = psm_parse_msg($this->status_new, 'pushover_message', $this->server); $pushover->setTitle(psm_parse_msg($this->status_new, 'pushover_title', $this->server)); $pushover->setMessage(str_replace('<br/>', "\n", $message)); $pushover->setUrl(psm_build_url()); $pushover->setUrlTitle(psm_get_lang('system', 'title')); foreach ($users as $user) { if (trim($user['pushover_key']) == '') { continue; } $userlist[] = $user['user_id']; $pushover->setUser($user['pushover_key']); if ($user['pushover_device'] != '') { $pushover->setDevice($user['pushover_device']); } $pushover->send(); } if (psm_get_conf('log_pushover')) { psm_add_log($this->server_id, 'pushover', $message, implode(',', $userlist)); } }