aboutsummaryrefslogtreecommitdiff
path: root/app/controllers/feedController.php
diff options
context:
space:
mode:
authorGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2012-10-21 18:47:57 +0200
committerGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2012-10-21 18:47:57 +0200
commitfb57be5a5af3a2fb46b2dbf2b503ffe78eb5cf49 (patch)
tree9440fc7846d8a56a7005b9ef029669c96ad959aa /app/controllers/feedController.php
First commit
Diffstat (limited to 'app/controllers/feedController.php')
-rwxr-xr-xapp/controllers/feedController.php89
1 files changed, 89 insertions, 0 deletions
diff --git a/app/controllers/feedController.php b/app/controllers/feedController.php
new file mode 100755
index 000000000..3b4a90b64
--- /dev/null
+++ b/app/controllers/feedController.php
@@ -0,0 +1,89 @@
+<?php
+
+class feedController extends ActionController {
+ public function addAction () {
+ if (Request::isPost ()) {
+ $url = Request::param ('url_rss');
+
+ try {
+ $feed = new Feed ($url);
+ $entries = $feed->loadEntries ();
+ $feed_entries = array ();
+
+ if ($entries !== false) {
+ $entryDAO = new EntryDAO ();
+
+ foreach ($entries as $entry) {
+ $values = array (
+ 'id' => $entry->id (),
+ 'guid' => $entry->guid (),
+ 'title' => $entry->title (),
+ 'author' => $entry->author (),
+ 'content' => $entry->content (),
+ 'link' => $entry->link (),
+ 'date' => $entry->date (true),
+ 'is_read' => $entry->isRead (),
+ 'is_favorite' => $entry->isFavorite (),
+ );
+ $entryDAO->addEntry ($values);
+
+ $feed_entries[] = $entry->id ();
+ }
+ }
+
+ $feedDAO = new FeedDAO ();
+ $values = array (
+ 'id' => $feed->id (),
+ 'url' => $feed->url (),
+ 'categories' => $feed->categories (),
+ 'entries' => $feed_entries
+ );
+ $feedDAO->addFeed ($values);
+ } catch (Exception $e) {
+ // TODO ajouter une erreur : url non valide
+ }
+
+ Request::forward (array (), true);
+ }
+ }
+
+ public function actualizeAction () {
+ $feedDAO = new FeedDAO ();
+ $entryDAO = new EntryDAO ();
+
+ $feeds = $feedDAO->listFeeds ();
+
+ foreach ($feeds as $feed) {
+ $entries = $feed->loadEntries ();
+ $feed_entries = $feed->entries ();
+
+ if ($entries !== false) {
+ foreach ($entries as $entry) {
+ $values = array (
+ 'id' => $entry->id (),
+ 'guid' => $entry->guid (),
+ 'title' => $entry->title (),
+ 'author' => $entry->author (),
+ 'content' => $entry->content (),
+ 'link' => $entry->link (),
+ 'date' => $entry->date (true),
+ 'is_read' => $entry->isRead (),
+ 'is_favorite' => $entry->isFavorite (),
+ );
+ $entryDAO->addEntry ($values);
+
+ if (!in_array ($entry->id (), $feed_entries)) {
+ $feed_entries[] = $entry->id ();
+ }
+ }
+ }
+
+ $values = array (
+ 'entries' => $feed_entries
+ );
+ $feedDAO->updateFeed ($values);
+ }
+
+ Request::forward (array (), true);
+ }
+}