From 23100a86b9f5e84cda147a7300744a4425709aa1 Mon Sep 17 00:00:00 2001 From: Maxence Lange Date: Wed, 14 Jun 2023 00:34:07 -0100 Subject: fix notification and update details on unreblog Signed-off-by: Maxence Lange --- lib/Interfaces/Object/AnnounceInterface.php | 42 ++++++++++++++--------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/lib/Interfaces/Object/AnnounceInterface.php b/lib/Interfaces/Object/AnnounceInterface.php index 1f18fe52..fb8a228e 100644 --- a/lib/Interfaces/Object/AnnounceInterface.php +++ b/lib/Interfaces/Object/AnnounceInterface.php @@ -136,7 +136,6 @@ class AnnounceInterface extends AbstractActivityPubInterface implements IActivit $activity->checkOrigin($announce->getId()); $activity->checkOrigin($announce->getActorId()); - $this->undoAnnounceAction($announce); $this->delete($announce); } } @@ -161,30 +160,20 @@ class AnnounceInterface extends AbstractActivityPubInterface implements IActivit */ public function save(ACore $item): void { /** @var Announce $item */ + if ($item->hasActor()) { + $actor = $item->getActor(); + } else { + $actor = $this->cacheActorService->getFromId($item->getActorId()); + } try { $knownItem = $this->streamRequest->getStreamByObjectId($item->getObjectId(), Announce::TYPE); - if ($item->hasActor()) { - $actor = $item->getActor(); - } else { - $actor = $this->cacheActorService->getFromId($item->getActorId()); - } - $knownItem->setAttributedTo($actor->getId()); if (!$knownItem->hasCc($actor->getFollowers())) { $knownItem->addCc($actor->getFollowers()); $this->streamRequest->update($knownItem, true); } - - try { - $post = $this->streamRequest->getStreamById($item->getObjectId(), false, ACore::FORMAT_LOCAL); - } catch (StreamNotFoundException $e) { - return; // should not happen. - } - - $this->updateDetails($post); - $this->generateNotification($post, $actor); } catch (StreamNotFoundException $e) { $objectId = $item->getObjectId(); $item->addCacheItem($objectId); @@ -195,6 +184,15 @@ class AnnounceInterface extends AbstractActivityPubInterface implements IActivit $item->getRequestToken(), StreamQueue::TYPE_CACHE, $item->getId() ); } + + try { + $post = $this->streamRequest->getStreamById($item->getObjectId(), false, ACore::FORMAT_LOCAL); + } catch (StreamNotFoundException $e) { + return; // should not happen. + } + + $this->updateDetails($post); + $this->generateNotification($post, $actor); } @@ -230,6 +228,8 @@ class AnnounceInterface extends AbstractActivityPubInterface implements IActivit } } catch (StreamNotFoundException|ItemUnknownException|SocialAppConfigException $e) { } + + $this->undoAnnounceAction($item); } public function event(ACore $item, string $source): void { @@ -247,10 +247,10 @@ class AnnounceInterface extends AbstractActivityPubInterface implements IActivit } // - // - // - // - // + // + // + // + // // pourquoi update !???? // $to = $this->get('attributedTo', $cachedItem->getObject(), ''); @@ -279,7 +279,7 @@ class AnnounceInterface extends AbstractActivityPubInterface implements IActivit } } - private function undoAnnounceAction(Announce $announce): void { + private function undoAnnounceAction(ACore $announce): void { try { $this->actionsRequest->getActionFromItem($announce); $this->actionsRequest->delete($announce); -- cgit v1.2.3 From 9212ead049e4a69ee265faa7cb439aa2c340b2fb Mon Sep 17 00:00:00 2001 From: Maxence Lange Date: Wed, 14 Jun 2023 08:42:46 -0100 Subject: cleaning Signed-off-by: Maxence Lange --- lib/Interfaces/Object/AnnounceInterface.php | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/lib/Interfaces/Object/AnnounceInterface.php b/lib/Interfaces/Object/AnnounceInterface.php index fb8a228e..e27ad929 100644 --- a/lib/Interfaces/Object/AnnounceInterface.php +++ b/lib/Interfaces/Object/AnnounceInterface.php @@ -246,18 +246,6 @@ class AnnounceInterface extends AbstractActivityPubInterface implements IActivit return; } - // - // - // - // - // - // pourquoi update !???? - -// $to = $this->get('attributedTo', $cachedItem->getObject(), ''); -// if ($to !== '') { -// $this->streamRequest->updateAttributedTo($item->getId(), $to); -// } - try { if ($item->hasActor()) { $actor = $item->getActor(); -- cgit v1.2.3