]> 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 6b087353a634a265003e0be7bd4549dffdc366b4..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
@@ -128,6 +127,7 @@ class TwittersettingsAction extends ConnectSettingsAction
             if (!$user->password) {
 
                 $this->elementStart('p', array('class' => 'form_guide'));
+                // @todo FIXME: Bad i18n (patchwork in three parts).
                 $this->text(_m('Disconnecting your Twitter ' .
                                'could make it impossible to log in! Please '));
                 $this->element('a',
@@ -180,7 +180,7 @@ class TwittersettingsAction extends ConnectSettingsAction
             if (common_config('twitterimport','enabled')) {
                 $this->elementStart('li');
                 $this->checkbox('noticerecv',
-                                _m('Import my Friends Timeline.'),
+                                _m('Import my friends timeline.'),
                                 ($flink) ?
                                 ($flink->noticesync & FOREIGN_NOTICE_RECV) :
                                 false);
@@ -246,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)) {
@@ -279,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);
 
@@ -288,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
+    }
+
 }