summaryrefslogtreecommitdiff
path: root/bridges/ASRockNewsBridge.php
diff options
context:
space:
mode:
Diffstat (limited to 'bridges/ASRockNewsBridge.php')
-rw-r--r--bridges/ASRockNewsBridge.php57
1 files changed, 57 insertions, 0 deletions
diff --git a/bridges/ASRockNewsBridge.php b/bridges/ASRockNewsBridge.php
new file mode 100644
index 0000000..1f3f4dd
--- /dev/null
+++ b/bridges/ASRockNewsBridge.php
@@ -0,0 +1,57 @@
+<?php
+class ASRockNewsBridge extends BridgeAbstract {
+ const NAME = 'ASRock News Bridge';
+ const URI = 'https://www.asrock.com';
+ const DESCRIPTION = 'Returns latest news articles';
+ const MAINTAINER = 'VerifiedJoseph';
+ const PARAMETERS = array();
+
+ const CACHE_TIMEOUT = 3600; // 1 hour
+
+ public function collectData() {
+
+ $html = getSimpleHTMLDOM(self::URI . '/news/index.asp')
+ or returnServerError('Could not request: ' . self::URI . '/news/index.asp');
+
+ $html = defaultLinkTo($html, self::URI . '/news/');
+
+ foreach($html->find('div.inner > a') as $index => $a) {
+ $item = array();
+
+ $articlePath = $a->href;
+
+ $articlePageHtml = getSimpleHTMLDOMCached($articlePath, self::CACHE_TIMEOUT)
+ or returnServerError('Could not request: ' . $articlePath);
+
+ $articlePageHtml = defaultLinkTo($articlePageHtml, self::URI);
+
+ $contents = $articlePageHtml->find('div.Contents', 0);
+
+ $item['uri'] = $articlePath;
+ $item['title'] = $contents->find('h5', 0)->innertext;
+
+ $contents->find('h5', 0)->outertext = '';
+
+ $item['content'] = $contents->innertext;
+ $item['timestamp'] = $this->extractDate($a->plaintext);
+ $item['enclosures'][] = $a->find('img', 0)->src;
+ $this->items[] = $item;
+
+ if (count($this->items) >= 10) {
+ break;
+ }
+ }
+ }
+
+ private function extractDate($text) {
+ $dateRegex = '/^([0-9]{4}\/[0-9]{1,2}\/[0-9]{1,2})/';
+
+ $text = trim($text);
+
+ if (preg_match($dateRegex, $text, $matches)) {
+ return $matches[1];
+ }
+
+ return '';
+ }
+}