summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaxence Lange <maxence@artificial-owl.com>2023-06-09 11:49:37 -0100
committerMaxence Lange <maxence@artificial-owl.com>2023-06-12 09:26:23 -0100
commit737ec9549f896514fcd5af9531795e2399e0db6a (patch)
treed2a43ca6f8a59522ce52c9b3a466da7b56322f9d
parent5dab79c24c82cde8923e3db63b2bfafa76b59d18 (diff)
fill status.actor.avatar
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
-rw-r--r--lib/Db/SocialCrossQueryBuilder.php16
-rw-r--r--lib/Db/StreamRequest.php1
-rw-r--r--lib/Db/StreamRequestBuilder.php5
-rw-r--r--lib/Model/ActivityPub/ACore.php4
-rw-r--r--lib/Model/ActivityPub/Stream.php10
5 files changed, 21 insertions, 15 deletions
diff --git a/lib/Db/SocialCrossQueryBuilder.php b/lib/Db/SocialCrossQueryBuilder.php
index 41e33fb9..ae9e3291 100644
--- a/lib/Db/SocialCrossQueryBuilder.php
+++ b/lib/Db/SocialCrossQueryBuilder.php
@@ -141,7 +141,11 @@ class SocialCrossQueryBuilder extends SocialCoreQueryBuilder {
* @return Stream
* @throws InvalidResourceException
*/
- public function parseLeftJoinStream(array $data, string $prefix = ''): Stream {
+ public function parseLeftJoinStream(
+ array $data,
+ string $prefix = '',
+ ?SocialQueryBuilder $qb = null
+ ): Stream {
$new = [];
foreach ($data as $k => $v) {
if (str_starts_with($k, $prefix)) {
@@ -151,11 +155,12 @@ class SocialCrossQueryBuilder extends SocialCoreQueryBuilder {
$stream = new Stream();
$stream->importFromDatabase($new);
+ $stream->setExportFormat($qb?->getFormat() ?? 0);
if ($stream->getId() === '') {
throw new InvalidResourceException();
}
- $actor = $this->parseLeftJoinCacheActors($data, $prefix . 'cacheactor_');
+ $actor = $this->parseLeftJoinCacheActors($data, $prefix . 'cacheactor_', $qb);
$stream->setActor($actor);
return $stream;
@@ -168,7 +173,11 @@ class SocialCrossQueryBuilder extends SocialCoreQueryBuilder {
* @return Person
* @throws InvalidResourceException
*/
- public function parseLeftJoinCacheActors(array $data, string $prefix = ''): Person {
+ public function parseLeftJoinCacheActors(
+ array $data,
+ string $prefix = '',
+ ?SocialQueryBuilder $qb = null
+ ): Person {
$new = [];
foreach ($data as $k => $v) {
@@ -179,6 +188,7 @@ class SocialCrossQueryBuilder extends SocialCoreQueryBuilder {
$actor = new Person();
$actor->importFromDatabase($new);
+ $actor->setExportFormat($qb?->getFormat() ?? 0);
if (!AP::$activityPub->isActor($actor)) {
throw new InvalidResourceException();
diff --git a/lib/Db/StreamRequest.php b/lib/Db/StreamRequest.php
index bd29ba6b..a5f38dcf 100644
--- a/lib/Db/StreamRequest.php
+++ b/lib/Db/StreamRequest.php
@@ -586,6 +586,7 @@ class StreamRequest extends StreamRequestBuilder {
$qb->limitToDest($actor->getId(), 'notif', '', 'sd');
$qb->linkToCacheActors('ca', 's.attributed_to_prim');
$qb->leftJoinStreamAction();
+ $qb->leftJoinObjectStatus();
return $this->getStreamsFromRequest($qb);
}
diff --git a/lib/Db/StreamRequestBuilder.php b/lib/Db/StreamRequestBuilder.php
index 620c07c8..4d4e9077 100644
--- a/lib/Db/StreamRequestBuilder.php
+++ b/lib/Db/StreamRequestBuilder.php
@@ -217,7 +217,7 @@ class StreamRequestBuilder extends CoreRequestBuilder {
}
try {
- $actor = $qb->parseLeftJoinCacheActors($data, 'cacheactor_');
+ $actor = $qb->parseLeftJoinCacheActors($data, 'cacheactor_', $qb);
$actor->setExportFormat($qb->getFormat());
$item->setCompleteDetails(true);
$item->setActor($actor);
@@ -225,7 +225,8 @@ class StreamRequestBuilder extends CoreRequestBuilder {
}
try {
- $object = $qb->parseLeftJoinStream($data, 'objectstream_');
+ $object = $qb->parseLeftJoinStream($data, 'objectstream_', $qb);
+ $object->setExportFormat($qb->getFormat());
$item->setObject($object);
} catch (InvalidResourceException $e) {
}
diff --git a/lib/Model/ActivityPub/ACore.php b/lib/Model/ActivityPub/ACore.php
index da06209a..63fc65cb 100644
--- a/lib/Model/ActivityPub/ACore.php
+++ b/lib/Model/ActivityPub/ACore.php
@@ -652,7 +652,9 @@ class ACore extends Item implements JsonSerializable, IQueryRow {
* @return $this
*/
public function setExportFormat(int $format): self {
- $this->format = $format;
+ if ($format > 0) {
+ $this->format = $format;
+ }
return $this;
}
diff --git a/lib/Model/ActivityPub/Stream.php b/lib/Model/ActivityPub/Stream.php
index d4df8866..03714965 100644
--- a/lib/Model/ActivityPub/Stream.php
+++ b/lib/Model/ActivityPub/Stream.php
@@ -684,19 +684,11 @@ class Stream extends ACore implements IQueryRow, JsonSerializable {
$type = '';
}
- $status = null;
- $statusPost = $this->getDetails('post');
- if (sizeof($statusPost) > 0) {
- $status = new Stream();
- $status->importFromLocal($statusPost);
- $status->setExportFormat(self::FORMAT_LOCAL);
- }
-
$result = [
'id' => (string)$this->getNid(),
'type' => $type,
'created_at' => date('Y-m-d\TH:i:s', $this->getPublishedTime()) . '.000Z',
- 'status' => $status,
+ 'status' => $this->getObject(),
];
if ($this->hasActor()) {