Merge pull request #8456 from annando/fix-ap
Fix: Fetching content via the "objects" endpoint behaved wrong
This commit is contained in:
commit
8a4a65f418
|
@ -49,17 +49,19 @@ class Objects extends BaseModule
|
|||
|
||||
// At first we try the original post with that guid
|
||||
// @TODO: Replace with parameter from router
|
||||
$item = Item::selectFirst(['id'], ['guid' => $a->argv[1], 'origin' => true, 'private' => [item::PRIVATE, Item::UNLISTED]]);
|
||||
$item = Item::selectFirst(['id'], ['guid' => $a->argv[1], 'origin' => true, 'private' => [item::PUBLIC, Item::UNLISTED]]);
|
||||
if (!DBA::isResult($item)) {
|
||||
// If no original post could be found, it could possibly be a forum post, there we remove the "origin" field.
|
||||
// @TODO: Replace with parameter from router
|
||||
$item = Item::selectFirst(['id', 'author-link'], ['guid' => $a->argv[1], 'private' => [item::PRIVATE, Item::UNLISTED]]);
|
||||
$item = Item::selectFirst(['id', 'author-link'], ['guid' => $a->argv[1], 'private' => [item::PUBLIC, Item::UNLISTED]]);
|
||||
if (!DBA::isResult($item) || !strstr($item['author-link'], DI::baseUrl()->get())) {
|
||||
throw new \Friendica\Network\HTTPException\NotFoundException();
|
||||
}
|
||||
}
|
||||
|
||||
$activity = ActivityPub\Transmitter::createActivityFromItem($item['id'], true);
|
||||
$activity['type'] = $activity['type'] == 'Update' ? 'Create' : $activity['type'];
|
||||
|
||||
// Only display "Create" activity objects here, no reshares or anything else
|
||||
if (!is_array($activity['object']) || ($activity['type'] != 'Create')) {
|
||||
throw new \Friendica\Network\HTTPException\NotFoundException();
|
||||
|
|
|
@ -193,6 +193,8 @@ class Transmitter
|
|||
$items = Item::select(['id'], $condition, ['limit' => [($page - 1) * 20, 20], 'order' => ['created' => true]]);
|
||||
while ($item = Item::fetch($items)) {
|
||||
$activity = self::createActivityFromItem($item['id'], true);
|
||||
$activity['type'] = $activity['type'] == 'Update' ? 'Create' : $activity['type'];
|
||||
|
||||
// Only list "Create" activity objects here, no reshares
|
||||
if (is_array($activity['object']) && ($activity['type'] == 'Create')) {
|
||||
$list[] = $activity['object'];
|
||||
|
|
Loading…
Reference in a new issue