[ 'name' => 'News Feed', 'type' => 'list', 'title' => 'Feeds from the Portuguese sports newspaper A BOLA.PT', 'values' => [ 'Cultura' => 'cultura', 'Desporto' => 'desporto', 'Economia' => 'economia', 'Entrevista' => 'entrevista', 'Freguesias' => 'freguesias', 'Justiça' => 'justica', 'Opinião' => 'opiniao', 'Política' => 'politica', 'Reportagem' => 'reportagem', 'Sociedade' => 'sociedade', 'Tecnologia' => 'tecnologia', ] ] ] ]; public function getIcon() { return 'https://www.correiodafeira.pt/wp-content/uploads/base_reporter-200x200.jpg'; } public function getURI() { switch ($this->queriedContext) { case 'feed': $url = self::URI . $this->getInput('feed')[0] . '.html'; break; default: $url = self::URI; } return $url; } public function collectData() { $url = sprintf('https://www.correiodafeira.pt/categoria/%s', $this->getInput('feed')); $dom = getSimpleHTMLDOM($url); $dom = $dom->find('main', 0); if (!$dom) { throw new \Exception(sprintf('Unable to find css selector on `%s`', $url)); } $dom = defaultLinkTo($dom, $this->getURI()); foreach ($dom->find('div.post') as $article) { $a = $article->find('div.blog-box', 0); $this->items[] = [ 'title' => $a->find('h2.entry-title > a', 0)->plaintext, 'uri' => $a->find('h2.entry-title > a', 0)->href, 'author' => $a->find('li.post-author > a', 0)->plaintext, 'content' => $a->find('.entry-content > p', 0)->plaintext, ]; } } }