diff options
author | Bernhard Posselt <nukeawhale@gmail.com> | 2013-03-26 18:04:02 +0100 |
---|---|---|
committer | Bernhard Posselt <nukeawhale@gmail.com> | 2013-03-26 18:04:02 +0100 |
commit | c8d3f8fb4681f6993f1c9389e507df0724f56579 (patch) | |
tree | 312b48cdbc17c23d1e7aac6513f40e0a5813fdbf /utility/feedfetcher.php | |
parent | 8e1e0f5281c1ee49fe7f6d84ba8f2b709ebf7f40 (diff) |
added casting information for data objects
Diffstat (limited to 'utility/feedfetcher.php')
-rw-r--r-- | utility/feedfetcher.php | 43 |
1 files changed, 9 insertions, 34 deletions
diff --git a/utility/feedfetcher.php b/utility/feedfetcher.php index 50f58aa97..2c37aa4d7 100644 --- a/utility/feedfetcher.php +++ b/utility/feedfetcher.php @@ -25,6 +25,9 @@ namespace OCA\News\Utility; +use \OCA\News\Db\Item; +use \OCA\News\Db\Feed; + class FeedFetcher { @@ -39,7 +42,6 @@ class FeedFetcher { $simplePie = new \SimplePie_Core(); $simplePie->set_feed_url( $url ); $simplePie->enable_cache( false ); - if (!$simplePie->init()) { throw new FetcherException('Could not initialize simple pie'); @@ -53,12 +55,15 @@ class FeedFetcher { if ($feedItems = $simplePie->get_items()) { foreach($feedItems as $feedItem) { $item = new Item(); + $item->setStatus(0); + $item->setUnread(); $item->setUrl( $feedItem->get_permalink() ); $item->setTitle( $feedItem->get_title() ); $item->setGuid( $feedItem->get_id() ); $item->setGuidHash( md5($feedItem->get_id()) ); $item->setBody( $feedItem->get_content() ); - $item->setDate( $feedItem->get_date('U') ); + $item->setPubDate( $feedItem->get_date('U') ); + $item->setLastModified(time()); $author = $feedItem->get_author(); if ($author !== null) { @@ -103,36 +108,6 @@ class FeedFetcher { } - /** - * Perform a "slim" fetch of a feed from remote. - * Differently from fetch(), it doesn't retrieve items nor a favicon - * @param string url remote url of the feed - * @returns \OCA\News\Db\Feed - */ - public function slimFetch($url) { - $simplePie = new \SimplePie_Core(); - $simplePie->set_feed_url( $url ); - $simplePie->enable_cache( false ); - $simplePie->set_stupidly_fast( true ); - - if (!$simplePie->init()) { - throw new FetcherException('Could not initialize simple pie'); - } - - // temporary try-catch to bypass SimplePie bugs - try { - $feed = new Feed($url, $title); - $feed->setUrl($url); - $feed->setUrlHash(md5($url)); - $feed->setTitle($simplePie->get_title()); - $feed->setAdded(time()); - return $feed; - - } catch(\Exception $ex){ - throw new FetcherException($ex->getMessage()); - } - } - public function checkFavicon($favicon) { if ($favicon === null || $favicon == false) @@ -145,8 +120,8 @@ class FeedFetcher { if($file->success && $filesize > 0 && $filesize < 50000) { //bigger files are not considered favicons $sniffer = new \SimplePie_Content_Type_Sniffer($file); if(substr($sniffer->get_type(), 0, 6) === 'image/') { - $imgsize = getimagesize($favicon); - if ($imgsize['0'] <= 32 && $imgsize['1'] <= 32) { //bigger images are not considered favicons + $imgsize = @getimagesize($favicon); + if ($imgsize && $imgsize['0'] <= 32 && $imgsize['1'] <= 32) { //bigger images are not considered favicons return true; } } |