diff options
author | Bernhard Posselt <dev@bernhard-posselt.com> | 2016-07-23 21:24:54 +0200 |
---|---|---|
committer | Bernhard Posselt <dev@bernhard-posselt.com> | 2016-07-23 21:24:54 +0200 |
commit | 004fcbbcc7609ca83807f2e38967ef54f469bf72 (patch) | |
tree | 49eb99b4ea92b2045793fc567f719b31ec7f9042 /lib/Fetcher/Fetcher.php | |
parent | 60abc0ed4438c9b6fda245b0dc33cb483bc2aeaf (diff) |
Move to new directory structure
Diffstat (limited to 'lib/Fetcher/Fetcher.php')
-rw-r--r-- | lib/Fetcher/Fetcher.php | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/lib/Fetcher/Fetcher.php b/lib/Fetcher/Fetcher.php new file mode 100644 index 000000000..43c9e7a3f --- /dev/null +++ b/lib/Fetcher/Fetcher.php @@ -0,0 +1,69 @@ +<?php +/** + * ownCloud - News + * + * This file is licensed under the Affero General Public License version 3 or + * later. See the COPYING file. + * + * @author Alessandro Cosentino <cosenal@gmail.com> + * @author Bernhard Posselt <dev@bernhard-posselt.com> + * @copyright Alessandro Cosentino 2012 + * @copyright Bernhard Posselt 2012, 2014 + */ + +namespace OCA\News\Fetcher; + + +class Fetcher { + + private $fetchers; + + public function __construct(){ + $this->fetchers = []; + } + + + /** + * Add an additional fetcher + * @param IFeedFetcher $fetcher the fetcher + */ + public function registerFetcher(IFeedFetcher $fetcher){ + $this->fetchers[] = $fetcher; + } + + /** + * Fetch a feed from remote + * @param string $url remote url of the feed + * @param boolean $getFavicon if the favicon should also be fetched, + * defaults to true + * @param string $lastModified a last modified value from an http header + * defaults to false. If lastModified matches the http header from the feed + * no results are fetched + * @param string $etag an etag from an http header. + * If lastModified matches the http header from the feed + * no results are fetched + * @param bool fullTextEnabled if true tells the fetcher to enhance the + * articles by fetching custom enhanced content + * @param string $basicAuthUser if given, basic auth is set for this feed + * @param string $basicAuthPassword if given, basic auth is set for this + * feed. Ignored if user is null or an empty string + * @throws FetcherException if simple pie fails + * @return array an array containing the new feed and its items, first + * element being the Feed and second element being an array of Items + */ + public function fetch($url, $getFavicon=true, $lastModified=null, + $etag=null, $fullTextEnabled=false, + $basicAuthUser=null, $basicAuthPassword=null) { + foreach($this->fetchers as $fetcher){ + if($fetcher->canHandle($url)){ + return $fetcher->fetch($url, $getFavicon, $lastModified, $etag, + $fullTextEnabled, $basicAuthUser, + $basicAuthPassword); + } + } + + return [null, []]; + } + + +} |