forked from GNUsocial/gnu-social
Added proper enabling and disabling of sending RTs to Twitter.
This commit is contained in:
parent
14cb2d5398
commit
39ebb64b85
@ -89,7 +89,7 @@ class Foreign_link extends Managed_DataObject
|
||||
return $flink;
|
||||
}
|
||||
|
||||
function set_flags($noticesend, $noticerecv, $replysync, $friendsync)
|
||||
function set_flags($noticesend, $noticerecv, $replysync, $repeatsync, $friendsync)
|
||||
{
|
||||
if ($noticesend) {
|
||||
$this->noticesync |= FOREIGN_NOTICE_SEND;
|
||||
@ -109,6 +109,12 @@ class Foreign_link extends Managed_DataObject
|
||||
$this->noticesync &= ~FOREIGN_NOTICE_SEND_REPLY;
|
||||
}
|
||||
|
||||
if ($repeatsync) {
|
||||
$this->noticesync |= FOREIGN_NOTICE_SEND_REPEAT;
|
||||
} else {
|
||||
$this->noticesync &= ~FOREIGN_NOTICE_SEND_REPEAT;
|
||||
}
|
||||
|
||||
if ($friendsync) {
|
||||
$this->friendsync |= FOREIGN_FRIEND_RECV;
|
||||
} else {
|
||||
|
@ -46,6 +46,7 @@ define('PROFILES_PER_MINILIST', 8);
|
||||
define('FOREIGN_NOTICE_SEND', 1);
|
||||
define('FOREIGN_NOTICE_RECV', 2);
|
||||
define('FOREIGN_NOTICE_SEND_REPLY', 4);
|
||||
define('FOREIGN_NOTICE_SEND_REPEAT', 8);
|
||||
|
||||
define('FOREIGN_FRIEND_SEND', 1);
|
||||
define('FOREIGN_FRIEND_RECV', 2);
|
||||
|
@ -213,7 +213,8 @@ class FacebooksettingsAction extends SettingsAction {
|
||||
$replysync = $this->boolean('replysync');
|
||||
|
||||
$original = clone($this->flink);
|
||||
$this->flink->set_flags($noticesync, false, $replysync, false);
|
||||
// TODO: Allow disabling of repeats
|
||||
$this->flink->set_flags($noticesync, false, $replysync, true, false);
|
||||
$result = $this->flink->update($original);
|
||||
|
||||
if ($result === false) {
|
||||
|
@ -237,7 +237,7 @@ class TwitterauthorizationAction extends FormAction
|
||||
|
||||
// Defaults: noticesync on, everything else off
|
||||
|
||||
$flink->set_flags(true, false, false, false);
|
||||
$flink->set_flags(true, false, false, false, false);
|
||||
|
||||
$flink_id = $flink->insert();
|
||||
|
||||
|
@ -161,6 +161,12 @@ class TwittersettingsAction extends ProfileSettingsAction
|
||||
$this->flink->noticesync & FOREIGN_NOTICE_SEND_REPLY);
|
||||
$this->elementEnd('li');
|
||||
$this->elementStart('li');
|
||||
$this->checkbox('repeatsync',
|
||||
// TRANS: Checkbox label.
|
||||
_m('Send local repeats to Twitter.'),
|
||||
$this->flink->noticesync & FOREIGN_NOTICE_SEND_REPEAT);
|
||||
$this->elementEnd('li');
|
||||
$this->elementStart('li');
|
||||
$this->checkbox('friendsync',
|
||||
// TRANS: Checkbox label.
|
||||
_m('Subscribe to my Twitter friends here.'),
|
||||
@ -265,6 +271,7 @@ class TwittersettingsAction extends ProfileSettingsAction
|
||||
$noticerecv = $this->boolean('noticerecv');
|
||||
$friendsync = $this->boolean('friendsync');
|
||||
$replysync = $this->boolean('replysync');
|
||||
$repeatsync = $this->boolean('repeatsync');
|
||||
|
||||
if (!$this->flink instanceof Foreign_link) {
|
||||
common_log_db_error($this->flink, 'SELECT', __FILE__);
|
||||
@ -274,7 +281,7 @@ class TwittersettingsAction extends ProfileSettingsAction
|
||||
|
||||
$original = clone($this->flink);
|
||||
$wasReceiving = (bool)($original->noticesync & FOREIGN_NOTICE_RECV);
|
||||
$this->flink->set_flags($noticesend, $noticerecv, $replysync, $friendsync);
|
||||
$this->flink->set_flags($noticesend, $noticerecv, $replysync, $repeatsync, $friendsync);
|
||||
$result = $this->flink->update($original);
|
||||
|
||||
if ($result === false) {
|
||||
|
@ -111,7 +111,14 @@ function is_twitter_bound($notice, $flink) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$allowedVerbs = array(ActivityVerb::POST, ActivityVerb::SHARE);
|
||||
$allowedVerbs = array(ActivityVerb::POST);
|
||||
|
||||
// Default behavior: always send repeats
|
||||
if (empty($flink))
|
||||
array_push($allowedVerbs, ActivityVerb::SHARE);
|
||||
// Otherwise, check to see if repeats are allowed
|
||||
else if (($flink->noticesync & FOREIGN_NOTICE_SEND_REPEAT) == FOREIGN_NOTICE_SEND_REPEAT)
|
||||
array_push($allowedVerbs, ActivityVerb::SHARE);
|
||||
|
||||
// Don't send things that aren't posts or repeats (at least for now)
|
||||
if (!in_array($notice->verb, $allowedVerbs)) {
|
||||
|
Loading…
Reference in New Issue
Block a user