From 00eb14532015815b67a1bc3a34d0b6449e2a27f1 Mon Sep 17 00:00:00 2001 From: Anton Smirnov Date: Fri, 20 Jun 2025 15:50:16 +0300 Subject: [PATCH] productSlug can be null, do more discovery, add fallback --- bridges/EpicGamesFreeBridge.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/bridges/EpicGamesFreeBridge.php b/bridges/EpicGamesFreeBridge.php index 3b16cd5b..cb057978 100644 --- a/bridges/EpicGamesFreeBridge.php +++ b/bridges/EpicGamesFreeBridge.php @@ -59,13 +59,20 @@ class EpicGamesFreeBridge extends BridgeAbstract ) { continue; } + $slug = $element['productSlug'] ?? $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; }