fix error storing uris of remote notices

darcs-hash:20080826211108-84dde-b277bdb1476b9cec0c0d93fa8d565c4642ba16c8.gz
This commit is contained in:
Evan Prodromou 2008-08-26 17:11:08 -04:00
parent 4a28e70cf8
commit b1ff7d7a2b
3 changed files with 12 additions and 6 deletions

View File

@ -74,7 +74,7 @@ class PostnoticeAction extends Action {
} }
$notice = Notice::staticGet('uri', $notice_uri); $notice = Notice::staticGet('uri', $notice_uri);
if (!$notice) { if (!$notice) {
$notice = Notice::saveNew($remote_profile->id, $content, 'omb', 0); $notice = Notice::saveNew($remote_profile->id, $content, 'omb', 0, $notice_uri);
if (is_string($notice)) { if (is_string($notice)) {
common_server_serror($notice, 500); common_server_serror($notice, 500);
return false; return false;

View File

@ -75,8 +75,8 @@ class Notice extends DB_DataObject
} }
return true; return true;
} }
static function saveNew($profile_id, $content, $source=NULL, $is_local=1, $reply_to=NULL) { static function saveNew($profile_id, $content, $source=NULL, $is_local=1, $reply_to=NULL, $uri=NULL) {
$notice = new Notice(); $notice = new Notice();
$notice->profile_id = $profile_id; $notice->profile_id = $profile_id;
@ -96,12 +96,18 @@ class Notice extends DB_DataObject
} }
$orig = clone($notice); $orig = clone($notice);
$notice->uri = common_notice_uri($notice); if ($uri) {
$notice->uri = $uri;
} else {
$notice->uri = common_notice_uri($notice);
}
if (!$notice->update($orig)) { if (!$notice->update($orig)) {
return _('Problem saving notice.'); return _('Problem saving notice.');
} }
# XXX: do we need to change this for remote users?
common_save_replies($notice); common_save_replies($notice);
$notice->saveTags(); $notice->saveTags();

View File

@ -96,8 +96,8 @@ class StreamAction extends Action {
} }
common_element_end('p'); common_element_end('p');
$noticeurl = common_local_url('shownotice', array('notice' => $notice->id)); $noticeurl = common_local_url('shownotice', array('notice' => $notice->id));
# XXX: we need to figure this out better # XXX: we need to figure this out better. Is this right?
if ($notice->uri != $noticeurl && preg_match('/^http/', $notice->uri)) { if (strcmp($notice->uri, $noticeurl) != 0 && preg_match('/^http/', $notice->uri)) {
$noticeurl = $notice->uri; $noticeurl = $notice->uri;
} }
common_element_start('p', 'time'); common_element_start('p', 'time');