]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/TwitterBridge/twittersettings.php
Merge branch '1.0.x' into limitdist
[quix0rs-gnu-social.git] / plugins / TwitterBridge / twittersettings.php
index dab8ab34fe2514595ec53c3fad22434e085e1b0b..763a5860790b059bcfbc686f53c0517f7ddc7c70 100644 (file)
@@ -31,7 +31,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
     exit(1);
 }
 
-require_once INSTALLDIR . '/lib/connectsettingsaction.php';
 require_once INSTALLDIR . '/plugins/TwitterBridge/twitter.php';
 
 /**
@@ -45,7 +44,7 @@ require_once INSTALLDIR . '/plugins/TwitterBridge/twitter.php';
  *
  * @see      SettingsAction
  */
-class TwittersettingsAction extends ConnectSettingsAction
+class TwittersettingsAction extends ProfileSettingsAction
 {
     /**
      * Title of the page
@@ -247,6 +246,11 @@ class TwittersettingsAction extends ConnectSettingsAction
         $user = common_current_user();
         $flink = Foreign_link::getByUserID($user->id, TWITTER_SERVICE);
 
+        if (empty($flink)) {
+            $this->clientError(_m('No Twitter connection to remove.'));
+            return;
+        }
+
         $result = $flink->safeDelete();
 
         if (empty($result)) {
@@ -280,6 +284,7 @@ class TwittersettingsAction extends ConnectSettingsAction
         }
 
         $original = clone($flink);
+        $wasReceiving = (bool)($original->noticesync & FOREIGN_NOTICE_RECV);
         $flink->set_flags($noticesend, $noticerecv, $replysync, $friendsync);
         $result = $flink->update($original);
 
@@ -289,6 +294,19 @@ class TwittersettingsAction extends ConnectSettingsAction
             return;
         }
 
+        if ($wasReceiving xor $noticerecv) {
+            $this->notifyDaemon($flink->foreign_id, $noticerecv);
+        }
+
         $this->showForm(_m('Twitter preferences saved.'), true);
     }
+
+    /**
+     * Tell the import daemon that we've updated a user's receive status.
+     */
+    function notifyDaemon($twitterUserId, $receiving)
+    {
+        // todo... should use control signals rather than queues
+    }
+
 }