]> 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 8c3a9740f3cd3528dd051ae596c621b362717070..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:
@@ -56,20 +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);
+    }
 }