diff options
author | Sean Molenaar <sean@seanmolenaar.eu> | 2019-03-17 20:17:40 +0100 |
---|---|---|
committer | Sean Molenaar <SMillerDev@users.noreply.github.com> | 2019-03-18 10:39:32 +0100 |
commit | 9b915e24aff1c1805f1951ea78c09becc2a36271 (patch) | |
tree | 7dc18c927c4fc1b6b1653bb6833f2bf717c6d103 /lib/Config | |
parent | 6ed63bdedd859f6eb4e5ea4a992867a295a200fd (diff) |
Use a copy of the FeedIO client that doesn't specify a useragent
Diffstat (limited to 'lib/Config')
-rw-r--r-- | lib/Config/FetcherConfig.php | 3 | ||||
-rw-r--r-- | lib/Config/LegacyGuzzleClient.php | 65 | ||||
-rw-r--r-- | lib/Config/LegacyGuzzleResponse.php | 86 |
3 files changed, 2 insertions, 152 deletions
diff --git a/lib/Config/FetcherConfig.php b/lib/Config/FetcherConfig.php index 3110b0018..7631485f5 100644 --- a/lib/Config/FetcherConfig.php +++ b/lib/Config/FetcherConfig.php @@ -15,7 +15,8 @@ namespace OCA\News\Config; use FeedIo\Adapter\ClientInterface; use \GuzzleHttp\Client; -use \FeedIo\Adapter\Guzzle\Client as FeedIoClient; +use OCA\News\Fetcher\Client\FeedIoClient; +use OCA\News\Fetcher\Client\LegacyGuzzleClient; use OCP\IConfig; /** diff --git a/lib/Config/LegacyGuzzleClient.php b/lib/Config/LegacyGuzzleClient.php deleted file mode 100644 index bc1364c30..000000000 --- a/lib/Config/LegacyGuzzleClient.php +++ /dev/null @@ -1,65 +0,0 @@ -<?php -/** - * Nextcloud - News - * - * This file is licensed under the Affero General Public License version 3 or - * later. See the COPYING file. - * - * @author Sean Molenaar <smillernl@me.com> - * @copyright 2018 Sean Molenaar - */ - -namespace OCA\News\Config; - -use FeedIo\Adapter\ClientInterface as FeedIoClientInterface; -use FeedIo\Adapter\NotFoundException; -use FeedIo\Adapter\ServerErrorException; -use Guzzle\Service\ClientInterface; -use GuzzleHttp\Exception\BadResponseException; - -/** - * Guzzle dependent HTTP client - */ -class LegacyGuzzleClient implements FeedIoClientInterface -{ - /** - * @var ClientInterface - */ - protected $guzzleClient; - - /** - * @param ClientInterface $guzzleClient - */ - public function __construct(ClientInterface $guzzleClient) - { - $this->guzzleClient = $guzzleClient; - } - - /** - * @param string $url - * @param \DateTime $modifiedSince - * @throws \FeedIo\Adapter\NotFoundException - * @throws \FeedIo\Adapter\ServerErrorException - * @return \FeedIo\Adapter\ResponseInterface - */ - public function getResponse($url, \DateTime $modifiedSince) - { - try { - $options = [ - 'headers' => [ - 'User-Agent' => 'NextCloud-News/1.0', - 'If-Modified-Since' => $modifiedSince->format(\DateTime::RFC2822) - ] - ]; - - return new LegacyGuzzleResponse($this->guzzleClient->get($url, $options)); - } catch (BadResponseException $e) { - switch ((int) $e->getResponse()->getStatusCode()) { - case 404: - throw new NotFoundException($e->getMessage()); - default: - throw new ServerErrorException($e->getMessage()); - } - } - } -} diff --git a/lib/Config/LegacyGuzzleResponse.php b/lib/Config/LegacyGuzzleResponse.php deleted file mode 100644 index 9358eba15..000000000 --- a/lib/Config/LegacyGuzzleResponse.php +++ /dev/null @@ -1,86 +0,0 @@ -<?php -/** - * Nextcloud - News - * - * This file is licensed under the Affero General Public License version 3 or - * later. See the COPYING file. - * - * @author Sean Molenaar <smillernl@me.com> - * @copyright 2018 Sean Molenaar - */ - -namespace OCA\News\Config; - -use FeedIo\Adapter\ResponseInterface; -use GuzzleHttp\Message\ResponseInterface as GuzzleResponseInterface; - -/** - * Guzzle dependent HTTP Response - */ -class LegacyGuzzleResponse implements ResponseInterface -{ - const HTTP_LAST_MODIFIED = 'Last-Modified'; - - /** - * @var \GuzzleHttp\Message\ResponseInterface - */ - protected $response; - - /** - * @param \GuzzleHttp\Message\ResponseInterface - */ - public function __construct(GuzzleResponseInterface $psrResponse) - { - $this->response = $psrResponse; - } - - /** - * @return boolean - */ - public function isModified() - { - return $this->response->getStatusCode() !== 304 && $this->response->getBody()->getSize() > 0; - } - - /** - * @return \Psr\Http\Message\StreamInterface - */ - public function getBody() - { - return $this->response->getBody(); - } - - /** - * @return \DateTime|null - */ - public function getLastModified() - { - if ($this->response->hasHeader(static::HTTP_LAST_MODIFIED)) { - $lastModified = \DateTime::createFromFormat( - \DateTime::RFC2822, - $this->getHeader(static::HTTP_LAST_MODIFIED) - ); - - return false === $lastModified ? null : $lastModified; - } - - return; - } - - /** - * @return array - */ - public function getHeaders() - { - return $this->response->getHeaders(); - } - - /** - * @param string $name - * @return string[] - */ - public function getHeader($name) - { - return current($this->response->getHeader($name)); - } -} |