From 48513e8e42c72409109f21804964b7c54527f6c0 Mon Sep 17 00:00:00 2001 From: Alessandro Cosentino Date: Sat, 11 Aug 2012 11:39:03 -0400 Subject: changes namespace to OCA\News --- lib/backgroundjob.php | 8 ++++---- lib/collection.php | 6 ++++-- lib/feed.php | 4 +++- lib/feedmapper.php | 46 ++++++++++++++++++++++++---------------------- lib/folder.php | 8 +++++--- lib/foldermapper.php | 38 ++++++++++++++++++++------------------ lib/item.php | 4 +++- lib/itemmapper.php | 28 +++++++++++++++------------- lib/utils.php | 20 +++++++++++--------- 9 files changed, 89 insertions(+), 73 deletions(-) (limited to 'lib') diff --git a/lib/backgroundjob.php b/lib/backgroundjob.php index 1c12cbc4f..c9f37d3d4 100644 --- a/lib/backgroundjob.php +++ b/lib/backgroundjob.php @@ -48,7 +48,7 @@ class Backgroundjob { } static private function cliStep(){ - $feedmapper = new \OC_News_FeedMapper(); + $feedmapper = new FeedMapper(); // Iterate over all feeds $feeds = $feedmapper->findAll(); @@ -61,7 +61,7 @@ class Backgroundjob { // Iterate over all users $lastid = \OCP\Config::getAppValue('news', 'backgroundjob_lastid',0); - $feedmapper = new \OC_News_FeedMapper(); + $feedmapper = new FeedMapper(); $feeds = $feedmapper->findAll(); usort( $feeds, array( 'OCA\News\Backgroundjob', 'sortFeeds' )); @@ -82,9 +82,9 @@ class Backgroundjob { static private function updateFeed( $feedmapper, $feed ){ $newfeed = null; - $newfeed = \OC_News_Utils::fetch( $feed['url'] ); + $newfeed = Utils::fetch( $feed['url'] ); if( $newfeed !== null ){ - $feedmapper = new \OC_News_FeedMapper(); + $feedmapper = new FeedMapper(); $newfeedid = $feedmapper->save($newfeed, $feed['folderid'] ); } } diff --git a/lib/collection.php b/lib/collection.php index 2ebbb646f..4f7f06d7a 100644 --- a/lib/collection.php +++ b/lib/collection.php @@ -10,10 +10,12 @@ * */ +namespace OCA\News; + /** * This class models a collection, which is either a feed or a folder. */ -class OC_News_Collection { +class Collection { private $id; @@ -29,4 +31,4 @@ class OC_News_Collection { $this->id = $id; } -} \ No newline at end of file +} diff --git a/lib/feed.php b/lib/feed.php index 496faa224..ecff8f67a 100644 --- a/lib/feed.php +++ b/lib/feed.php @@ -10,10 +10,12 @@ * */ +namespace OCA\News; + /** * This class models a feed. */ -class OC_News_Feed extends OC_News_Collection { +class Feed extends Collection { private $url; private $spfeed; //encapsulate a SimplePie_Core object diff --git a/lib/feedmapper.php b/lib/feedmapper.php index a8292cd39..3d11ff0e6 100644 --- a/lib/feedmapper.php +++ b/lib/feedmapper.php @@ -10,10 +10,12 @@ * */ +namespace OCA\News; + /** * This class maps a feed to an entry in the feeds table of the database. */ -class OC_News_FeedMapper { +class FeedMapper { const tableName = '*PREFIX*news_feeds'; private $userid; @@ -22,7 +24,7 @@ class OC_News_FeedMapper { if ($userid !== null) { $this->userid = $userid; } - $this->userid = OCP\USER::getUser(); + $this->userid = \OCP\USER::getUser(); } /** @@ -46,7 +48,7 @@ class OC_News_FeedMapper { $params[] = $this->userid; } - $stmt = OCP\DB::prepare( $query ); + $stmt = \OCP\DB::prepare( $query ); $result = $stmt->execute( $params ); $feeds = array(); while ($row = $result->fetchRow()) { @@ -66,14 +68,14 @@ class OC_News_FeedMapper { * @returns */ public function findById($id){ - $stmt = OCP\DB::prepare('SELECT * FROM ' . self::tableName . ' WHERE id = ?'); + $stmt = \OCP\DB::prepare('SELECT * FROM ' . self::tableName . ' WHERE id = ?'); $result = $stmt->execute(array($id)); if(!$row = $result->fetchRow()) return null; $url = $row['url']; $title = htmlspecialchars_decode($row['title']); - $feed = new OC_News_Feed($url, $title, null, $id); + $feed = new Feed($url, $title, null, $id); return $feed; } @@ -83,14 +85,14 @@ class OC_News_FeedMapper { * @returns an instance of OC_News_Feed */ public function findByFolderId($folderid){ - $stmt = OCP\DB::prepare('SELECT * FROM ' . self::tableName . ' WHERE folder_id = ?'); + $stmt = \OCP\DB::prepare('SELECT * FROM ' . self::tableName . ' WHERE folder_id = ?'); $result = $stmt->execute(array($folderid)); $feeds = array(); while ($row = $result->fetchRow()) { $url = $row['url']; $title = htmlspecialchars_decode($row['title']); $id = $row['id']; - $feed = new OC_News_Feed($url, $title, null, $id); + $feed = new Feed($url, $title, null, $id); $favicon = $row['favicon_link']; $feed->setFavicon($favicon); $feeds[] = $feed; @@ -105,15 +107,15 @@ class OC_News_FeedMapper { * @returns an instance of OC_News_Feed */ public function findWithItems($id){ - $stmt = OCP\DB::prepare('SELECT * FROM ' . self::tableName . ' WHERE id = ?'); + $stmt = \OCP\DB::prepare('SELECT * FROM ' . self::tableName . ' WHERE id = ?'); $result = $stmt->execute(array($id)); $row = $result->fetchRow(); $url = $row['url']; $title = htmlspecialchars_decode($row['title']); - $feed = new OC_News_Feed($url, $title, null,$id); + $feed = new Feed($url, $title, null,$id); $favicon = $row['favicon_link']; $feed->setFavicon($favicon); - $itemMapper = new OC_News_ItemMapper(); + $itemMapper = new ItemMapper(); $items = $itemMapper->findAll($id); $feed->setItems($items); @@ -127,7 +129,7 @@ class OC_News_FeedMapper { * null - if there is no such feed */ public function findIdFromUrl($url){ - $stmt = OCP\DB::prepare('SELECT * FROM ' . self::tableName . ' WHERE url = ?'); + $stmt = \OCP\DB::prepare('SELECT * FROM ' . self::tableName . ' WHERE url = ?'); $result = $stmt->execute(array($url)); $row = $result->fetchRow(); $id = null; @@ -139,7 +141,7 @@ class OC_News_FeedMapper { public function mostRecent(){ //FIXME: does something like SELECT TOP 1 * exists in pear/mdb2 ?? - $stmt = OCP\DB::prepare('SELECT * FROM ' . self::tableName . ' ORDER BY lastmodified'); + $stmt = \OCP\DB::prepare('SELECT * FROM ' . self::tableName . ' ORDER BY lastmodified'); $result = $stmt->execute(); $row = $result->fetchRow(); $id = null; @@ -155,8 +157,8 @@ class OC_News_FeedMapper { * @returns The id of the feed in the database table. */ //TODO: handle error case - public function save(OC_News_Feed $feed, $folderid){ - $CONFIG_DBTYPE = OCP\Config::getSystemValue( "dbtype", "sqlite" ); + public function save(Feed $feed, $folderid){ + $CONFIG_DBTYPE = \OCP\Config::getSystemValue( "dbtype", "sqlite" ); if( $CONFIG_DBTYPE == 'sqlite' or $CONFIG_DBTYPE == 'sqlite3' ){ $_ut = "strftime('%s','now')"; } elseif($CONFIG_DBTYPE == 'pgsql') { @@ -169,14 +171,14 @@ class OC_News_FeedMapper { $url = htmlspecialchars_decode($feed->getUrl()); if(empty($title)) { - $l = OC_L10N::get('news'); + $l = \OC_L10N::get('news'); $title = $l->t('no title'); } //FIXME: Detect when feed contains already a database id $feedid = $this->findIdFromUrl($url); if ($feedid == null){ - $query = OCP\DB::prepare(" + $query = \OCP\DB::prepare(" INSERT INTO " . self::tableName . "(url, title, favicon_link, folder_id, user_id, added, lastmodified) VALUES (?, ?, ?, ?, ?, $_ut, $_ut) @@ -191,11 +193,11 @@ class OC_News_FeedMapper { ); $query->execute($params); - $feedid = OCP\DB::insertid(self::tableName); + $feedid = \OCP\DB::insertid(self::tableName); } $feed->setId($feedid); - $itemMapper = new OC_News_ItemMapper(); + $itemMapper = new ItemMapper(); $items = $feed->getItems(); foreach($items as $item){ @@ -209,17 +211,17 @@ class OC_News_FeedMapper { if ($id == null) { return false; } - $stmt = OCP\DB::prepare('DELETE FROM ' . self::tableName .' WHERE id = ?'); + $stmt = \OCP\DB::prepare('DELETE FROM ' . self::tableName .' WHERE id = ?'); $result = $stmt->execute(array($id)); - $itemMapper = new OC_News_ItemMapper(); + $itemMapper = new ItemMapper(); //TODO: handle the value that the execute returns $itemMapper->deleteAll($id); return true; } - public function delete(OC_News_Feed $feed){ + public function delete(Feed $feed){ $id = $feed->getId(); return deleteById($id); } @@ -229,7 +231,7 @@ class OC_News_FeedMapper { return false; } - $stmt = OCP\DB::prepare('SELECT id FROM ' . self::tableName . ' WHERE folder_id = ?'); + $stmt = \OCP\DB::prepare('SELECT id FROM ' . self::tableName . ' WHERE folder_id = ?'); $result = $stmt->execute(array($folderid)); while ($row = $result->fetchRow()) { diff --git a/lib/folder.php b/lib/folder.php index 14951d57c..41577d844 100644 --- a/lib/folder.php +++ b/lib/folder.php @@ -10,16 +10,18 @@ * */ +namespace OCA\News; + /** * This class models a folder that contains feeds. */ -class OC_News_Folder extends OC_News_Collection { +class Folder extends Collection { private $name; private $children; private $parent; - public function __construct($name, $id = null, OC_News_Collection $parent = null){ + public function __construct($name, $id = null, Collection $parent = null){ $this->name = $name; if ($id !== null){ parent::__construct($id); @@ -45,7 +47,7 @@ class OC_News_Folder extends OC_News_Collection { return $this->parent->getId(); } - public function addChild(OC_News_Collection $child){ + public function addChild(Collection $child){ $this->children[] = $child; } diff --git a/lib/foldermapper.php b/lib/foldermapper.php index 91c005bc9..cf22b55b7 100644 --- a/lib/foldermapper.php +++ b/lib/foldermapper.php @@ -10,10 +10,12 @@ * */ +namespace OCA\News; + /** * This class maps a feed to an entry in the feeds table of the database. */ -class OC_News_FolderMapper { +class FolderMapper { const tableName = '*PREFIX*news_folders'; @@ -23,7 +25,7 @@ class OC_News_FolderMapper { if ($userid !== null) { $this->userid = $userid; } - $this->userid = OCP\USER::getUser(); + $this->userid = \OCP\USER::getUser(); } /** @@ -33,20 +35,20 @@ class OC_News_FolderMapper { */ public function populate($folder){ // first add child feeds - $feedmapper = new OC_News_FeedMapper(); + $feedmapper = new FeedMapper(); $feeds = $feedmapper->findByFolderId($folder->getId()); foreach ($feeds as $feed){ $folder->addChild($feed); } // and second child folders - $stmt = OCP\DB::prepare('SELECT * + $stmt = \OCP\DB::prepare('SELECT * FROM ' . self::tableName . ' WHERE user_id = ? AND parent_id = ?'); $result = $stmt->execute(array($this->userid, $folder->getId())); while( $row = $result->fetchRow()){ - $unpopfolder = new OC_News_Folder($row['name'], $row['id']); + $unpopfolder = new Folder($row['name'], $row['id']); $popfolder = self::populate($unpopfolder); $folder->addChild($popfolder); } @@ -60,13 +62,13 @@ class OC_News_FolderMapper { * @returns an instance of OC_News_Folder */ public function find($id){ - $stmt = OCP\DB::prepare('SELECT * + $stmt = \OCP\DB::prepare('SELECT * FROM ' . self::tableName . ' WHERE user_id = ? AND id = ?'); $result = $stmt->execute(array($this->userid, $id)); $row = $result->fetchRow(); - $folder = new OC_News_Folder($row['name'], $row['id']); + $folder = new Folder($row['name'], $row['id']); return $folder; } @@ -77,14 +79,14 @@ class OC_News_FolderMapper { * @returns */ public function findWithItems($id){ - $stmt = OCP\DB::prepare('SELECT * FROM ' . self::tableName . ' WHERE id = ?'); + $stmt = \OCP\DB::prepare('SELECT * FROM ' . self::tableName . ' WHERE id = ?'); $result = $stmt->execute(array($id)); $row = $result->fetchRow(); $url = $row['url']; $title = $row['title']; - $feed = new OC_News_Feed($url, $title, null,$id); + $feed = new Feed($url, $title, null,$id); - $itemMapper = new OC_News_ItemMapper($feed); + $itemMapper = new ItemMapper($feed); $items = $itemMapper->findAll(); $feed->setItems($items); @@ -96,8 +98,8 @@ class OC_News_FolderMapper { * @param folder the folder to be saved * @returns The id of the folder in the database table. */ - public function save(OC_News_Folder $folder){ - $query = OCP\DB::prepare(' + public function save(Folder $folder){ + $query = \OCP\DB::prepare(' INSERT INTO ' . self::tableName . '(name, parent_id, user_id) VALUES (?, ?, ?) @@ -106,7 +108,7 @@ class OC_News_FolderMapper { $name = $folder->getName(); if(empty($name)) { - $l = OC_L10N::get('news'); + $l = \OC_L10N::get('news'); $name = $l->t('no name'); } @@ -118,13 +120,13 @@ class OC_News_FolderMapper { $this->userid ); $query->execute($params); - $folderid = OCP\DB::insertid(self::tableName); + $folderid = \OCP\DB::insertid(self::tableName); $folder->setId($folderid); return $folderid; } - public function delete(OC_News_Folder $folder){ + public function delete(Folder $folder){ $folderid = $folder->getId(); return deleteById(folderid); } @@ -135,17 +137,17 @@ class OC_News_FolderMapper { } // delete child folders - $stmt = OCP\DB::prepare('SELECT id FROM ' . self::tableName .' WHERE parent_id = ?'); + $stmt = \OCP\DB::prepare('SELECT id FROM ' . self::tableName .' WHERE parent_id = ?'); $result = $stmt->execute(array($folderid)); while ($row = $result->fetchRow()) { if (!self::deleteById($row['id'])) return false; } - $stmt = OCP\DB::prepare('DELETE FROM ' . self::tableName .' WHERE id = ?'); + $stmt = \OCP\DB::prepare('DELETE FROM ' . self::tableName .' WHERE id = ?'); $result = $stmt->execute(array($folderid)); - $feedMapper = new OC_News_FeedMapper(); + $feedMapper = new FeedMapper(); //TODO: handle the value that the execute returns if(!$feedMapper->deleteAll($folderid)) return false; diff --git a/lib/item.php b/lib/item.php index 64ae368c3..ffbf71760 100644 --- a/lib/item.php +++ b/lib/item.php @@ -10,6 +10,8 @@ * */ +namespace OCA\News; + class StatusFlag{ const Unread = 0x02; const Important = 0x04; @@ -22,7 +24,7 @@ class StatusFlag{ * * It encapsulate a SimplePie_Item object and adds a status flag to it */ -class OC_News_Item { +class Item { private $url; private $title; diff --git a/lib/itemmapper.php b/lib/itemmapper.php index 27f56eb3f..9ecfa8fc6 100644 --- a/lib/itemmapper.php +++ b/lib/itemmapper.php @@ -10,11 +10,13 @@ * */ +namespace OCA\News; + /** * This class maps an item to a row of the items table in the database. * It follows the Data Mapper pattern (see http://martinfowler.com/eaaCatalog/dataMapper.html). */ -class OC_News_ItemMapper { +class ItemMapper { const tableName = '*PREFIX*news_items'; @@ -30,7 +32,7 @@ class OC_News_ItemMapper { $status = $row['status']; $body = $row['body']; $id = $row['id']; - $item = new OC_News_Item($url, $title, $guid, $body, $id); + $item = new Item($url, $title, $guid, $body, $id); $item->setStatus($status); return $item; @@ -41,7 +43,7 @@ class OC_News_ItemMapper { * @param feedid The id of the feed in the database table. */ public function findAll($feedid){ - $stmt = OCP\DB::prepare('SELECT * FROM ' . self::tableName . ' WHERE feed_id = ?'); + $stmt = \OCP\DB::prepare('SELECT * FROM ' . self::tableName . ' WHERE feed_id = ?'); $result = $stmt->execute(array($feedid)); $items = array(); @@ -54,7 +56,7 @@ class OC_News_ItemMapper { } public function findIdFromGuid($guid, $feedid){ - $stmt = OCP\DB::prepare(' + $stmt = \OCP\DB::prepare(' SELECT * FROM ' . self::tableName . ' WHERE guid = ? AND feed_id = ? @@ -72,12 +74,12 @@ class OC_News_ItemMapper { * @brief Update the item after its status has changed * @returns The item whose status has changed. */ - public function update(OC_News_Item $item){ + public function update(Item $item){ $itemid = $item->getId(); $status = $item->getStatus(); - $stmt = OCP\DB::prepare(' + $stmt = \OCP\DB::prepare(' UPDATE ' . self::tableName . ' SET status = ? WHERE id = ? @@ -96,7 +98,7 @@ class OC_News_ItemMapper { * @brief Save the feed and all its items into the database * @returns The id of the feed in the database table. */ - public function save(OC_News_Item $item, $feedid){ + public function save(Item $item, $feedid){ $guid = $item->getGuid(); $status = $item->getStatus(); @@ -106,19 +108,19 @@ class OC_News_ItemMapper { $title = $item->getTitle(); $body = $item->getBody(); - $stmt = OCP\DB::prepare(' + $stmt = \OCP\DB::prepare(' INSERT INTO ' . self::tableName . '(url, title, body, guid, feed_id, status) VALUES (?, ?, ?, ?, ?, ?) '); if(empty($title)) { - $l = OC_L10N::get('news'); + $l = \OC_L10N::get('news'); $title = $l->t('no title'); } if(empty($body)) { - $l = OC_L10N::get('news'); + $l = \OC_L10N::get('news'); $body = $l->t('no body'); } @@ -133,7 +135,7 @@ class OC_News_ItemMapper { $stmt->execute($params); - $itemid = OCP\DB::insertid(self::tableName); + $itemid = \OCP\DB::insertid(self::tableName); } else { $this->update($item); @@ -147,7 +149,7 @@ class OC_News_ItemMapper { * @param id The id of the feed in the database table. */ public function find($id){ - $stmt = OCP\DB::prepare('SELECT * FROM ' . self::tableName . ' WHERE id = ?'); + $stmt = \OCP\DB::prepare('SELECT * FROM ' . self::tableName . ' WHERE id = ?'); $result = $stmt->execute(array($id)); $row = $result->fetchRow(); @@ -167,7 +169,7 @@ class OC_News_ItemMapper { if ($feedid == null) { return false; } - $stmt = OCP\DB::prepare('DELETE FROM ' . self::tableName .' WHERE feed_id = ?'); + $stmt = \OCP\DB::prepare('DELETE FROM ' . self::tableName .' WHERE feed_id = ?'); $result = $stmt->execute(array($feedid)); diff --git a/lib/utils.php b/lib/utils.php index f98608cd4..6418620b7 100644 --- a/lib/utils.php +++ b/lib/utils.php @@ -14,7 +14,9 @@ //TODO: is this file a suitable place for the following require? require_once('news/3rdparty/SimplePie/autoloader.php'); -class OC_News_Utils { +namespace OCA\News; + +class Utils { /** * @brief Fetch a feed from remote @@ -42,20 +44,20 @@ class OC_News_Utils { $itemTitle = $spitem->get_title(); $itemGUID = $spitem->get_id(); $itemBody = $spitem->get_content(); - $items[] = new OC_News_Item($itemUrl, $itemTitle, $itemGUID, $itemBody); + $items[] = new Item($itemUrl, $itemTitle, $itemGUID, $itemBody); } } - $feed = new OC_News_Feed($url, $title, $items); + $feed = new Feed($url, $title, $items); $favicon = $spfeed->get_image_url(); if ($favicon !== null) { // use favicon from feed - if(OC_News_Utils::checkFavicon($favicon)) + if(checkFavicon($favicon)) $feed->setFavicon($favicon); } else { // try really hard to find a favicon - if( null !== ($webFavicon = OC_News_Utils::discoverFavicon($url)) ) + if( null !== ($webFavicon = discoverFavicon($url)) ) $feed->setFavicon($webFavicon); } return $feed; @@ -83,7 +85,7 @@ class OC_News_Utils { //try webroot favicon $favicon = SimplePie_Misc::absolutize_url('/favicon.ico', $url); - if(OC_News_Utils::checkFavicon($favicon)) + if(checkFavicon($favicon)) return $favicon; //try to extract favicon from web page @@ -103,21 +105,21 @@ class OC_News_Utils { $favicon = htmlspecialchars_decode ( $match[2] ); // test for an url if (parse_url($favicon,PHP_URL_SCHEME)) { - if(OC_News_Utils::checkFavicon($favicon)) + if(checkFavicon($favicon)) return $favicon; } // test for an absolute path elseif ( 0===strpos(parse_url($favicon,PHP_URL_PATH),'/') ) { $url_token = parse_url($meta['final']); sprintf( '%s://%s/%s', $url_token['scheme'], $url_token['host'], $favicon ); - if(OC_News_Utils::checkFavicon($favicon)) + if(checkFavicon($favicon)) return $favicon; } // so it appears to be a relative path else { $url_token = parse_url($meta['final']); sprintf( '%s://%s%s%s', $url_token['scheme'], $url_token['host'], dirname($url_token['path']), $favicon ); - if(OC_News_Utils::checkFavicon($favicon)) + if(checkFavicon($favicon)) return $favicon; } } -- cgit v1.2.3