From ac84b27965f5a1aec859e389f099fb844e33de46 Mon Sep 17 00:00:00 2001 From: Bernhard Posselt Date: Thu, 21 Mar 2013 16:32:36 +0100 Subject: reorganize folder --- backgroundjob/backgroundjob.php | 91 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 backgroundjob/backgroundjob.php (limited to 'backgroundjob') diff --git a/backgroundjob/backgroundjob.php b/backgroundjob/backgroundjob.php new file mode 100644 index 000000000..098ff8393 --- /dev/null +++ b/backgroundjob/backgroundjob.php @@ -0,0 +1,91 @@ +. +* +*/ + +namespace OCA\News; + +/** + * This class maps a feed to an entry in the feeds table of the database. + */ +class Backgroundjob { + static public function sortFeeds( $a, $b ) { + if( $a->getId() == $b->getId() ) { + return 0; + } + elseif( $a->getId() < $b->getId() ) { + return -1; + } + else{ + return 1; + } + } + + static public function run() { + if( \OC::$CLI ) { + self::cliStep(); + } + else{ + self::webStep(); + } + } + + static private function cliStep() { + $feedmapper = new FeedMapper(); + + // Iterate over all feeds + $feeds = $feedmapper->findAll(); + foreach( $feeds as $feed ) { + self::updateFeed( $feedmapper, $feed ); + } + } + + static private function webStep() { + // Iterate over all users + $lastid = \OCP\Config::getAppValue('news', 'backgroundjob_lastid',0); + + $feedmapper = new FeedMapper(); + $feeds = $feedmapper->findAll(); + usort( $feeds, array( 'OCA\News\Backgroundjob', 'sortFeeds' )); + + $done = false; + foreach( $feeds as $feed ) { + if( $feed->getId() > $lastid ) { + // set lastid BEFORE updating feed! + \OCP\Config::setAppValue('news', 'backgroundjob_lastid',$feed->getId()); + $done = true; + self::updateFeed( $feedmapper, $feed ); + } + } + + if( !$done ) { + \OCP\Config::setAppValue('news', 'backgroundjob_lastid',0); + } + } + + static private function updateFeed( $feedmapper, $feed ) { + $newfeed = null; + $newfeed = Utils::fetch( $feed->getUrl() ); + if( $newfeed !== null ) { + $feedmapper = new FeedMapper(); + $newfeedid = $feedmapper->save($newfeed, $feed->getFolderId() ); + } + } +} -- cgit v1.2.3