From 2ca696c1cfd533d99e914744112f0350757b052e Mon Sep 17 00:00:00 2001 From: Anton Smirnov Date: Mon, 4 Aug 2025 00:59:42 +0300 Subject: [PATCH] [EpicGamesFreeBridge] productSlug can be null; also add a universal future-proof-ish fallback (#4595) * productSlug can be null, do more discovery, add fallback * productSlug can be garbage too, remove it completely --- bridges/EpicGamesFreeBridge.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/bridges/EpicGamesFreeBridge.php b/bridges/EpicGamesFreeBridge.php index 3b16cd5b..6944ae2e 100644 --- a/bridges/EpicGamesFreeBridge.php +++ b/bridges/EpicGamesFreeBridge.php @@ -59,13 +59,20 @@ class EpicGamesFreeBridge extends BridgeAbstract ) { continue; } + $slug = $element['catalogNs']['mappings'][0]['pageSlug'] ?? null; + if ($slug !== null) { + $uri = parent::getURI() . $this->getInput('locale') . '/p/' . $slug; + } else { + // slug not found, show the root promos page + $uri = parent::getURI() . $this->getInput('locale') . '/free-games'; + } $item = [ 'author' => $element['seller']['name'], 'content' => $element['description'], 'enclosures' => array_map(fn($item) => $item['url'], $element['keyImages']), 'timestamp' => strtotime($promo['startDate']), 'title' => $element['title'], - 'uri' => parent::getURI() . $this->getInput('locale') . '/p/' . $element['productSlug'], + 'uri' => $uri, ]; $this->items[] = $item; }