Commit 457d32e2 authored by mmn's avatar mmn

Merge branch 'takeshitakenji/gnu-social-twitter-repeat-config' into mmn_fixes

parents dd8e17a3 39ebb64b
......@@ -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);
......
......@@ -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)) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment