]> git.mxchange.org Git - friendica.git/commitdiff
create event for avatar_lookup hook
authorArt4 <art4@wlabs.de>
Fri, 14 Mar 2025 13:31:11 +0000 (13:31 +0000)
committerArt4 <art4@wlabs.de>
Fri, 14 Mar 2025 13:31:11 +0000 (13:31 +0000)
src/Core/Hooks/HookEventBridge.php
src/Event/ArrayFilterEvent.php
src/Model/Contact.php
src/Util/Network.php
tests/Unit/Core/Hooks/HookEventBridgeTest.php
tests/Unit/Event/ArrayFilterEventTest.php

index 6f61c58c728787ff4f128f3c15aebde816f99e81..cc2e8be2256006f4522e030551418a5aa67620f3 100644 (file)
@@ -68,6 +68,7 @@ final class HookEventBridge
                ArrayFilterEvent::REVOKE_FOLLOW_CONTACT           => 'revoke_follow',
                ArrayFilterEvent::BLOCK_CONTACT                   => 'block',
                ArrayFilterEvent::UNBLOCK_CONTACT                 => 'unblock',
+               ArrayFilterEvent::AVATAR_LOOKUP                   => 'avatar_lookup',
                ArrayFilterEvent::ADD_WORKER_TASK                 => 'proc_run',
                ArrayFilterEvent::STORAGE_CONFIG                  => 'storage_config',
                ArrayFilterEvent::STORAGE_INSTANCE                => 'storage_instance',
@@ -121,6 +122,7 @@ final class HookEventBridge
                        ArrayFilterEvent::REVOKE_FOLLOW_CONTACT           => 'onArrayFilterEvent',
                        ArrayFilterEvent::BLOCK_CONTACT                   => 'onArrayFilterEvent',
                        ArrayFilterEvent::UNBLOCK_CONTACT                 => 'onArrayFilterEvent',
+                       ArrayFilterEvent::AVATAR_LOOKUP                   => 'onArrayFilterEvent',
                        ArrayFilterEvent::ADD_WORKER_TASK                 => 'onArrayFilterEvent',
                        ArrayFilterEvent::STORAGE_CONFIG                  => 'onArrayFilterEvent',
                        ArrayFilterEvent::STORAGE_INSTANCE                => 'onArrayFilterEvent',
index 056cdec470e27d6d44982f90ee1f7f5e6e4e2dda..ac72f3d29a8e0f203fbcfd13a8eddbe27ae4f015 100644 (file)
@@ -74,6 +74,8 @@ final class ArrayFilterEvent extends Event
 
        public const UNBLOCK_CONTACT = 'friendica.data.unblock_contact';
 
+       public const AVATAR_LOOKUP = 'friendica.data.avatar_lookup';
+
        public const ADD_WORKER_TASK = 'friendica.data.add_worker_task';
 
        public const STORAGE_CONFIG = 'friendica.data.storage_config';
index 845c8be4eeb38e25c5a9ae664be12a77cb8801e0..4684317e7696617f98a94dcae80ebfb1c5e97cb6 100644 (file)
@@ -14,7 +14,6 @@ use Friendica\Contact\Introduction\Exception\IntroductionNotFoundException;
 use Friendica\Content\Conversation as ConversationContent;
 use Friendica\Content\Pager;
 use Friendica\Content\Text\HTML;
-use Friendica\Core\Hook;
 use Friendica\Core\Protocol;
 use Friendica\Core\Renderer;
 use Friendica\Core\System;
@@ -2205,7 +2204,11 @@ class Contact
                $avatar['url']     = '';
                $avatar['success'] = false;
 
-               Hook::callAll('avatar_lookup', $avatar);
+               $eventDispatcher = DI::eventDispatcher();
+
+               $avatar = $eventDispatcher->dispatch(
+                       new ArrayFilterEvent(ArrayFilterEvent::AVATAR_LOOKUP, $avatar),
+               )->getArray();
 
                if ($avatar['success'] && !empty($avatar['url'])) {
                        return $avatar['url'];
index 1584faea3f2805912e38a2cb11ee2405e71d327a..2172c5a17742940352ce79180066577fe7c1a0c9 100644 (file)
@@ -7,8 +7,8 @@
 
 namespace Friendica\Util;
 
-use Friendica\Core\Hook;
 use Friendica\DI;
+use Friendica\Event\ArrayFilterEvent;
 use Friendica\Model\Contact;
 use Friendica\Network\HTTPClient\Client\HttpClientAccept;
 use Friendica\Network\HTTPClient\Client\HttpClientOptions;
@@ -302,7 +302,11 @@ class Network
                $avatar['url']     = '';
                $avatar['success'] = false;
 
-               Hook::callAll('avatar_lookup', $avatar);
+               $eventDispatcher = DI::eventDispatcher();
+
+               $avatar = $eventDispatcher->dispatch(
+                       new ArrayFilterEvent(ArrayFilterEvent::AVATAR_LOOKUP, $avatar),
+               )->getArray();
 
                if (! $avatar['success']) {
                        $avatar['url'] = DI::baseUrl() . Contact::DEFAULT_AVATAR_PHOTO;
index 949401f364b04c907fd20fb305abe57ee8646eba..77e0b1ecfca45d489134b9b0fac36e808c38545b 100644 (file)
@@ -57,6 +57,7 @@ class HookEventBridgeTest extends TestCase
                        ArrayFilterEvent::REVOKE_FOLLOW_CONTACT           => 'onArrayFilterEvent',
                        ArrayFilterEvent::BLOCK_CONTACT                   => 'onArrayFilterEvent',
                        ArrayFilterEvent::UNBLOCK_CONTACT                 => 'onArrayFilterEvent',
+                       ArrayFilterEvent::AVATAR_LOOKUP                   => 'onArrayFilterEvent',
                        ArrayFilterEvent::ADD_WORKER_TASK                 => 'onArrayFilterEvent',
                        ArrayFilterEvent::STORAGE_CONFIG                  => 'onArrayFilterEvent',
                        ArrayFilterEvent::STORAGE_INSTANCE                => 'onArrayFilterEvent',
@@ -295,6 +296,7 @@ class HookEventBridgeTest extends TestCase
                        [ArrayFilterEvent::REVOKE_FOLLOW_CONTACT, 'revoke_follow'],
                        [ArrayFilterEvent::BLOCK_CONTACT, 'block'],
                        [ArrayFilterEvent::UNBLOCK_CONTACT, 'unblock'],
+                       [ArrayFilterEvent::AVATAR_LOOKUP, 'avatar_lookup'],
                        [ArrayFilterEvent::ADD_WORKER_TASK, 'proc_run'],
                        [ArrayFilterEvent::STORAGE_CONFIG, 'storage_config'],
                        [ArrayFilterEvent::STORAGE_INSTANCE, 'storage_instance'],
index 2e539e290e14d094978843b3dc2ddd1ab0e7cd98..0e0c14721679da6468a3cd8385be9f3301098967 100644 (file)
@@ -54,6 +54,7 @@ class ArrayFilterEventTest extends TestCase
                        [ArrayFilterEvent::REVOKE_FOLLOW_CONTACT, 'friendica.data.revoke_follow_contact'],
                        [ArrayFilterEvent::BLOCK_CONTACT, 'friendica.data.block_contact'],
                        [ArrayFilterEvent::UNBLOCK_CONTACT, 'friendica.data.unblock_contact'],
+                       [ArrayFilterEvent::AVATAR_LOOKUP, 'friendica.data.avatar_lookup'],
                        [ArrayFilterEvent::ADD_WORKER_TASK, 'friendica.data.add_worker_task'],
                        [ArrayFilterEvent::STORAGE_CONFIG, 'friendica.data.storage_config'],
                        [ArrayFilterEvent::STORAGE_INSTANCE, 'friendica.data.storage_instance'],