summaryrefslogtreecommitdiffstats
path: root/ajax
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2012-08-12 12:27:10 +0200
committerBernhard Posselt <nukeawhale@gmail.com>2012-08-12 12:27:10 +0200
commit1029b44255c02c9a03ad2ed3812dff3da47103e0 (patch)
treef09f46a0c221f6ee8e111bd4dd8426aa268032ff /ajax
parentef8903a8c620b1bdab305189240df91470eb15a0 (diff)
parent703e892b691fd98fccbbbeada3897ae0c018ac9d (diff)
Merge branch 'newsapp' of git://gitorious.org/owncloud/apps into newsapp
Diffstat (limited to 'ajax')
-rw-r--r--ajax/exportopml.php127
-rw-r--r--ajax/feeddialog.php5
-rw-r--r--ajax/folderdialog.php5
-rw-r--r--ajax/populateroot.php21
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;
-}