From ff8ece213fc9110cb1446847ebf7810af8efdade Mon Sep 17 00:00:00 2001 From: Shikiryu Date: Wed, 13 Apr 2022 12:25:32 +0100 Subject: [PATCH] [PicalaBridge] Add new bridge (#2646) --- bridges/PicalaBridge.php | 69 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 bridges/PicalaBridge.php diff --git a/bridges/PicalaBridge.php b/bridges/PicalaBridge.php new file mode 100644 index 00000000..46e2edbb --- /dev/null +++ b/bridges/PicalaBridge.php @@ -0,0 +1,69 @@ + 'actualites', + 'Économie' => 'economie', + 'Tests' => 'tests', + 'Pratique' => 'pratique', + ); + const NAME = 'Picala Bridge'; + const URI = 'https://www.picala.fr'; + const DESCRIPTION = 'Dernière nouvelles du média indépendant sur le vélo électrique'; + const MAINTAINER = 'Chouchen'; + const PARAMETERS = array( + array( + 'type' => array( + 'name' => 'Type', + 'type' => 'list', + 'values' => self::TYPES, + ), + ), + ); + + public function getURI() { + if(!is_null($this->getInput('type'))) { + return sprintf('%s/%s', static::URI, $this->getInput('type')); + } + + return parent::getURI(); + } + + public function getIcon() { + return 'https://picala-static.s3.amazonaws.com/static/img/favicon/favicon-32x32.png'; + } + + public function getDescription() { + if(!is_null($this->getInput('type'))) { + return sprintf('%s - %s', static::DESCRIPTION, array_search($this->getInput('type'), self::TYPES)); + } + + return parent::getDescription(); + } + + public function getName() { + if(!is_null($this->getInput('type'))) { + return sprintf('%s - %s', static::NAME, array_search($this->getInput('type'), self::TYPES)); + } + + return parent::getName(); + } + + public function collectData() { + $fullhtml = getSimpleHTMLDOM($this->getURI()); + foreach($fullhtml->find('.list-container-category a') as $article) { + $srcsets = explode(',', $article->find('img', 0)->getAttribute('srcset')); + $image = explode(' ', trim(array_shift($srcsets)))[0]; + + $item = array(); + $item['uri'] = self::URI . $article->href; + $item['title'] = $article->find('h2', 0)->plaintext; + $item['content'] = sprintf( + '
%s', + $image, + $article->find('.teaser__text', 0)->plaintext + ); + $this->items[] = $item; + } + } +}