summaryrefslogtreecommitdiffstats
path: root/utility
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-03-26 18:04:02 +0100
committerBernhard Posselt <nukeawhale@gmail.com>2013-03-26 18:04:02 +0100
commitc8d3f8fb4681f6993f1c9389e507df0724f56579 (patch)
tree312b48cdbc17c23d1e7aac6513f40e0a5813fdbf /utility
parent8e1e0f5281c1ee49fe7f6d84ba8f2b709ebf7f40 (diff)
added casting information for data objects
Diffstat (limited to 'utility')
-rw-r--r--utility/feedfetcher.php43
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;
}
}