aboutsummaryrefslogtreecommitdiff
path: root/bridges/BlizzardNewsBridge.php
diff options
context:
space:
mode:
Diffstat (limited to 'bridges/BlizzardNewsBridge.php')
-rw-r--r--bridges/BlizzardNewsBridge.php68
1 files changed, 54 insertions, 14 deletions
diff --git a/bridges/BlizzardNewsBridge.php b/bridges/BlizzardNewsBridge.php
index 993492d4..4d82b318 100644
--- a/bridges/BlizzardNewsBridge.php
+++ b/bridges/BlizzardNewsBridge.php
@@ -1,6 +1,6 @@
<?php
-class BlizzardNewsBridge extends XPathAbstract
+class BlizzardNewsBridge extends BridgeAbstract
{
const NAME = 'Blizzard News';
const URI = 'https://news.blizzard.com';
@@ -35,33 +35,73 @@ class BlizzardNewsBridge extends XPathAbstract
];
const CACHE_TIMEOUT = 3600;
- const XPATH_EXPRESSION_ITEM = '/html/body/div/div[4]/div[2]/div[2]/div/div/section/ol/li/article';
- const XPATH_EXPRESSION_ITEM_TITLE = './/div/div[2]/h2';
- const XPATH_EXPRESSION_ITEM_CONTENT = './/div[@class="ArticleListItem-description"]/div[@class="h6"]/text()';
- const XPATH_EXPRESSION_ITEM_URI = './/a[@class="ArticleLink ArticleLink"]/@href';
- const XPATH_EXPRESSION_ITEM_AUTHOR = '';
- const XPATH_EXPRESSION_ITEM_TIMESTAMP = './/time[@class="ArticleListItem-footerTimestamp"]/@timestamp';
- const XPATH_EXPRESSION_ITEM_ENCLOSURES = './/div[@class="ArticleListItem-image"]/@style';
- const XPATH_EXPRESSION_ITEM_CATEGORIES = './/div[@class="ArticleListItem-label"]';
- const SETTING_FIX_ENCODING = true;
+ private const PRODUCT_IDS = [
+ 'blt525c436e4a1b0a97',
+ 'blt54fbd3787a705054',
+ 'blt2031aef34200656d',
+ 'blt795c314400d7ded9',
+ 'blt5cfc6affa3ca0638',
+ 'blt2e50e1521bb84dc6',
+ 'blt376fb94931906b6f',
+ 'blt81d46fcb05ab8811',
+ 'bltede2389c0a8885aa',
+ 'blt24859ba8086fb294',
+ 'blte27d02816a8ff3e1',
+ 'blt2caca37e42f19839',
+ 'blt90855744d00cd378',
+ 'bltec70ad0ea4fd6d1d',
+ 'blt500c1f8b5470bfdb'
+ ];
+
+ private const API_PATH = '/api/news/blizzard?';
/**
* Source Web page URL (should provide either HTML or XML content)
* @return string
*/
- protected function getSourceUrl()
+ private function getSourceUrl(): string
{
$locale = $this->getInput('locale');
if ('zh-cn' === $locale) {
- return 'https://cn.news.blizzard.com';
+ $baseUrl = 'https://cn.news.blizzard.com' . self::API_PATH;
+ } else {
+ $baseUrl = 'https://news.blizzard.com/' . $locale . self::API_PATH;
}
- return 'https://news.blizzard.com/' . $locale;
+ return $baseUrl .= http_build_query([
+ 'feedCxpProductIds' => self::PRODUCT_IDS
+ ]);
+ }
+
+ public function collectData()
+ {
+ $feedContent = json_decode(getContents($this->getSourceUrl()), true);
+
+ foreach ($feedContent['feed']['contentItems'] as $entry) {
+ $properties = $entry['properties'];
+
+ $item = [];
+
+ $item['title'] = $this->filterChars($properties['title']);
+ $item['content'] = $this->filterChars($properties['summary']);
+ $item['uri'] = $properties['newsUrl'];
+ $item['author'] = $this->filterChars($properties['author']);
+ $item['timestamp'] = strtotime($properties['lastUpdated']);
+ $item['enclosures'] = [$properties['staticAsset']['imageUrl']];
+ $item['categories'] = [$this->filterChars($properties['cxpProduct']['title'])];
+
+ $this->items[] = $item;
+ }
+ }
+
+ private function filterChars($content)
+ {
+ return htmlspecialchars($content, ENT_XML1);
}
public function getIcon()
{
return <<<icon
-https://blznews.akamaized.net/images/favicon-cb34a003c6f2f637ee8f4f7b406f3b9b120b918c04cabec7f03a760e708977ea9689a1c638f4396def8dce7b202cd007eae91946cc3c4a578aa8b5694226cfc6.ico
+https://dfbmfbnnydoln.cloudfront.net/production/images/favicons/favicon.ba01bb119359d74970b02902472fd82e96b5aba7.ico
icon;
}
}
aths Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
path: root/packages/astro (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2022-03-01fix vite version (#2694)Gravatar Fred K. Schott 2-5/+5
2022-03-01fix: disable HMR during build (#2684)Gravatar Nate Moore 2-0/+6
2022-03-01[ci] update smoke tests (remote) (#2690)Gravatar github-actions[bot] 2-6/+4
2022-03-01[ci] collect statsGravatar FredKSchott 1-0/+1
2022-02-28[ci] update smoke tests (remote) (#2686)Gravatar github-actions[bot] 96-3363/+8217
2022-02-28[ci] update lockfile (#2687)Gravatar Fred K. Schott 1-101/+75
2022-03-01[ci] collect statsGravatar FredKSchott 1-0/+1
2022-02-28update ci branch nameGravatar Fred K. Schott 1-0/+2
2022-02-28Make smoke tests more deterministic (#2618)Gravatar Fred K. Schott 336-147/+34315
2022-02-28[ci] yarn formatGravatar natemoo-re 1-20/+20
2022-02-28[ci] release (#2683)astro@0.23.3Gravatar github-actions[bot] 31-54/+55
2022-02-28Fix typo (#2674)Gravatar Robin Millette 1-1/+1
2022-02-28[ci] update lockfile (#2676)Gravatar Fred K. Schott 1-6/+6
2022-02-28fix(runtime): do not render empty Fragment (#2667)Gravatar Mateus Esdras 1-0/+3
2022-02-28fix(hmr): HMR regression related to .astro updates (#2681)Gravatar Nate Moore 6-7/+24
2022-02-28Fix HTMLElement expression warning (#2675)Gravatar Jonathan Neal 1-1/+1
2022-02-28[ci] collect statsGravatar FredKSchott 1-0/+1
2022-02-27[ci] update lockfile (#2668)Gravatar Fred K. Schott 1-80/+80
2022-02-27[ci] collect statsGravatar FredKSchott 1-0/+1
2022-02-26[ci] collect statsGravatar FredKSchott 1-0/+1
2022-02-25[ci] yarn formatGravatar natemoo-re 1-20/+20
2022-02-25[ci] release (#2666)astro@0.23.2Gravatar github-actions[bot] 32-59/+57
2022-02-25[ci] yarn formatGravatar natemoo-re 2-12/+6
2022-02-25fix astro scoping of "@import" inside of style tags (#2656)Gravatar Fred K. Schott 3-6/+35
2022-02-25[ci] update lockfile (#2659)Gravatar Fred K. Schott 1-20/+20
2022-02-25feat: improve third-party Astro package compatability (#2665)Gravatar Nate Moore 3-6/+100
2022-02-25get new example working during buildGravatar Fred K. Schott 4-16/+21
2022-02-25[ci] yarn formatGravatar FredKSchott 1-7/+6
2022-02-25Add Non-HTML Pages example (#2637)Gravatar Joel Kuzmarski 11-0/+136
2022-02-25[ci] collect statsGravatar FredKSchott 1-0/+1
2022-02-24[ci] yarn formatGravatar natemoo-re 2-24/+24
2022-02-24[ci] release (#2641)astro@0.23.1@astrojs/markdown-remark@0.6.2Gravatar github-actions[bot] 38-90/+81
2022-02-24ensure utf8 encoding when serving html (#2654)Gravatar Fred K. Schott 3-4/+9
2022-02-24fix(core): Issue #2625. error with process.env.LANG larger than 5 (#2645)Gravatar Javier Cortés 2-1/+6
2022-02-24[ci] update lockfile (#2646)Gravatar Fred K. Schott 1-130/+124
2022-02-24chore: upgrade compiler (#2653)Gravatar Nate Moore 3-11/+11
2022-02-24[ci] yarn formatGravatar natemoo-re 2-5/+5
2022-02-24Add fine-grained HMR support (#2649)Gravatar Nate Moore 7-36/+37
2022-02-24[ci] collect statsGravatar FredKSchott 1-0/+1
2022-02-23Fixed incorrect types and imports (#2630)Gravatar Juan Martín Seery 27-35/+37
2022-02-23Add sass dev dep to blog-multiple-authors example (#2643)Gravatar Joel Kuzmarski 1-1/+2
2022-02-23Fix(component): align starting position in Markdown slot (#2631)Gravatar Shinobu Hayashi 4-6/+61
2022-02-23[ci] yarn formatGravatar matthewp 1-1/+1
2022-02-23Run all smoke tests with the static build (#2609)Gravatar Matthew Phillips 2-26/+32
2022-02-23[ci] collect statsGravatar FredKSchott 1-0/+1
2022-02-22[ci] update lockfile (#2624)Gravatar Fred K. Schott 1-171/+201
2022-02-22Fixed shiki import to work with "type": "module" (#2628)Gravatar Juan Martín Seery 3-5/+13