diff --git a/bridges/HeiseBridge.php b/bridges/HeiseBridge.php index ec8bb96f..08c43dc5 100644 --- a/bridges/HeiseBridge.php +++ b/bridges/HeiseBridge.php @@ -103,6 +103,16 @@ class HeiseBridge extends FeedExpander 'required' => false, 'title' => 'Specify number of full articles to return', 'defaultValue' => 5 + ], + 'sessioncookie' => [ + 'name' => 'Session Cookie', + 'required' => false, + 'title' => <<<'TITLE' + If you have a heise+ subscription, + you can enter your cookie (ssohls) here to + have heise+ articles displayed in full. + By default the cookie is 1 year valid. + TITLE, ] ]]; const LIMIT = 5; @@ -118,6 +128,7 @@ class HeiseBridge extends FeedExpander protected function parseItem($feedItem) { $item = parent::parseItem($feedItem); + $sessioncookie = $this->getInput('sessioncookie'); // strip rss parameter $item['uri'] = explode('?', $item['uri'])[0]; @@ -128,13 +139,15 @@ class HeiseBridge extends FeedExpander } // abort on heise+ articles and link to archive.ph for full-text content - if (str_starts_with($item['title'], 'heise+ |')) { + if ($sessioncookie == '' && str_starts_with($item['title'], 'heise+ |')) { $item['uri'] = 'https://archive.ph/?run=1&url=' . urlencode($item['uri']); return $item; } $item['uri'] .= '?seite=all'; - $article = getSimpleHTMLDOMCached($item['uri']); + $article = getSimpleHTMLDOM($item['uri'], [ + 'cookie: ssohls=' . $sessioncookie + ]); if ($article) { $article = defaultLinkTo($article, $item['uri']);