From 14115e04e3f9dd6fe794810f9be403408fa81912 Mon Sep 17 00:00:00 2001 From: Alessandro Cosentino Date: Thu, 10 May 2012 15:43:56 -0400 Subject: added a rudimantal feed class (+ trying to save on DB) --- lib/feed.php | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 lib/feed.php (limited to 'lib') diff --git a/lib/feed.php b/lib/feed.php new file mode 100644 index 000000000..91380c6b1 --- /dev/null +++ b/lib/feed.php @@ -0,0 +1,79 @@ +. +* +*/ + + +/** + * This class models a feed. + */ +class OC_News_Feed extends SimplePie_Core{ + + private $url; + private $feed_id; + + public function __construct($url){ + parent::__construct(); + $this->url = $url; + $this->set_item_class('OC_News_Item'); + $this->set_feed_url( $url ); + $this->enable_cache( false ); + + //FIXME: figure out if constructor is the right place for these + $this->init(); + $this->handle_content_type(); + } + + public function saveToDB() { + $CONFIG_DBTYPE = OCP\Config::getSystemValue( "dbtype", "sqlite" ); + if( $CONFIG_DBTYPE == 'sqlite' or $CONFIG_DBTYPE == 'sqlite3' ){ + $_ut = "strftime('%s','now')"; + } elseif($CONFIG_DBTYPE == 'pgsql') { + $_ut = 'date_part(\'epoch\',now())::integer'; + } else { + $_ut = "UNIX_TIMESTAMP()"; + } + + //FIXME: Detect when user adds a known feed + $query = OCP\DB::prepare(" + INSERT INTO *PREFIX*news_feeds + (url, title, userid, added, lastmodified) + VALUES (?, ?, ?, $_ut, $_ut) + "); + + $title = $this->sp->get_title(); + + if(empty($title)) { + $l = OC_L10N::get('news'); + $title = $l->t('no title'); + } + + $params=array( + htmlspecialchars_decode($this->url), + htmlspecialchars_decode($title), + OCP\USER::getUser() + ); + $query->execute($params); + + $feed_id = OCP\DB::insertid('*PREFIX*news_feeds'); + + return $feed_id; + } +} \ No newline at end of file -- cgit v1.2.3