]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/SubMirror/actions/addmirror.php
RSS feed items did not get a type assigned
[quix0rs-gnu-social.git] / plugins / SubMirror / actions / addmirror.php
index 5acdf1dfe498c97d43eef019e00a21c3e095049f..738fa92f47366e10ba5db02b8149d5d5522df77e 100644 (file)
@@ -26,9 +26,7 @@
  * @link      http://status.net/
  */
 
-if (!defined('STATUSNET')) {
-    exit(1);
-}
+if (!defined('GNUSOCIAL') && !defined('STATUSNET')) { exit(1); }
 
 /**
  * Takes parameters:
@@ -45,7 +43,6 @@ if (!defined('STATUSNET')) {
  * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
  * @link      http://status.net/
  */
-
 class AddMirrorAction extends BaseMirrorAction
 {
     var $feedurl;
@@ -57,21 +54,30 @@ class AddMirrorAction extends BaseMirrorAction
      *
      * @return boolean success flag
      */
-
-    function prepare($args)
+    protected function prepare(array $args=array())
     {
         parent::prepare($args);
-        $this->feedurl = $this->validateFeedUrl($this->trimmed('feedurl'));
+        $feedurl = $this->getFeedUrl();
+        $this->feedurl = $this->validateFeedUrl($feedurl);
         $this->profile = $this->profileForFeed($this->feedurl);
         return true;
     }
 
-    function saveMirror()
+    function getFeedUrl()
     {
-        if ($this->oprofile->subscribe()) {
-            SubMirror::saveMirror($this->user, $this->profile);
-        } else {
-            $this->serverError(_m("Could not subscribe to feed."));
+        $provider = $this->trimmed('provider');
+        switch ($provider) {
+        case 'feed':
+            return $this->trimmed('feedurl');
+        default:
+            // TRANS: Exception thrown when a feed provider could not be recognised.
+            throw new Exception(_m('Internal form error: Unrecognized feed provider.'));
         }
     }
+
+    protected function saveMirror()
+    {
+        $this->oprofile->subscribe();
+        SubMirror::saveMirror($this->user, $this->profile);
+    }
 }