From 00eb14532015815b67a1bc3a34d0b6449e2a27f1 Mon Sep 17 00:00:00 2001 From: Anton Smirnov Date: Fri, 20 Jun 2025 15:50:16 +0300 Subject: [PATCH 1/2] 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; } From 5752e01b5edeb707aca783f315b2206db2e66dc6 Mon Sep 17 00:00:00 2001 From: Anton Smirnov Date: Fri, 4 Jul 2025 07:00:27 +0300 Subject: [PATCH 2/2] productSlug can be garbage too, remove it completely --- bridges/EpicGamesFreeBridge.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bridges/EpicGamesFreeBridge.php b/bridges/EpicGamesFreeBridge.php index cb057978..6944ae2e 100644 --- a/bridges/EpicGamesFreeBridge.php +++ b/bridges/EpicGamesFreeBridge.php @@ -59,7 +59,7 @@ class EpicGamesFreeBridge extends BridgeAbstract ) { continue; } - $slug = $element['productSlug'] ?? $element['catalogNs']['mappings'][0]['pageSlug'] ?? null; + $slug = $element['catalogNs']['mappings'][0]['pageSlug'] ?? null; if ($slug !== null) { $uri = parent::getURI() . $this->getInput('locale') . '/p/' . $slug; } else {