[EpicGamesFree] Fixes: url not set, other promos shown (#4575)

* URI was not set because of the typo

* Filter out other promos
This commit is contained in:
Anton Smirnov 2025-05-30 12:05:36 +03:00 committed by GitHub
parent 976217111c
commit b8064d9dfe
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -27,7 +27,7 @@ class EpicGamesFreeBridge extends BridgeAbstract
'Türkçe' => 'tr',
'简体中文' => 'zh-CN',
'繁體中文' => 'zh-Hant',
],
],
'title' => 'Language for game information',
'defaultValue' => 'en-US',
],
@ -51,16 +51,21 @@ class EpicGamesFreeBridge extends BridgeAbstract
$data = $json['data']['Catalog']['searchStore']['elements'];
foreach ($data as $element) {
if (!isset($element['promotions']['promotionalOffers'][0])) {
$promo = $element['promotions']['promotionalOffers'][0]['promotionalOffers'][0] ?? false;
if (
!$promo ||
$promo['discountSetting']['discountType'] !== 'PERCENTAGE' ||
$promo['discountSetting']['discountPercentage'] !== 0
) {
continue;
}
$item = [
'author' => $element['seller']['name'],
'content' => $element['description'],
'enclosures' => array_map(fn($item) => $item['url'], $element['keyImages']),
'timestamp' => strtotime($element['promotions']['promotionalOffers'][0]['promotionalOffers'][0]['startDate']),
'timestamp' => strtotime($promo['startDate']),
'title' => $element['title'],
'url' => parent::getURI() . $this->getInput('locale') . '/p/' . $element['urlSlug'],
'uri' => parent::getURI() . $this->getInput('locale') . '/p/' . $element['productSlug'],
];
$this->items[] = $item;
}