/** * Pushover Recipient * * Validates Pushover UID and GIDs * * @param string $key * @param string $app * @return bool */ public static function pushoverRecipient($key, $app) { $pattern = '/^[ug][A-Za-z0-9]{29}$/'; if (preg_match($pattern, $key)) { $http = new HTTP(); $http->setURL('https://api.pushover.net/1/users/validate.json'); $http->setSecure(true); $http->setPostContent(array('token' => $app, 'user' => $key)); $r = $http->run(); if ($r['code'] === 200) { if (json_decode($r['body'], true)['status'] === 1) { return true; } } elseif ($r['code'] !== 200) { throw new Exception("Failed to contact Pushover API to verify UID/GID (Status code !== 200)."); } } return false; }
/** * Get Matches and Alliances * * Returns an array of matches and the alliances for each match at an event. * * @param string $eventKey * @return array|false * @throws Exception */ public function getMatches($eventKey) { if (!is_string($eventKey)) { throw new Exception("eventKey is not string: " . $eventKey); } $request = new HTTP($this->TConfig); $request->setURL(static::uri . '/event/' . $eventKey . '/matches'); $request->setHeaders($this->setAPIHeaders()); $out = $request->exec(); if ($out['code'] !== 200) { throw new Exception("Event key matches returned non-200 response code: " . $out['code']); } $body = json_decode($out['body'], true); if (!is_array($body)) { //throw new Exception("getMatches(...) request body was not array when attempted to be decoded."); return false; } if (count($body) > 0) { $matches = array(); foreach ($body as $match => $data) { $matches[$match] = array('matchNumber' => $data['match_number'], 'setNumber' => $data['set_number'], 'red' => $data['alliances']['red']['teams'], 'blue' => $data['alliances']['blue']['teams']); } unset($body); unset($out); unset($request); return $matches; } return false; }