Set object_type to ActivityObject::NOTE on notices imported from Twitter. Previously was unset which caused ActivityHandler to throw an error during onStartOpenNoticeListItemElement() and the notices would not display in the timeline.
This commit is contained in:
parent
563b3b1328
commit
1f5e306760
@ -570,4 +570,28 @@ class TwitterBridgePlugin extends Plugin
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the object_type field of previously imported Twitter notices to
|
||||||
|
* ActivityObject::NOTE if they are unset. Null object_type caused a notice
|
||||||
|
* not to show on the timeline.
|
||||||
|
*/
|
||||||
|
public function onEndUpgrade()
|
||||||
|
{
|
||||||
|
printfnq("Ensuring all Twitter notices have an object_type...");
|
||||||
|
|
||||||
|
$notice = new Notice();
|
||||||
|
$notice->whereAdd("source='twitter'");
|
||||||
|
$notice->whereAdd('object_type IS NULL');
|
||||||
|
|
||||||
|
if ($notice->find()) {
|
||||||
|
while ($notice->fetch()) {
|
||||||
|
$orig = Notice::getKV('id', $notice->id);
|
||||||
|
$notice->object_type = ActivityObject::NOTE;
|
||||||
|
$notice->update($orig);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
printfnq("DONE.\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -137,7 +137,10 @@ class TwitterImport
|
|||||||
'twitter',
|
'twitter',
|
||||||
array('repeat_of' => $original->id,
|
array('repeat_of' => $original->id,
|
||||||
'uri' => $statusUri,
|
'uri' => $statusUri,
|
||||||
'is_local' => Notice::GATEWAY));
|
'is_local' => Notice::GATEWAY,
|
||||||
|
'object_type' => ActivityObject::NOTE,
|
||||||
|
'verb' => ActivityVerb::POST
|
||||||
|
));
|
||||||
common_log(LOG_INFO, "Saved {$repeat->id} as a repeat of {$original->id}");
|
common_log(LOG_INFO, "Saved {$repeat->id} as a repeat of {$original->id}");
|
||||||
Notice_to_status::saveNew($repeat->id, $statusId);
|
Notice_to_status::saveNew($repeat->id, $statusId);
|
||||||
return $repeat;
|
return $repeat;
|
||||||
@ -146,18 +149,19 @@ class TwitterImport
|
|||||||
|
|
||||||
$notice = new Notice();
|
$notice = new Notice();
|
||||||
|
|
||||||
$notice->profile_id = $profile->id;
|
$notice->profile_id = $profile->id;
|
||||||
$notice->uri = $statusUri;
|
$notice->uri = $statusUri;
|
||||||
$notice->url = $statusUri;
|
$notice->url = $statusUri;
|
||||||
$notice->verb = ActivityVerb::POST;
|
$notice->verb = ActivityVerb::POST;
|
||||||
$notice->created = strftime(
|
$notice->object_type = ActivityObject::NOTE;
|
||||||
|
$notice->created = strftime(
|
||||||
'%Y-%m-%d %H:%M:%S',
|
'%Y-%m-%d %H:%M:%S',
|
||||||
strtotime($status->created_at)
|
strtotime($status->created_at)
|
||||||
);
|
);
|
||||||
|
|
||||||
$notice->source = 'twitter';
|
$notice->source = 'twitter';
|
||||||
|
|
||||||
$notice->reply_to = null;
|
$notice->reply_to = null;
|
||||||
|
|
||||||
$replyTo = twitter_id($status, 'in_reply_to_status_id');
|
$replyTo = twitter_id($status, 'in_reply_to_status_id');
|
||||||
if (!empty($replyTo)) {
|
if (!empty($replyTo)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user