/** * Gets an array of issue uri's from an d.o project issue page(s). Will use * the pager to determine when all the issues have been scraped. * * @return array * An array of d.o issue uris. */ public function getIssueUris() { if (empty($this->issueUris)) { while ($page = $this->getPage()) { $issues = $page->filter('table.project-issue td.views-field-title a'); foreach ($issues as $issue) { $this->issueUris[] = $this->uri->getScheme() . '://' . $this->uri->getHost() . $issue->getAttribute('href'); } } } return $this->issueUris; }
/** * Parse the AWS service name from a URL * * @param Url $url HTTP URL * * @return string Returns a service name (or empty string) * @link http://docs.amazonwebservices.com/general/latest/gr/rande.html */ public static function parseServiceName(Url $url) { // The service name is the first part of the host $parts = explode('.', $url->getHost(), 2); // Special handling for S3 if (stripos($parts[0], 's3') === 0) { return 's3'; } return $parts[0]; }
/** * Generate a base string for a HMAC-SHA1 signature * based on the given a url, method, and any parameters. * * @param Url $url * @param string $method * @param array $parameters * * @return string */ protected function baseString(Url $url, $method = 'POST', array $parameters = array()) { $baseString = rawurlencode($method) . '&'; $schemeHostPath = Url::buildUrl(array('scheme' => $url->getScheme(), 'host' => $url->getHost(), 'path' => $url->getPath())); $baseString .= rawurlencode($schemeHostPath) . '&'; $data = array(); parse_str($url->getQuery(), $query); foreach (array_merge($query, $parameters) as $key => $value) { $data[rawurlencode($key)] = rawurlencode($value); } ksort($data); array_walk($data, function (&$value, $key) { $value = $key . '=' . $value; }); $baseString .= rawurlencode(implode('&', $data)); return $baseString; }
/** * Generate a base string for a HMAC-SHA1 signature * based on the given a url, method, and any parameters. * * @param Url $url * @param string $method * @param array $parameters * * @return string */ protected function baseString(Url $url, $method = 'POST', array $parameters = array()) { $baseString = rawurlencode($method) . '&'; $schemeHostPath = Url::buildUrl(array('scheme' => $url->getScheme(), 'host' => $url->getHost(), 'path' => $url->getPath())); $baseString .= rawurlencode($schemeHostPath) . '&'; $data = array(); parse_str($url->getQuery(), $query); $data = array_merge($query, $parameters); // normalize data key/values array_walk_recursive($data, function (&$key, &$value) { $key = rawurlencode(rawurldecode($key)); $value = rawurlencode(rawurldecode($value)); }); ksort($data); $baseString .= $this->queryStringFromData($data); return $baseString; }
/** * Replace the host in a URL with the configured domain. * * @param Url $url * The URL to modify. */ protected function injectCname($url) { if (strpos($url->getHost(), $this->config->getDomain()) === FALSE) { $url->setHost($this->config->getDomain()); } }