aboutsummaryrefslogtreecommitdiff
path: root/bridges/HeiseBridge.php
diff options
context:
space:
mode:
Diffstat (limited to 'bridges/HeiseBridge.php')
-rw-r--r--bridges/HeiseBridge.php136
1 files changed, 72 insertions, 64 deletions
diff --git a/bridges/HeiseBridge.php b/bridges/HeiseBridge.php
index b73e5124..5f5092e3 100644
--- a/bridges/HeiseBridge.php
+++ b/bridges/HeiseBridge.php
@@ -1,79 +1,87 @@
<?php
-class HeiseBridge extends FeedExpander {
- const MAINTAINER = 'Dreckiger-Dan';
- const NAME = 'Heise Online Bridge';
- const URI = 'https://heise.de/';
- const CACHE_TIMEOUT = 1800; // 30min
- const DESCRIPTION = 'Returns the full articles instead of only the intro';
- const PARAMETERS = array(array(
- 'category' => array(
- 'name' => 'Category',
- 'type' => 'list',
- 'values' => array(
- 'Alle News'
- => 'https://www.heise.de/newsticker/heise-atom.xml',
- 'Top-News'
- => 'https://www.heise.de/newsticker/heise-top-atom.xml',
- 'Internet-Störungen'
- => 'https://www.heise.de/netze/netzwerk-tools/imonitor-internet-stoerungen/feed/aktuelle-meldungen/',
- 'Alle News von heise Developer'
- => 'https://www.heise.de/developer/rss/news-atom.xml'
- )
- ),
- 'limit' => array(
- 'name' => 'Limit',
- 'type' => 'number',
- 'required' => false,
- 'title' => 'Specify number of full articles to return',
- 'defaultValue' => 5
- )
- ));
- const LIMIT = 5;
+class HeiseBridge extends FeedExpander
+{
+ const MAINTAINER = 'Dreckiger-Dan';
+ const NAME = 'Heise Online Bridge';
+ const URI = 'https://heise.de/';
+ const CACHE_TIMEOUT = 1800; // 30min
+ const DESCRIPTION = 'Returns the full articles instead of only the intro';
+ const PARAMETERS = [[
+ 'category' => [
+ 'name' => 'Category',
+ 'type' => 'list',
+ 'values' => [
+ 'Alle News'
+ => 'https://www.heise.de/newsticker/heise-atom.xml',
+ 'Top-News'
+ => 'https://www.heise.de/newsticker/heise-top-atom.xml',
+ 'Internet-Störungen'
+ => 'https://www.heise.de/netze/netzwerk-tools/imonitor-internet-stoerungen/feed/aktuelle-meldungen/',
+ 'Alle News von heise Developer'
+ => 'https://www.heise.de/developer/rss/news-atom.xml'
+ ]
+ ],
+ 'limit' => [
+ 'name' => 'Limit',
+ 'type' => 'number',
+ 'required' => false,
+ 'title' => 'Specify number of full articles to return',
+ 'defaultValue' => 5
+ ]
+ ]];
+ const LIMIT = 5;
- public function collectData() {
- $this->collectExpandableDatas(
- $this->getInput('category'),
- $this->getInput('limit') ?: static::LIMIT
- );
- }
+ public function collectData()
+ {
+ $this->collectExpandableDatas(
+ $this->getInput('category'),
+ $this->getInput('limit') ?: static::LIMIT
+ );
+ }
- protected function parseItem($feedItem) {
- $item = parent::parseItem($feedItem);
- $item['uri'] = explode('?', $item['uri'])[0] . '?seite=all';
+ protected function parseItem($feedItem)
+ {
+ $item = parent::parseItem($feedItem);
+ $item['uri'] = explode('?', $item['uri'])[0] . '?seite=all';
- if (strpos($item['uri'], 'https://www.heise.de') !== 0) {
- return $item;
- }
+ if (strpos($item['uri'], 'https://www.heise.de') !== 0) {
+ return $item;
+ }
- $article = getSimpleHTMLDOMCached($item['uri']);
+ $article = getSimpleHTMLDOMCached($item['uri']);
- if ($article) {
- $article = defaultLinkTo($article, $item['uri']);
- $item = $this->addArticleToItem($item, $article);
- }
+ if ($article) {
+ $article = defaultLinkTo($article, $item['uri']);
+ $item = $this->addArticleToItem($item, $article);
+ }
- return $item;
- }
+ return $item;
+ }
- private function addArticleToItem($item, $article) {
- $authors = $article->find('.a-creator__names', 0)->find('.a-creator__name');
- if ($authors)
- $item['author'] = implode(', ', array_map(function ($e) { return $e->plaintext; }, $authors ));
+ private function addArticleToItem($item, $article)
+ {
+ $authors = $article->find('.a-creator__names', 0)->find('.a-creator__name');
+ if ($authors) {
+ $item['author'] = implode(', ', array_map(function ($e) {
+ return $e->plaintext;
+ }, $authors));
+ }
- $content = $article->find('div[class*="article-content"]', 0);
+ $content = $article->find('div[class*="article-content"]', 0);
- if ($content == null)
- $content = $article->find('#article_content', 0);
+ if ($content == null) {
+ $content = $article->find('#article_content', 0);
+ }
- foreach($content->find('p, h3, ul, table, pre, img') as $element) {
- $item['content'] .= $element;
- }
+ foreach ($content->find('p, h3, ul, table, pre, img') as $element) {
+ $item['content'] .= $element;
+ }
- foreach($content->find('img') as $img) {
- $item['enclosures'][] = $img->src;
- }
+ foreach ($content->find('img') as $img) {
+ $item['enclosures'][] = $img->src;
+ }
- return $item;
- }
+ return $item;
+ }
}