refactor notice-adding code to one static method on Notice
darcs-hash:20080730022856-84dde-f19e4ff5d5ae2603b63b8aebd8f878ec90b3ce22.gz
This commit is contained in:
parent
44fb662efb
commit
d79dc8344b
|
@ -38,44 +38,27 @@ class NewnoticeAction extends Action {
|
||||||
|
|
||||||
$user = common_current_user();
|
$user = common_current_user();
|
||||||
assert($user); # XXX: maybe an error instead...
|
assert($user); # XXX: maybe an error instead...
|
||||||
$notice = new Notice();
|
$content = $this->trimmed('status_textarea');
|
||||||
assert($notice);
|
|
||||||
$notice->profile_id = $user->id; # user id *is* profile id
|
|
||||||
$notice->is_local = 1;
|
|
||||||
$notice->created = DB_DataObject_Cast::dateTime();
|
|
||||||
# Default theme uses 'content' for something else
|
|
||||||
$notice->content = $this->trimmed('status_textarea');
|
|
||||||
|
|
||||||
if (!$notice->content) {
|
if (!$content) {
|
||||||
$this->show_form(_('No content!'));
|
$this->show_form(_('No content!'));
|
||||||
return;
|
return;
|
||||||
} else if (strlen($notice->content) > 140) {
|
} else if (strlen($content) > 140) {
|
||||||
$this->show_form(_('That\'s too long. Max notice size is 140 chars.'));
|
$this->show_form(_('That\'s too long. Max notice size is 140 chars.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$notice->rendered = common_render_content($notice->content, $notice);
|
$notice = Notice::saveNew($user->id, $content, 'web');
|
||||||
|
|
||||||
$id = $notice->insert();
|
if (is_string($notice)) {
|
||||||
|
$this->show_form($notice);
|
||||||
if (!$id) {
|
|
||||||
common_server_error(_('Problem saving notice.'));
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$orig = clone($notice);
|
|
||||||
$notice->uri = common_notice_uri($notice);
|
|
||||||
|
|
||||||
if (!$notice->update($orig)) {
|
|
||||||
common_server_error(_('Problem saving notice.'));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
common_save_replies($notice);
|
|
||||||
$notice->saveTags();
|
|
||||||
common_broadcast_notice($notice);
|
common_broadcast_notice($notice);
|
||||||
|
|
||||||
$returnto = $this->trimmed('returnto');
|
$returnto = $this->trimmed('returnto');
|
||||||
|
|
||||||
if ($returnto) {
|
if ($returnto) {
|
||||||
$url = common_local_url($returnto,
|
$url = common_local_url($returnto,
|
||||||
array('nickname' => $user->nickname));
|
array('nickname' => $user->nickname));
|
||||||
|
|
|
@ -74,24 +74,11 @@ class PostnoticeAction extends Action {
|
||||||
}
|
}
|
||||||
$notice = Notice::staticGet('uri', $notice_uri);
|
$notice = Notice::staticGet('uri', $notice_uri);
|
||||||
if (!$notice) {
|
if (!$notice) {
|
||||||
$notice = new Notice();
|
$notice = Notice::saveNew($remote_profile->id, $content, 'omb', 0);
|
||||||
$notice->is_local = 0;
|
if (is_string($notice)) {
|
||||||
$notice->profile_id = $remote_profile->id;
|
common_server_serror($notice, 500);
|
||||||
$notice->uri = $notice_uri;
|
|
||||||
$notice->content = $content;
|
|
||||||
$notice->rendered = common_render_content($notice->content, $notice);
|
|
||||||
if ($notice_url) {
|
|
||||||
$notice->url = $notice_url;
|
|
||||||
}
|
|
||||||
$notice->created = DB_DataObject_Cast::dateTime(); # current time
|
|
||||||
$id = $notice->insert();
|
|
||||||
if (!$id) {
|
|
||||||
common_server_error(_('Error inserting notice'), 500);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
common_save_replies($notice);
|
|
||||||
$notice->saveTags();
|
|
||||||
common_broadcast_notice($notice, true);
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -371,20 +371,19 @@ class TwitapistatusesAction extends TwitterapiAction {
|
||||||
}
|
}
|
||||||
|
|
||||||
function update($args, $apidata) {
|
function update($args, $apidata) {
|
||||||
|
|
||||||
parent::handle($args);
|
parent::handle($args);
|
||||||
|
|
||||||
$user = $apidata['user'];
|
$user = $apidata['user'];
|
||||||
|
|
||||||
$this->is_readonly();
|
$status = $this->trimmed('status');
|
||||||
|
$source = $this->trimmed('source');
|
||||||
|
|
||||||
|
if (!$source) {
|
||||||
|
$source = 'api';
|
||||||
|
}
|
||||||
|
|
||||||
$notice = DB_DataObject::factory('notice');
|
if (!$status) {
|
||||||
|
|
||||||
$notice->profile_id = $user->id; # user id *is* profile id
|
|
||||||
$notice->created = DB_DataObject_Cast::dateTime();
|
|
||||||
$notice->content = $this->trimmed('status');
|
|
||||||
|
|
||||||
if (!$notice->content) {
|
|
||||||
|
|
||||||
// XXX: Note: In this case, Twitter simply returns '200 OK'
|
// XXX: Note: In this case, Twitter simply returns '200 OK'
|
||||||
// No error is given, but the status is not posted to the
|
// No error is given, but the status is not posted to the
|
||||||
|
@ -392,7 +391,7 @@ class TwitapistatusesAction extends TwitterapiAction {
|
||||||
// errror? -- Zach
|
// errror? -- Zach
|
||||||
exit();
|
exit();
|
||||||
|
|
||||||
} else if (strlen($notice->content) > 140) {
|
} else if (strlen($status) > 140) {
|
||||||
|
|
||||||
// XXX: Twitter truncates anything over 140, flags the status
|
// XXX: Twitter truncates anything over 140, flags the status
|
||||||
// as "truncated." Sending this error may screw up some clients
|
// as "truncated." Sending this error may screw up some clients
|
||||||
|
@ -403,27 +402,13 @@ class TwitapistatusesAction extends TwitterapiAction {
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
$notice->rendered = common_render_content($notice->content, $notice);
|
$notice = Notice::saveNew($user->id, $status, $source);
|
||||||
$notice->is_local = 1;
|
|
||||||
|
|
||||||
$id = $notice->insert();
|
if (is_string($notice)) {
|
||||||
|
$this->server_error($notice);
|
||||||
if (!$id) {
|
return;
|
||||||
common_server_error('Could not update status!', 500);
|
|
||||||
exit();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$orig = clone($notice);
|
|
||||||
$notice->uri = common_notice_uri($notice);
|
|
||||||
|
|
||||||
if (!$notice->update($orig)) {
|
|
||||||
common_server_error('Could not save status!', 500);
|
|
||||||
exit();
|
|
||||||
}
|
|
||||||
|
|
||||||
common_save_replies($notice);
|
|
||||||
common_broadcast_notice($notice);
|
|
||||||
|
|
||||||
// FIXME: Bad Hack
|
// FIXME: Bad Hack
|
||||||
// I should be able to just sent this notice off for display,
|
// I should be able to just sent this notice off for display,
|
||||||
// but $notice->created does not contain a string at this
|
// but $notice->created does not contain a string at this
|
||||||
|
|
|
@ -75,4 +75,34 @@ class Notice extends DB_DataObject
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static function saveNew($profile_id, $content, $source=NULL, $is_local=1) {
|
||||||
|
|
||||||
|
$notice = new Notice();
|
||||||
|
$notice->profile_id = $profile_id;
|
||||||
|
$notice->is_local = $is_local;
|
||||||
|
$notice->created = DB_DataObject_Cast::dateTime();
|
||||||
|
# Default theme uses 'content' for something else
|
||||||
|
$notice->content = $content;
|
||||||
|
|
||||||
|
$notice->rendered = common_render_content($notice->content, $notice);
|
||||||
|
|
||||||
|
$id = $notice->insert();
|
||||||
|
|
||||||
|
if (!$id) {
|
||||||
|
return _('Problem saving notice.');
|
||||||
|
}
|
||||||
|
|
||||||
|
$orig = clone($notice);
|
||||||
|
$notice->uri = common_notice_uri($notice);
|
||||||
|
|
||||||
|
if (!$notice->update($orig)) {
|
||||||
|
return _('Problem saving notice.');
|
||||||
|
}
|
||||||
|
|
||||||
|
common_save_replies($notice);
|
||||||
|
$notice->saveTags();
|
||||||
|
|
||||||
|
return $notice;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -115,35 +115,11 @@ class MailerDaemon {
|
||||||
}
|
}
|
||||||
|
|
||||||
function add_notice($user, $msg) {
|
function add_notice($user, $msg) {
|
||||||
$notice = new Notice();
|
$notice = Notice::saveNew($user->id, $msg, 'mail');
|
||||||
$notice->is_local = 1;
|
if (is_string($notice)) {
|
||||||
$notice->profile_id = $user->id;
|
$this->log(LOG_ERR, $notice);
|
||||||
$notice->content = trim(substr($msg, 0, 140));
|
|
||||||
$notice->rendered = common_render_content($notice->content, $notice);
|
|
||||||
$notice->created = DB_DataObject_Cast::dateTime();
|
|
||||||
$notice->query('BEGIN');
|
|
||||||
$id = $notice->insert();
|
|
||||||
if (!$id) {
|
|
||||||
$last_error = &PEAR::getStaticProperty('DB_DataObject','lastError');
|
|
||||||
$this->log(LOG_ERR,
|
|
||||||
'Could not insert ' . common_log_objstring($notice) .
|
|
||||||
' for user ' . common_log_objstring($user) .
|
|
||||||
': ' . $last_error->message);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$orig = clone($notice);
|
|
||||||
$notice->uri = common_notice_uri($notice);
|
|
||||||
$result = $notice->update($orig);
|
|
||||||
if (!$result) {
|
|
||||||
$last_error = &PEAR::getStaticProperty('DB_DataObject','lastError');
|
|
||||||
$this->log(LOG_ERR,
|
|
||||||
'Could not add URI to ' . common_log_objstring($notice) .
|
|
||||||
' for user ' . common_log_objstring($user) .
|
|
||||||
': ' . $last_error->message);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
$notice->query('COMMIT');
|
|
||||||
common_save_replies($notice);
|
|
||||||
common_broadcast_notice($notice);
|
common_broadcast_notice($notice);
|
||||||
$this->log(LOG_INFO,
|
$this->log(LOG_INFO,
|
||||||
'Added notice ' . $notice->id . ' from user ' . $user->nickname);
|
'Added notice ' . $notice->id . ' from user ' . $user->nickname);
|
||||||
|
|
|
@ -223,36 +223,11 @@ class XMPPDaemon {
|
||||||
}
|
}
|
||||||
|
|
||||||
function add_notice(&$user, &$pl) {
|
function add_notice(&$user, &$pl) {
|
||||||
$notice = new Notice();
|
$notice = Notice::saveNew($user->id, trim(substr($pl['body'], 0, 140)), 'xmpp');
|
||||||
$notice->is_local = 1;
|
if (is_string($notice)) {
|
||||||
$notice->profile_id = $user->id;
|
$this->log(LOG_ERR, $notice);
|
||||||
$notice->content = trim(substr($pl['body'], 0, 140));
|
|
||||||
$notice->rendered = common_render_content($notice->content, $notice);
|
|
||||||
$notice->created = DB_DataObject_Cast::dateTime();
|
|
||||||
$notice->query('BEGIN');
|
|
||||||
$id = $notice->insert();
|
|
||||||
if (!$id) {
|
|
||||||
$last_error = &PEAR::getStaticProperty('DB_DataObject','lastError');
|
|
||||||
$this->log(LOG_ERR,
|
|
||||||
'Could not insert ' . common_log_objstring($notice) .
|
|
||||||
' for user ' . common_log_objstring($user) .
|
|
||||||
': ' . $last_error->message);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$orig = clone($notice);
|
|
||||||
$notice->uri = common_notice_uri($notice);
|
|
||||||
$result = $notice->update($orig);
|
|
||||||
if (!$result) {
|
|
||||||
$last_error = &PEAR::getStaticProperty('DB_DataObject','lastError');
|
|
||||||
$this->log(LOG_ERR,
|
|
||||||
'Could not add URI to ' . common_log_objstring($notice) .
|
|
||||||
' for user ' . common_log_objstring($user) .
|
|
||||||
': ' . $last_error->message);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
$notice->query('COMMIT');
|
|
||||||
common_save_replies($notice);
|
|
||||||
$notice->saveTags();
|
|
||||||
common_real_broadcast($notice);
|
common_real_broadcast($notice);
|
||||||
$this->log(LOG_INFO,
|
$this->log(LOG_INFO,
|
||||||
'Added notice ' . $notice->id . ' from user ' . $user->nickname);
|
'Added notice ' . $notice->id . ' from user ' . $user->nickname);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user