From ff8ece213fc9110cb1446847ebf7810af8efdade Mon Sep 17 00:00:00 2001
From: Shikiryu <Chouchen@users.noreply.github.com>
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 @@
+<?php
+
+class PicalaBridge extends BridgeAbstract {
+	const TYPES		 = array(
+		'Actualités' => '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(
+				'<img src="%s" /><br>%s',
+				$image,
+				$article->find('.teaser__text', 0)->plaintext
+			);
+			$this->items[] = $item;
+		}
+	}
+}