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