aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2024-11-21 08:22:13 +0100
committerGravatar GitHub <noreply@github.com> 2024-11-21 08:22:13 +0100
commit278181572e56283827aac10a66bb554f4b57b0a1 (patch)
tree2e36cf9ff87a4af78536527224db46e5b4d35f10
parent0f4bcdad9b3bde1cf7724069e774eff198a7169c (diff)
Add extension hook simplepie_after_init (#7007)
* Add extension hook simplepie_after_init fix https://github.com/FreshRSS/FreshRSS/issues/7006 * Add documentation note * fix doc get_headers * Syntax void * Forgotten code
-rw-r--r--app/Models/Feed.php1
-rw-r--r--docs/en/developers/03_Backend/05_Extensions.md5
-rw-r--r--docs/fr/developers/03_Backend/05_Extensions.md6
-rw-r--r--lib/Minz/ExtensionManager.php10
4 files changed, 16 insertions, 6 deletions
diff --git a/app/Models/Feed.php b/app/Models/Feed.php
index 03c7cdd74..2aa0baa9d 100644
--- a/app/Models/Feed.php
+++ b/app/Models/Feed.php
@@ -372,6 +372,7 @@ class FreshRSS_Feed extends Minz_Model {
}
Minz_ExtensionManager::callHook('simplepie_before_init', $simplePie, $this);
$simplePieResult = $simplePie->init();
+ Minz_ExtensionManager::callHook('simplepie_after_init', $simplePie, $this, $simplePieResult);
if ($simplePieResult === false || $simplePie->get_hash() === '' || !empty($simplePie->error())) {
$errorMessage = $simplePie->error();
diff --git a/docs/en/developers/03_Backend/05_Extensions.md b/docs/en/developers/03_Backend/05_Extensions.md
index f83d8eef7..2a4c4dcf0 100644
--- a/docs/en/developers/03_Backend/05_Extensions.md
+++ b/docs/en/developers/03_Backend/05_Extensions.md
@@ -178,7 +178,10 @@ The following events are available:
* `nav_menu` (`function() -> string`): will be executed if the navigation was built.
* `nav_reading_modes` (`function($reading_modes) -> array | null`): **TODO** add documentation.
* `post_update` (`function(none) -> none`): **TODO** add documentation.
-* `simplepie_before_init` (`function($simplePie, $feed) -> none`): **TODO** add documentation.
+* `simplepie_after_init` (`function(\SimplePie\SimplePie $simplePie, FreshRSS_Feed $feed, bool $result): void`): Triggered after fetching an RSS/Atom feed with SimplePie. Useful for instance to get the HTTP response headers (e.g. `$simplePie->data['headers']`).
+* `simplepie_before_init` (`function(\SimplePie\SimplePie $simplePie, FreshRSS_Feed $feed): void`): Triggered before fetching an RSS/Atom feed with SimplePie.
+
+> ℹ️ Note: the `simplepie_*` hooks are only fired for feeds using SimplePie via pull, i.e. normal RSS/Atom feeds. This excludes WebSub (push), and the various HTML or JSON Web scraping methods.
### Injecting CDN content
diff --git a/docs/fr/developers/03_Backend/05_Extensions.md b/docs/fr/developers/03_Backend/05_Extensions.md
index 8d2866f26..af6c7911a 100644
--- a/docs/fr/developers/03_Backend/05_Extensions.md
+++ b/docs/fr/developers/03_Backend/05_Extensions.md
@@ -257,8 +257,10 @@ The following events are available:
* `nav_reading_modes` (`function($reading_modes) -> array | null`): **TODO**
add documentation
* `post_update` (`function(none) -> none`): **TODO** add documentation
-* `simplepie_before_init` (`function($simplePie, $feed) -> none`): **TODO**
- add documentation
+* `simplepie_after_init` (`function(\SimplePie\SimplePie $simplePie, FreshRSS_Feed $feed, bool $result): void`): Triggered after fetching an RSS/Atom feed with SimplePie. Useful for instance to get the HTTP response headers (e.g. `$simplePie->data['headers']`).
+* `simplepie_before_init` (`function(\SimplePie\SimplePie $simplePie, FreshRSS_Feed $feed): void`): Triggered before fetching an RSS/Atom feed with SimplePie.
+
+> ℹ️ Note: the `simplepie_*` hooks are only fired for feeds using SimplePie via pull, i.e. normal RSS/Atom feeds. This excludes WebSub (push), and the various HTML or JSON Web scraping methods.
### Writing your own configure.phtml
diff --git a/lib/Minz/ExtensionManager.php b/lib/Minz/ExtensionManager.php
index b3756372e..976dddb82 100644
--- a/lib/Minz/ExtensionManager.php
+++ b/lib/Minz/ExtensionManager.php
@@ -90,10 +90,14 @@ final class Minz_ExtensionManager {
'list' => array(),
'signature' => 'NoneToNone',
),
- 'simplepie_before_init' => array( // function($simplePie, $feed) -> none
- 'list' => array(),
+ 'simplepie_after_init' => [ // function(\SimplePie\SimplePie $simplePie, FreshRSS_Feed $feed, bool $result): void
+ 'list' => [],
'signature' => 'PassArguments',
- ),
+ ],
+ 'simplepie_before_init' => [ // function(\SimplePie\SimplePie $simplePie, FreshRSS_Feed $feed): void
+ 'list' => [],
+ 'signature' => 'PassArguments',
+ ],
];
/** Remove extensions and hooks from a previous initialisation */