diff --git a/bridges/HelloAssoBridge.php b/bridges/HelloAssoBridge.php new file mode 100644 index 00000000..16aeaabe --- /dev/null +++ b/bridges/HelloAssoBridge.php @@ -0,0 +1,60 @@ + [ + 'name' => 'Organization slug', + 'type' => 'text', + 'required' => true, + 'title' => 'Insert Organization short name (found in the URL)', + 'exampleValue' => 'ligue-contre-le-cancer-comite-essonne' + ] + ]]; + + private $orgname; + + public function getURI() + { + $slug = $this->getInput('slug') ?: ''; + return static::URI . '/associations/' . $slug; + } + + public function getName() + { + return $this->orgname ? $this->orgname . ' - ' . static::NAME : static::NAME; + } + + public function collectData() + { + $html = getSimpleHTMLDOM($this->getURI()); + $html = defaultLinkTo($html, $this->getURI()); + + $orgname = $html->find('[class~="Intro--Name"]', 0) + or returnServerError('Could not find org name!'); + $this->orgname = $orgname->plaintext; + + foreach ($html->find('ul[class~="ActionList"] li') as $element) { + $uri = $element->find('.ActionWrapper a', 0) + or returnServerError('Could not find action uri!'); + + $title = $element->find('.ActionContent--Text h3', 0); + + $date = $element->find('[class~="Number-Date"]', 0); + $address = $element->find('[class~="Data-AddressName"]', 0); + + $item = []; + $item['uri'] = $uri->href; + $item['title'] = $title->plaintext ?? ''; + $item['content'] = ($date->plaintext ?? '') + . ('
' . $address->plaintext ?? ''); + + $this->items[] = $item; + } + } +}