diff options
Diffstat (limited to 'bridges/EpicgamesBridge.php')
-rw-r--r-- | bridges/EpicgamesBridge.php | 162 |
1 files changed, 82 insertions, 80 deletions
diff --git a/bridges/EpicgamesBridge.php b/bridges/EpicgamesBridge.php index d7dd6afe..dfb30b7f 100644 --- a/bridges/EpicgamesBridge.php +++ b/bridges/EpicgamesBridge.php @@ -1,92 +1,94 @@ <?php -class EpicgamesBridge extends BridgeAbstract { - const NAME = 'Epic Games Store News'; - const MAINTAINER = 'otakuf'; - const URI = 'https://www.epicgames.com'; - const DESCRIPTION = 'Returns the latest posts from epicgames.com'; - const CACHE_TIMEOUT = 3600; // 60min +class EpicgamesBridge extends BridgeAbstract +{ + const NAME = 'Epic Games Store News'; + const MAINTAINER = 'otakuf'; + const URI = 'https://www.epicgames.com'; + const DESCRIPTION = 'Returns the latest posts from epicgames.com'; + const CACHE_TIMEOUT = 3600; // 60min - const PARAMETERS = array( array( - 'postcount' => array( - 'name' => 'Limit', - 'type' => 'number', - 'required' => true, - 'title' => 'Maximum number of items to return', - 'defaultValue' => 10, - ), - 'language' => array( - 'name' => 'Language', - 'type' => 'list', - 'values' => array( - 'English' => 'en', - 'العربية' => 'ar', - 'Deutsch' => 'de', - 'Español (Spain)' => 'es-ES', - 'Español (LA)' => 'es-MX', - 'Français' => 'fr', - 'Italiano' => 'it', - '日本語' => 'ja', - '한국어' => 'ko', - 'Polski' => 'pl', - 'Português (Brasil)' => 'pt-BR', - 'Русский' => 'ru', - 'ไทย' => 'th', - 'Türkçe' => 'tr', - '简体中文' => 'zh-CN', - '繁體中文' => 'zh-Hant', - ), - 'title' => 'Language of blog posts', - 'defaultValue' => 'en', - ), - )); + const PARAMETERS = [ [ + 'postcount' => [ + 'name' => 'Limit', + 'type' => 'number', + 'required' => true, + 'title' => 'Maximum number of items to return', + 'defaultValue' => 10, + ], + 'language' => [ + 'name' => 'Language', + 'type' => 'list', + 'values' => [ + 'English' => 'en', + 'العربية' => 'ar', + 'Deutsch' => 'de', + 'Español (Spain)' => 'es-ES', + 'Español (LA)' => 'es-MX', + 'Français' => 'fr', + 'Italiano' => 'it', + '日本語' => 'ja', + '한국어' => 'ko', + 'Polski' => 'pl', + 'Português (Brasil)' => 'pt-BR', + 'Русский' => 'ru', + 'ไทย' => 'th', + 'Türkçe' => 'tr', + '简体中文' => 'zh-CN', + '繁體中文' => 'zh-Hant', + ], + 'title' => 'Language of blog posts', + 'defaultValue' => 'en', + ], + ]]; - public function collectData() { - $api = 'https://store-content.ak.epicgames.com/api/'; + public function collectData() + { + $api = 'https://store-content.ak.epicgames.com/api/'; - // Get sticky posts first - // Example: https://store-content.ak.epicgames.com/api/ru/content/blog/sticky?locale=ru - $urlSticky = $api . $this->getInput('language') . '/content/blog/sticky'; - // Then get posts - // Example: https://store-content.ak.epicgames.com/api/ru/content/blog?limit=25 - $urlBlog = $api . $this->getInput('language') . '/content/blog?limit=' . $this->getInput('postcount'); + // Get sticky posts first + // Example: https://store-content.ak.epicgames.com/api/ru/content/blog/sticky?locale=ru + $urlSticky = $api . $this->getInput('language') . '/content/blog/sticky'; + // Then get posts + // Example: https://store-content.ak.epicgames.com/api/ru/content/blog?limit=25 + $urlBlog = $api . $this->getInput('language') . '/content/blog?limit=' . $this->getInput('postcount'); - $dataSticky = getContents($urlSticky); - $dataBlog = getContents($urlBlog); + $dataSticky = getContents($urlSticky); + $dataBlog = getContents($urlBlog); - // Merge data - $decodedData = array_merge(json_decode($dataSticky), json_decode($dataBlog)); + // Merge data + $decodedData = array_merge(json_decode($dataSticky), json_decode($dataBlog)); - foreach($decodedData as $key => $value) { - $item = array(); - $item['uri'] = self::URI . $value->url; - $item['title'] = $value->title; - $item['timestamp'] = $value->date; - $item['author'] = 'Epic Games Store'; - if(!empty($value->author)) { - $item['author'] = $value->author; - } - if(!empty($value->content)) { - $item['content'] = defaultLinkTo($value->content, self::URI); - } - if(!empty($value->image)) { - $item['enclosures'][] = $value->image; - } - $item['uid'] = $value->_id; - $item['id'] = $value->_id; + foreach ($decodedData as $key => $value) { + $item = []; + $item['uri'] = self::URI . $value->url; + $item['title'] = $value->title; + $item['timestamp'] = $value->date; + $item['author'] = 'Epic Games Store'; + if (!empty($value->author)) { + $item['author'] = $value->author; + } + if (!empty($value->content)) { + $item['content'] = defaultLinkTo($value->content, self::URI); + } + if (!empty($value->image)) { + $item['enclosures'][] = $value->image; + } + $item['uid'] = $value->_id; + $item['id'] = $value->_id; - $this->items[] = $item; - } + $this->items[] = $item; + } - // Sort data - usort($this->items, function ($item1, $item2) { - if ($item2['timestamp'] == $item1['timestamp']) { - return 0; - } - return ($item2['timestamp'] < $item1['timestamp']) ? -1 : 1; - }); + // Sort data + usort($this->items, function ($item1, $item2) { + if ($item2['timestamp'] == $item1['timestamp']) { + return 0; + } + return ($item2['timestamp'] < $item1['timestamp']) ? -1 : 1; + }); - // Limit data - $this->items = array_slice($this->items, 0, $this->getInput('postcount')); - } + // Limit data + $this->items = array_slice($this->items, 0, $this->getInput('postcount')); + } } |