diff options
author | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-05-23 01:25:55 +0200 |
---|---|---|
committer | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-05-23 01:25:55 +0200 |
commit | 4eaee79d9b27d9131bd862725dbe90ba54eec254 (patch) | |
tree | 4b6de904b6167d7ed6070d24e7f41ff8c5f6c500 /service/feedservice.php | |
parent | 7af31802517eb31a05e1c5d248a8c502d9d8b943 (diff) |
implement #137 serverside
Diffstat (limited to 'service/feedservice.php')
-rw-r--r-- | service/feedservice.php | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/service/feedservice.php b/service/feedservice.php index 68555cf1b..08b2d1d2f 100644 --- a/service/feedservice.php +++ b/service/feedservice.php @@ -40,9 +40,9 @@ class FeedService extends Service { private $purifier; private $loggerParams; - public function __construct(FeedMapper $feedMapper, + public function __construct(FeedMapper $feedMapper, Fetcher $feedFetcher, - ItemMapper $itemMapper, + ItemMapper $itemMapper, ILogger $logger, IL10N $l10n, $timeFactory, @@ -87,11 +87,12 @@ class FeedService extends Service { * @param string $feedUrl the url to the feed * @param int $folderId the folder where it should be put into, 0 for root folder * @param string $userId for which user the feed should be created + * @param string $title if given, this is used for the opml feed title * @throws ServiceConflictException if the feed exists already * @throws ServiceNotFoundException if the url points to an invalid feed * @return Feed the newly created feed */ - public function create($feedUrl, $folderId, $userId){ + public function create($feedUrl, $folderId, $userId, $title=null){ // first try if the feed exists already try { list($feed, $items) = $this->feedFetcher->fetch($feedUrl); @@ -109,6 +110,11 @@ class FeedService extends Service { $feed->setFolderId($folderId); $feed->setUserId($userId); $feed->setArticlesPerUpdate(count($items)); + + if ($title) { + $feed->setTitle($title); + } + $feed = $this->feedMapper->insert($feed); // insert items in reverse order because the first one is usually the @@ -197,7 +203,7 @@ class FeedService extends Service { try { $this->itemMapper->findByGuidHash($item->getGuidHash(), $feedId, $userId); } catch(DoesNotExistException $ex){ - $item = $this->enhancer->enhance($item, + $item = $this->enhancer->enhance($item, $existingFeed->getLink()); $item->setBody($this->purifier->purify($item->getBody())); $this->itemMapper->insert($item); @@ -279,7 +285,7 @@ class FeedService extends Service { $item->setFeedId($feed->getId()); } elseif(array_key_exists($url, $feedsDict)) { $feed = $feedsDict[$url]; - $item->setFeedId($feed->getId()); + $item->setFeedId($feed->getId()); } else { $createdFeed = true; $feed = new Feed(); @@ -289,7 +295,7 @@ class FeedService extends Service { $feed->setTitle($this->l10n->t('Articles without feed')); $feed->setAdded($this->timeFactory->getTime()); $feed->setFolderId(0); - $feed->setPreventUpdate(true); + $feed->setPreventUpdate(true); $feed = $this->feedMapper->insert($feed); $item->setFeedId($feed->getId()); |