sforkowany z mirror/friendica
Issue 8860: Activities weren't fetchable all the time
rodzic
52b2f67644
commit
63dc6950d4
|
@ -57,7 +57,7 @@ class Objects extends BaseModule
|
||||||
['order' => ['origin' => true]]
|
['order' => ['origin' => true]]
|
||||||
);
|
);
|
||||||
// Valid items are original post or posted from this node (including in the case of a forum)
|
// Valid items are original post or posted from this node (including in the case of a forum)
|
||||||
if (!DBA::isResult($item) || !$item['origin'] && !strstr($item['author-link'], DI::baseUrl()->get())) {
|
if (!DBA::isResult($item) || !$item['origin'] && (parse_url($item['author-link'], PHP_URL_HOST) != parse_url(DI::baseUrl()->get(), PHP_URL_HOST))) {
|
||||||
throw new HTTPException\NotFoundException();
|
throw new HTTPException\NotFoundException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -834,7 +834,7 @@ class Transmitter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$data = ActivityPub\Transmitter::createActivityFromItem($item_id);
|
$data = self::createActivityFromItem($item_id);
|
||||||
|
|
||||||
DI::cache()->set($cachekey, $data, Duration::QUARTER_HOUR);
|
DI::cache()->set($cachekey, $data, Duration::QUARTER_HOUR);
|
||||||
return $data;
|
return $data;
|
||||||
|
@ -873,8 +873,21 @@ class Transmitter
|
||||||
$conversation = DBA::selectFirst('conversation', ['source'], $condition);
|
$conversation = DBA::selectFirst('conversation', ['source'], $condition);
|
||||||
if (DBA::isResult($conversation)) {
|
if (DBA::isResult($conversation)) {
|
||||||
$data = json_decode($conversation['source'], true);
|
$data = json_decode($conversation['source'], true);
|
||||||
if (!empty($data)) {
|
if (!empty($data['type'])) {
|
||||||
|
if (in_array($data['type'], ['Create', 'Update'])) {
|
||||||
|
if ($object_mode) {
|
||||||
|
unset($data['@context']);
|
||||||
|
unset($data['signature']);
|
||||||
|
}
|
||||||
return $data;
|
return $data;
|
||||||
|
} elseif (in_array('as:' . $data['type'], Receiver::CONTENT_TYPES)) {
|
||||||
|
if (!empty($data['@context'])) {
|
||||||
|
$context = $data['@context'];
|
||||||
|
unset($data['@context']);
|
||||||
|
}
|
||||||
|
unset($data['actor']);
|
||||||
|
$object = $data;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -882,7 +895,7 @@ class Transmitter
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$object_mode) {
|
if (!$object_mode) {
|
||||||
$data = ['@context' => ActivityPub::CONTEXT];
|
$data = ['@context' => $context ?? ActivityPub::CONTEXT];
|
||||||
|
|
||||||
if ($item['deleted'] && ($item['gravity'] == GRAVITY_ACTIVITY)) {
|
if ($item['deleted'] && ($item['gravity'] == GRAVITY_ACTIVITY)) {
|
||||||
$type = 'Undo';
|
$type = 'Undo';
|
||||||
|
@ -909,7 +922,7 @@ class Transmitter
|
||||||
$data = array_merge($data, self::createPermissionBlockForItem($item, false));
|
$data = array_merge($data, self::createPermissionBlockForItem($item, false));
|
||||||
|
|
||||||
if (in_array($data['type'], ['Create', 'Update', 'Delete'])) {
|
if (in_array($data['type'], ['Create', 'Update', 'Delete'])) {
|
||||||
$data['object'] = self::createNote($item);
|
$data['object'] = $object ?? self::createNote($item);
|
||||||
} elseif ($data['type'] == 'Add') {
|
} elseif ($data['type'] == 'Add') {
|
||||||
$data = self::createAddTag($item, $data);
|
$data = self::createAddTag($item, $data);
|
||||||
} elseif ($data['type'] == 'Announce') {
|
} elseif ($data['type'] == 'Announce') {
|
||||||
|
|
Ładowanie…
Reference in New Issue