diff options
| author | 2025-08-06 12:32:16 +0200 | |
|---|---|---|
| committer | 2025-08-06 12:32:16 +0200 | |
| commit | 9faf2c1fa3c8c3ed82ff4c95733a018d0f9977a7 (patch) | |
| tree | a10cf05bbd4d0bc7ea58b13c56ab4904f74f6464 | |
| parent | b7a39976f91612cdd5451599cfcb6e3a845f653f (diff) | |
GReader API: fix incorrect favicon URL (#7792)
* GReader API: fix incorrect favicon URL
* Fix compatibility with custom favicons
---------
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
| -rw-r--r-- | app/Models/Feed.php | 4 | ||||
| -rw-r--r-- | p/api/greader.php | 6 |
2 files changed, 5 insertions, 5 deletions
diff --git a/app/Models/Feed.php b/app/Models/Feed.php index 2b442561e..48a1d108f 100644 --- a/app/Models/Feed.php +++ b/app/Models/Feed.php @@ -438,7 +438,7 @@ class FreshRSS_Feed extends Minz_Model { @unlink($path . '.ico'); @unlink($path . '.txt'); } - public function favicon(): string { + public function favicon(bool $absolute = false): string { $hash = $this->hashFavicon(); $url = '/f.php?h=' . $hash; if ($this->customFavicon() @@ -446,7 +446,7 @@ class FreshRSS_Feed extends Minz_Model { && !$this->attributeBoolean('customFaviconDisallowDel')) { $url .= '&t=' . @filemtime(DATA_PATH . '/favicons/' . $hash . '.ico'); } - return Minz_Url::display($url); + return Minz_Url::display($url, absolute: $absolute); } public function _id(int $value): void { diff --git a/p/api/greader.php b/p/api/greader.php index cefefbb23..311f17a7c 100644 --- a/p/api/greader.php +++ b/p/api/greader.php @@ -332,8 +332,6 @@ final class GReaderAPI { self::internalServerError(); } header('Content-Type: application/json; charset=UTF-8'); - $faviconsUrl = Minz_Url::display('/f.php?', '', true); - $faviconsUrl = str_replace('/api/greader.php/reader/api/0/subscription', '', $faviconsUrl); //Security if base_url is not set properly $subscriptions = []; $categoryDAO = FreshRSS_Factory::createCategoryDao(); @@ -352,7 +350,9 @@ final class GReaderAPI { //'firstitemmsec' => 0, 'url' => htmlspecialchars_decode($feed->url(), ENT_QUOTES), 'htmlUrl' => htmlspecialchars_decode($feed->website(), ENT_QUOTES), - 'iconUrl' => $faviconsUrl . $feed->hashFavicon(), + 'iconUrl' => str_replace( + '/api/greader.php/reader/api/0/subscription', '', // Security if base_url is not set properly + $feed->favicon(absolute: true)), ]; } } |
