diff --git a/bridges/PanneauPocketBridge.php b/bridges/PanneauPocketBridge.php index 464d56c5..a89913c5 100644 --- a/bridges/PanneauPocketBridge.php +++ b/bridges/PanneauPocketBridge.php @@ -4,129 +4,32 @@ class PanneauPocketBridge extends BridgeAbstract { const NAME = 'Panneau Pocket'; const URI = 'https://app.panneaupocket.com'; - const DESCRIPTION = 'Fetches the latest infos from Panneau Pocket'; + const DESCRIPTION = 'Fetches the latest infos from Panneau Pocket. +

To have completion on cities, you must click on the button "Request temporary access to the demo server" + here +

Or use your own proxy and change the proxy value in RSS-Bridge config.ini.php'; const MAINTAINER = 'floviolleau'; - const PARAMETERS = [ - [ - 'cities' => [ - 'name' => 'Choisir une ville', - 'type' => 'list', - 'values' => self::CITIES, - ], - 'cityName' => [ - 'name' => 'Ville', - ], - 'cityId' => [ - 'name' => 'Identifiant', - ] - ] - ]; const CACHE_TIMEOUT = 7200; // 2h - - private const CITIES = [ - 'Andouillé-Neuville-35250' => '1455789521', - 'Aubigné-35250' => '1814317005', - 'Availles-sur-Seiche-35130' => '1892893207', - 'Baulon-35580' => '605833540', - 'Beaucé-35133' => '560906842', - 'Boisgervilly-35360' => '1993806123', - 'Bonnemain-35270' => '1099773691', - 'Bonnemain - Ecole Privée Saint-Joseph-35270' => '538925534', - 'Bonnemain - Ecole Publique Henri Matisse-35270' => '1820283844', - 'Bourg-des-Comptes-35890' => '957084809', - 'Breteil-35160' => '1206807553', - 'Chanteloup-35150' => '65528978', - 'Chavagne-35310' => '1825825704', - 'Cintré-35310' => '857744989', - 'Clayes-35590' => '1176604734', - 'Comblessac-35330' => '799252614', - 'Compagnie de Gendarmerie de Montfort-sur-Meu-35160' => '1310467096', - 'Compagnie de Gendarmerie de Redon-35600' => '772555117', - 'Compagnie de Gendarmerie de Saint-Malo-35400' => '212942271', - 'Compagnie de Gendarmerie de Vitré-35500' => '2117121991', - 'Dingé-35440' => '1146475327', - 'Feins-35440' => '762081007', - 'Gahard-35490' => '858141102', - 'Gendarmerie BTA de Bain-de-Bretagne-35470' => '2125697119', - 'Gendarmerie BTA de Mordelles-35310' => '1915843207', - 'Gendarmerie BTA de Saint-Aubin-du-Cormier-35140' => '1325843950', - 'Gendarmerie BTA de Vitré-35500' => '898672661', - 'Gendarmerie BTA Maen-Roch-35460' => '1096873908', - 'Gendarmerie COB Cancale-35260' => '1992410402', - 'Gendarmerie COB de Chateaugiron-35410' => '1867528169', - 'Gendarmerie COB de Combourg-35270' => '1045617593', - 'Gendarmerie COB de Fougères-35300' => '177248581', - 'Gendarmerie COB de Guichen-35580' => '557627842', - 'Gendarmerie COB de Hédé-Bazouges-35630' => '519881302', - 'Gendarmerie COB de Janzé-35150' => '533620097', - 'Gendarmerie COB de La Guerche-de-Bretagne-35130' => '1282120307', - 'Gendarmerie COB de Montauban de Bretagne-35360' => '137692263', - 'Gendarmerie COB de Redon-35600' => '1027850906', - 'Gendarmerie de Betton-35830' => '307605625', - 'Gosné-35140' => '1261503624', - 'Grand-Fougeray-35390' => '1687416796', - 'Guignen-35580' => '75195882', - 'L\'Hermitage-35590' => '1954292633', - 'La Boussac-35120' => '162444335', - 'La Chapelle-Bouëxic-35330' => '869117325', - 'La Couyère-35320' => '2075958825', - 'La Dominelais-35390' => '2065081911', - 'La Fresnais-35111' => '2010636370', - 'La Gouesnière-35350' => '1925923421', - 'La Noé-Blanche-35470' => '224305391', - 'La Nouaye-35137' => '1000733211', - 'Lalleu-35320' => '1460101917', - 'Landavran-35450' => '133549915', - 'Langouet-35630' => '1523560503', - 'Le Ferré-35420' => '1432943983', - 'Le Verger-35160' => '1266074746', - 'Les Brulais-35330' => '1854147921', - 'Les Portes du Coglais-35460' => '413267621', - 'Livré-sur-Changeon-35450' => '1850101087', - 'Louvigné-de-Bais-35680' => '1676392257', - 'Louvigné-de-Bais - Ecole Charles Perrault-35680' => '1180505145', - 'Louvigné-de-Bais - Ecole Saint-Patern-35680' => '919443746', - 'Maen Roch-35460' => '1112477040', - 'Maison de Quartier Francisco Ferrer-35200' => '944171353', - 'Marcillé-Raoul-35560' => '991970696', - 'Maxent-35380' => '209041860', - 'Meillac-35270' => '1841968856', - 'Mernel-35330' => '1311137811', - 'Monterfil-35160' => '873169651', - 'Montreuil-sur-Ille-35440' => '550764994', - 'Mouazé-35250' => '1931390548', - 'Moutiers-35130' => '443526227', - 'Parigné-35133' => '2013041755', - 'Pleugueneuc-35720' => '748287926', - 'Princé-35210' => '1765498088', - 'Rives-du-Couesnon-35140' => '1609662849', - 'Saint-Aubin-des-Landes-35500' => '1483721395', - 'Saint-Germain-du-Pinel-35370' => '1357547548', - 'Saint-Gonlay-35750' => '711639882', - 'Saint-Péran-35380' => '1484951371', - 'Saint-Séglin-35330' => '292665012', - 'Saint-Thual-35190' => '427165321', - 'Saint-Thurial-35310' => '940529156', - 'Sens-de-Bretagne-35490' => '1055647650', - 'Thourie-35134' => '1250885948', - 'Torcé-35370' => '1927215543', - 'Treffendel-35380' => '738532467', - 'Val d\'Anast-35330' => '225564233', - 'Vallons de Haute Bretagne Communauté-35580' => '1319050928', - 'Vergéal-35680' => '389815752', - 'Vieux-Vy-sur-Couesnon-35490' => '2016313694' - ]; + const PARAMETERS = [[ + 'city' => [ + 'name' => 'Choisir une ville', + 'type' => 'dynamic_list', + 'ajax_route' => 'https://app.panneaupocket.com/public-api/city', + 'fields_name_used_as_value' => [ + 'id', + 'name', + 'postCode' + ], + 'fields_name_used_for_display' => [ + 'name', + 'postCode' + ], + ] + ]]; public function collectData() { - $cityId = $this->getInput('cityId'); - if ($cityId != null) { - $cityName = $this->getInput('cityName'); - $city = strtolower($cityId . '-' . $cityName); - } else { - $matchedCity = array_search($this->getInput('cities'), self::CITIES); - $city = strtolower($this->getInput('cities') . '-' . $matchedCity); - } + $city = $this->getInput('city'); $url = sprintf('https://app.panneaupocket.com/ville/%s', urlencode($city)); $html = getSimpleHTMLDOM($url); @@ -147,37 +50,4 @@ class PanneauPocketBridge extends BridgeAbstract $this->items[] = $item; } } - - public function detectParameters($url) - { - $params = []; - $regex = '/\/ville\/(\d+)-([a-z0-9-]+)/'; - if (preg_match($regex, $url, $matches)) { - $params['cityId'] = $matches[1]; - $params['cityName'] = $matches[2]; - return $params; - } - return null; - } - - /** - * Produce self::CITIES array - */ - private static function getCities($zipcodeStartWith) - { - $cities = json_decode(getContents(self::URI . '/public-api/city'), true); - - $formattedCities = null; - $citiesString = '[
'; - foreach ($cities as $city) { - if (str_starts_with($city['postCode'], $zipcodeStartWith)) { - $formattedCities[$city['name'] . ' - ' . $city['postCode']] = $city['id']; - $citiesString .= ' "' . $city['name'] . '-' . $city['postCode'] . '" => "' . $city['id'] . '",'; - $citiesString .= '
'; - } - } - $citiesString .= ']'; - echo '
' . $citiesString . '
'; - die(); - } }