Notice->repeat() function takes Profile as argument now
This commit is contained in:
parent
c4c4835899
commit
b0cc9292b1
@ -27,9 +27,7 @@
|
|||||||
* @link http://status.net/
|
* @link http://status.net/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (!defined('STATUSNET')) {
|
if (!defined('GNUSOCIAL')) { exit(1); }
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Repeat a notice through the API
|
* Repeat a notice through the API
|
||||||
@ -42,6 +40,8 @@ if (!defined('STATUSNET')) {
|
|||||||
*/
|
*/
|
||||||
class ApiStatusesRetweetAction extends ApiAuthAction
|
class ApiStatusesRetweetAction extends ApiAuthAction
|
||||||
{
|
{
|
||||||
|
protected $needPost = true;
|
||||||
|
|
||||||
var $original = null;
|
var $original = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -51,30 +51,19 @@ class ApiStatusesRetweetAction extends ApiAuthAction
|
|||||||
*
|
*
|
||||||
* @return boolean success flag
|
* @return boolean success flag
|
||||||
*/
|
*/
|
||||||
function prepare($args)
|
protected function prepare(array $args=array())
|
||||||
{
|
{
|
||||||
parent::prepare($args);
|
parent::prepare($args);
|
||||||
|
|
||||||
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
|
|
||||||
// TRANS: Client error. POST is a HTTP command. It should not be translated.
|
|
||||||
$this->clientError(_('This method requires a POST.'),
|
|
||||||
400, $this->format);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$id = $this->trimmed('id');
|
$id = $this->trimmed('id');
|
||||||
|
|
||||||
$this->original = Notice::getKV('id', $id);
|
$this->original = Notice::getKV('id', $id);
|
||||||
|
|
||||||
if (empty($this->original)) {
|
if (!$this->original instanceof Notice) {
|
||||||
// TRANS: Client error displayed trying to repeat a non-existing notice through the API.
|
// TRANS: Client error displayed trying to repeat a non-existing notice through the API.
|
||||||
$this->clientError(_('No such notice.'),
|
$this->clientError(_('No such notice.'), 400, $this->format);
|
||||||
400, $this->format);
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->user = $this->auth_user;
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -87,11 +76,11 @@ class ApiStatusesRetweetAction extends ApiAuthAction
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function handle($args)
|
protected function handle()
|
||||||
{
|
{
|
||||||
parent::handle($args);
|
parent::handle();
|
||||||
|
|
||||||
$repeat = $this->original->repeat($this->user->id, $this->source);
|
$repeat = $this->original->repeat($this->scoped, $this->source);
|
||||||
|
|
||||||
$this->showNotice($repeat);
|
$this->showNotice($repeat);
|
||||||
}
|
}
|
||||||
|
@ -63,7 +63,7 @@ class RepeatAction extends FormAction
|
|||||||
$this->clientError(_('Notice not found.'));
|
$this->clientError(_('Notice not found.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->repeat = $this->notice->repeat($this->scoped->id, 'web');
|
$this->repeat = $this->notice->repeat($this->scoped, 'web');
|
||||||
if (!$this->repeat instanceof Notice) {
|
if (!$this->repeat instanceof Notice) {
|
||||||
// TRANS: Error when unable to repeat a notice for unknown reason.
|
// TRANS: Error when unable to repeat a notice for unknown reason.
|
||||||
$this->clientError(_('Could not repeat notice for unknown reason. Please contact the webmaster!'));
|
$this->clientError(_('Could not repeat notice for unknown reason. Please contact the webmaster!'));
|
||||||
|
@ -1837,24 +1837,24 @@ class Notice extends Managed_DataObject
|
|||||||
/**
|
/**
|
||||||
* Convenience function for posting a repeat of an existing message.
|
* Convenience function for posting a repeat of an existing message.
|
||||||
*
|
*
|
||||||
* @param int $repeater_id: profile ID of user doing the repeat
|
* @param Profile $repeater Profile which is doing the repeat
|
||||||
* @param string $source: posting source key, eg 'web', 'api', etc
|
* @param string $source: posting source key, eg 'web', 'api', etc
|
||||||
* @return Notice
|
* @return Notice
|
||||||
*
|
*
|
||||||
* @throws Exception on failure or permission problems
|
* @throws Exception on failure or permission problems
|
||||||
*/
|
*/
|
||||||
function repeat($repeater_id, $source)
|
function repeat(Profile $repeater, $source)
|
||||||
{
|
{
|
||||||
$author = $this->getProfile();
|
$author = $this->getProfile();
|
||||||
|
|
||||||
// TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
// TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
|
||||||
// TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
// TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
|
||||||
$content = sprintf(_('RT @%1$s %2$s'),
|
$content = sprintf(_('RT @%1$s %2$s'),
|
||||||
$author->nickname,
|
$author->getNickname(),
|
||||||
$this->content);
|
$this->content);
|
||||||
|
|
||||||
// Scope is same as this one's
|
// Scope is same as this one's
|
||||||
return self::saveNew($repeater_id,
|
return self::saveNew($repeater->id,
|
||||||
$content,
|
$content,
|
||||||
$source,
|
$source,
|
||||||
array('repeat_of' => $this->id,
|
array('repeat_of' => $this->id,
|
||||||
|
@ -23,10 +23,12 @@ require_once(INSTALLDIR.'/lib/channel.php');
|
|||||||
|
|
||||||
class Command
|
class Command
|
||||||
{
|
{
|
||||||
|
protected $scoped = null; // The Profile of the user performing the command
|
||||||
var $user = null;
|
var $user = null;
|
||||||
|
|
||||||
function __construct($user=null)
|
function __construct($user=null)
|
||||||
{
|
{
|
||||||
|
$this->scoped = $user->getProfile();
|
||||||
$this->user = $user;
|
$this->user = $user;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -659,7 +661,7 @@ class RepeatCommand extends Command
|
|||||||
$notice = $this->getNotice($this->other);
|
$notice = $this->getNotice($this->other);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$repeat = $notice->repeat($this->user->id, $channel->source());
|
$repeat = $notice->repeat($this->scoped->id, $channel->source());
|
||||||
$recipient = $notice->getProfile();
|
$recipient = $notice->getProfile();
|
||||||
|
|
||||||
// TRANS: Message given having repeated a notice from another user.
|
// TRANS: Message given having repeated a notice from another user.
|
||||||
|
@ -179,7 +179,7 @@ class SubMirror extends Managed_DataObject
|
|||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
common_log(LOG_INFO, "SubMirror plugin auto-repeating notice $notice->id for $profile->id");
|
common_log(LOG_INFO, "SubMirror plugin auto-repeating notice $notice->id for $profile->id");
|
||||||
return $notice->repeat($profile->id, 'mirror');
|
return $notice->repeat($profile, 'mirror');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -362,7 +362,7 @@ class ActivityGenerationTests extends PHPUnit_Framework_TestCase
|
|||||||
public function testRepeatLink()
|
public function testRepeatLink()
|
||||||
{
|
{
|
||||||
$notice = $this->_fakeNotice($this->author1);
|
$notice = $this->_fakeNotice($this->author1);
|
||||||
$repeat = $notice->repeat($this->author2->id, 'test');
|
$repeat = $notice->repeat($this->author2->getProfile(), 'test');
|
||||||
|
|
||||||
$entry = $repeat->asAtomEntry();
|
$entry = $repeat->asAtomEntry();
|
||||||
|
|
||||||
@ -451,7 +451,7 @@ class ActivityGenerationTests extends PHPUnit_Framework_TestCase
|
|||||||
{
|
{
|
||||||
$notice = $this->_fakeNotice();
|
$notice = $this->_fakeNotice();
|
||||||
|
|
||||||
$repeat = $notice->repeat($this->author2->id, 'test');
|
$repeat = $notice->repeat($this->author2->getProfile(), 'test');
|
||||||
|
|
||||||
$entry = $repeat->asAtomEntry();
|
$entry = $repeat->asAtomEntry();
|
||||||
|
|
||||||
@ -466,7 +466,7 @@ class ActivityGenerationTests extends PHPUnit_Framework_TestCase
|
|||||||
{
|
{
|
||||||
$notice = $this->_fakeNotice();
|
$notice = $this->_fakeNotice();
|
||||||
|
|
||||||
$repeat = $notice->repeat($this->author2->id, 'test');
|
$repeat = $notice->repeat($this->author2->getProfile(), 'test');
|
||||||
|
|
||||||
$entry = $notice->asAtomEntry(false, false, false, $this->author2);
|
$entry = $notice->asAtomEntry(false, false, false, $this->author2);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user