diff options
author | Bernhard Posselt <nukeawhale@gmail.com> | 2012-08-12 12:27:10 +0200 |
---|---|---|
committer | Bernhard Posselt <nukeawhale@gmail.com> | 2012-08-12 12:27:10 +0200 |
commit | 1029b44255c02c9a03ad2ed3812dff3da47103e0 (patch) | |
tree | f09f46a0c221f6ee8e111bd4dd8426aa268032ff /ajax | |
parent | ef8903a8c620b1bdab305189240df91470eb15a0 (diff) | |
parent | 703e892b691fd98fccbbbeada3897ae0c018ac9d (diff) |
Merge branch 'newsapp' of git://gitorious.org/owncloud/apps into newsapp
Diffstat (limited to 'ajax')
-rw-r--r-- | ajax/exportopml.php | 127 | ||||
-rw-r--r-- | ajax/feeddialog.php | 5 | ||||
-rw-r--r-- | ajax/folderdialog.php | 5 | ||||
-rw-r--r-- | ajax/populateroot.php | 21 |
4 files changed, 133 insertions, 25 deletions
diff --git a/ajax/exportopml.php b/ajax/exportopml.php new file mode 100644 index 000000000..7911a4db9 --- /dev/null +++ b/ajax/exportopml.php @@ -0,0 +1,127 @@ +<?php +/** +* ownCloud - News app +* +* @author Alessandro Cosentino +* Copyright (c) 2012 - Alessandro Cosentino <cosenal@gmail.com> +* +* This file is licensed under the Affero General Public License version 3 or later. +* See the COPYING-README file +* +*/ + +// Check if we are a user +OCP\JSON::checkLoggedIn(); +OCP\JSON::checkAppEnabled('news'); +OCP\JSON::callCheck(); + +$l = OC_L10N::get('news'); + +function bailOut($msg) { + OCP\JSON::error(array('data' => array('message' => $msg))); + OCP\Util::writeLog('news','ajax/importopml.php: '.$msg, OCP\Util::ERROR); + exit(); +} + +if(!isset($_POST['path'])) { + bailOut($l->t('No file path was submitted.')); +} + +require_once('news/opmlparser.php'); + +$raw = file_get_contents($_POST['path']); + +try { + $parsed = OPMLParser::parse($raw); +} catch (Exception $e) { + bailOut($e->getMessage()); +} + +if ($parsed == null) { + bailOut($l->t('An error occurred while parsing the file.')); +} + + +$data = $parsed->getData(); + +function createFeed($feedurl, $folderid) { + $feedmapper = new OCA\News\FeedMapper(); + $feedid = $feedmapper->findIdFromUrl($feedurl); + + $l = OC_L10N::get('news'); + + if ($feedid === null) { + $feed = OCA\News\Utils::fetch($feedurl); + + if ($feed !== null) { + $feedid = $feedmapper->save($feed, $folderid); + } + } else { + OCP\Util::writeLog('news','ajax/createfeed.php: Error adding feed: '. $feedurl, OCP\Util::ERROR); + return false; + } + + if($feed === null || !$feedid) { + OCP\Util::writeLog('news','ajax/createfeed.php: Error adding feed: '. $feedurl, OCP\Util::ERROR); + return false; + } + + return true; +} + +$countadded = 0; +foreach($data as $collection) { + if ($collection instanceOf Feed) { + $feedurl = $collection->getUrl(); + $folderid = 0; + if (createFeed($feedurl, $folderid)) { + $countadded++; + } + } +} + + +// // $ch is the handler for the curl connection +// function addFeed($feedurl, $folderid, $ch) { +// +// $data = array('feedurl' => $feedurl, 'folderid' => $folderid); +// curl_setopt($ch, CURLOPT_POSTFIELDS, $data); +// $result = curl_exec($ch); +// $status = curl_getinfo($ch); +// +// if($result === false) { +// bailOut(curl_error($ch)); +// } else { +// bailOut($status['http_code'] . $status['url']); +// } +// } + +// $url = OCP\Util::linkToAbsolute('news', 'ajax/createfeed.php'); +// $ch = curl_init($url); +// if ($ch != false) { +// curl_setopt($ch, CURLOPT_POST, TRUE); +// curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); +// curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); +// curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); +// curl_setopt($ch, CURLOPT_USERPWD, 'acosenti:nopass'); +// +// +// foreach($data as $collection) { +// if ($collection instanceOf OC_News_Feed) { +// $feedurl = $collection->getUrl(); +// $folderid = 0; +// addFeed($feedurl, $folderid, $ch); +// } +// } +// +// addFeed(null, null, $ch); +// $result = curl_exec($ch); +// +// curl_close($ch); +// } else { +// bailOut($l->t('An error occurred while adding the feeds.')); +// } + +OCP\JSON::success(array('data' => array('title'=>$parsed->getTitle(), 'count'=>$parsed->getCount(), + 'countsuccess'=>$countadded))); + diff --git a/ajax/feeddialog.php b/ajax/feeddialog.php index 9130eddfe..0a285260a 100644 --- a/ajax/feeddialog.php +++ b/ajax/feeddialog.php @@ -1,7 +1,8 @@ <?php -include("populateroot.php"); +$foldermapper = new OCA\News\FolderMapper(OCP\USER::getUser()); +$folderforest = $foldermapper->childrenOf(0); //retrieve all the folders $output = new OCP\Template("news", "part.feeddialog"); -$output->assign('allfeeds', $allfeeds); +$output->assign('folderforest', $folderforest); $output->printpage();
\ No newline at end of file diff --git a/ajax/folderdialog.php b/ajax/folderdialog.php index 95d96d09d..47024c965 100644 --- a/ajax/folderdialog.php +++ b/ajax/folderdialog.php @@ -1,7 +1,8 @@ <?php -include("populateroot.php"); +$foldermapper = new OCA\News\FolderMapper(OCP\USER::getUser()); +$folderforest = $foldermapper->childrenOf(0); //retrieve all the folders $output = new OCP\Template("news", "part.folderdialog"); -$output->assign('allfeeds', $allfeeds); +$output->assign('folderforest', $folderforest); $output->printpage();
\ No newline at end of file diff --git a/ajax/populateroot.php b/ajax/populateroot.php deleted file mode 100644 index 3d1398e47..000000000 --- a/ajax/populateroot.php +++ /dev/null @@ -1,21 +0,0 @@ -<?php - -OCP\JSON::checkLoggedIn(); -OCP\JSON::checkAppEnabled('news'); - -$foldermapper = new OCA\News\FolderMapper(OCP\USER::getUser()); -$l = new OC_l10n('news'); - -$folder = new OCA\News\Folder($l->t('Everything'), 0); - -$allfeeds = $foldermapper->populate($folder); - -if ($allfeeds) { - $feedid = isset( $_GET['feedid'] ) ? $_GET['feedid'] : null; - if ($feedid == null) { - - } -} -else { - $feedid = 0; -} |