Create event for put_item_in_cache hook

This commit is contained in:
Art4 2025-03-17 09:40:27 +00:00
parent 4a1a1d3ca3
commit 2276bdcd7e
5 changed files with 19 additions and 2 deletions

View file

@ -57,6 +57,7 @@ final class HookEventBridge
ArrayFilterEvent::CONVERSATION_START => 'conversation_start', ArrayFilterEvent::CONVERSATION_START => 'conversation_start',
ArrayFilterEvent::ITEM_TAGGED => 'tagged', ArrayFilterEvent::ITEM_TAGGED => 'tagged',
ArrayFilterEvent::DISPLAY_ITEM => 'display_item', ArrayFilterEvent::DISPLAY_ITEM => 'display_item',
ArrayFilterEvent::CACHE_ITEM => 'put_item_in_cache',
ArrayFilterEvent::DETECT_LANGUAGES => 'detect_languages', ArrayFilterEvent::DETECT_LANGUAGES => 'detect_languages',
ArrayFilterEvent::RENDER_LOCATION => 'render_location', ArrayFilterEvent::RENDER_LOCATION => 'render_location',
ArrayFilterEvent::ITEM_PHOTO_MENU => 'item_photo_menu', ArrayFilterEvent::ITEM_PHOTO_MENU => 'item_photo_menu',
@ -121,6 +122,7 @@ final class HookEventBridge
ArrayFilterEvent::CONVERSATION_START => 'onArrayFilterEvent', ArrayFilterEvent::CONVERSATION_START => 'onArrayFilterEvent',
ArrayFilterEvent::ITEM_TAGGED => 'onArrayFilterEvent', ArrayFilterEvent::ITEM_TAGGED => 'onArrayFilterEvent',
ArrayFilterEvent::DISPLAY_ITEM => 'onArrayFilterEvent', ArrayFilterEvent::DISPLAY_ITEM => 'onArrayFilterEvent',
ArrayFilterEvent::CACHE_ITEM => 'onArrayFilterEvent',
ArrayFilterEvent::DETECT_LANGUAGES => 'onArrayFilterEvent', ArrayFilterEvent::DETECT_LANGUAGES => 'onArrayFilterEvent',
ArrayFilterEvent::RENDER_LOCATION => 'onArrayFilterEvent', ArrayFilterEvent::RENDER_LOCATION => 'onArrayFilterEvent',
ArrayFilterEvent::ITEM_PHOTO_MENU => 'onArrayFilterEvent', ArrayFilterEvent::ITEM_PHOTO_MENU => 'onArrayFilterEvent',

View file

@ -64,6 +64,8 @@ final class ArrayFilterEvent extends Event
public const DISPLAY_ITEM = 'friendica.data.display_item'; public const DISPLAY_ITEM = 'friendica.data.display_item';
public const CACHE_ITEM = 'friendica.data.cache_item';
public const DETECT_LANGUAGES = 'friendica.data.detect_languages'; public const DETECT_LANGUAGES = 'friendica.data.detect_languages';
public const RENDER_LOCATION = 'friendica.data.render_location'; public const RENDER_LOCATION = 'friendica.data.render_location';

View file

@ -3038,8 +3038,18 @@ class Item
$item['rendered-html'] = BBCode::convertForUriId($item['uri-id'], $item['body']); $item['rendered-html'] = BBCode::convertForUriId($item['uri-id'], $item['body']);
$item['rendered-hash'] = hash('md5', BBCode::VERSION . '::' . $body); $item['rendered-hash'] = hash('md5', BBCode::VERSION . '::' . $body);
$hook_data = ['item' => $item, 'rendered-html' => $item['rendered-html'], 'rendered-hash' => $item['rendered-hash']]; $hook_data = [
Hook::callAll('put_item_in_cache', $hook_data); 'rendered-html' => $item['rendered-html'],
'rendered-hash' => $item['rendered-hash'],
'item' => $item,
];
$eventDispatcher = DI::eventDispatcher();
$hook_data = $eventDispatcher->dispatch(
new ArrayFilterEvent(ArrayFilterEvent::CACHE_ITEM, $hook_data),
)->getArray();
$item['rendered-html'] = $hook_data['rendered-html']; $item['rendered-html'] = $hook_data['rendered-html'];
$item['rendered-hash'] = $hook_data['rendered-hash']; $item['rendered-hash'] = $hook_data['rendered-hash'];
unset($hook_data); unset($hook_data);

View file

@ -46,6 +46,7 @@ class HookEventBridgeTest extends TestCase
ArrayFilterEvent::CONVERSATION_START => 'onArrayFilterEvent', ArrayFilterEvent::CONVERSATION_START => 'onArrayFilterEvent',
ArrayFilterEvent::ITEM_TAGGED => 'onArrayFilterEvent', ArrayFilterEvent::ITEM_TAGGED => 'onArrayFilterEvent',
ArrayFilterEvent::DISPLAY_ITEM => 'onArrayFilterEvent', ArrayFilterEvent::DISPLAY_ITEM => 'onArrayFilterEvent',
ArrayFilterEvent::CACHE_ITEM => 'onArrayFilterEvent',
ArrayFilterEvent::DETECT_LANGUAGES => 'onArrayFilterEvent', ArrayFilterEvent::DETECT_LANGUAGES => 'onArrayFilterEvent',
ArrayFilterEvent::RENDER_LOCATION => 'onArrayFilterEvent', ArrayFilterEvent::RENDER_LOCATION => 'onArrayFilterEvent',
ArrayFilterEvent::ITEM_PHOTO_MENU => 'onArrayFilterEvent', ArrayFilterEvent::ITEM_PHOTO_MENU => 'onArrayFilterEvent',
@ -354,6 +355,7 @@ class HookEventBridgeTest extends TestCase
[ArrayFilterEvent::CONVERSATION_START, 'conversation_start'], [ArrayFilterEvent::CONVERSATION_START, 'conversation_start'],
[ArrayFilterEvent::ITEM_TAGGED, 'tagged'], [ArrayFilterEvent::ITEM_TAGGED, 'tagged'],
[ArrayFilterEvent::DISPLAY_ITEM, 'display_item'], [ArrayFilterEvent::DISPLAY_ITEM, 'display_item'],
[ArrayFilterEvent::CACHE_ITEM, 'put_item_in_cache'],
[ArrayFilterEvent::DETECT_LANGUAGES, 'detect_languages'], [ArrayFilterEvent::DETECT_LANGUAGES, 'detect_languages'],
[ArrayFilterEvent::RENDER_LOCATION, 'render_location'], [ArrayFilterEvent::RENDER_LOCATION, 'render_location'],
[ArrayFilterEvent::ITEM_PHOTO_MENU, 'item_photo_menu'], [ArrayFilterEvent::ITEM_PHOTO_MENU, 'item_photo_menu'],

View file

@ -43,6 +43,7 @@ class ArrayFilterEventTest extends TestCase
[ArrayFilterEvent::CONVERSATION_START, 'friendica.data.conversation_start'], [ArrayFilterEvent::CONVERSATION_START, 'friendica.data.conversation_start'],
[ArrayFilterEvent::ITEM_TAGGED, 'friendica.data.item_tagged'], [ArrayFilterEvent::ITEM_TAGGED, 'friendica.data.item_tagged'],
[ArrayFilterEvent::DISPLAY_ITEM, 'friendica.data.display_item'], [ArrayFilterEvent::DISPLAY_ITEM, 'friendica.data.display_item'],
[ArrayFilterEvent::CACHE_ITEM, 'friendica.data.cache_item'],
[ArrayFilterEvent::DETECT_LANGUAGES, 'friendica.data.detect_languages'], [ArrayFilterEvent::DETECT_LANGUAGES, 'friendica.data.detect_languages'],
[ArrayFilterEvent::RENDER_LOCATION, 'friendica.data.render_location'], [ArrayFilterEvent::RENDER_LOCATION, 'friendica.data.render_location'],
[ArrayFilterEvent::ITEM_PHOTO_MENU, 'friendica.data.item_photo_menu'], [ArrayFilterEvent::ITEM_PHOTO_MENU, 'friendica.data.item_photo_menu'],