aboutsummaryrefslogtreecommitdiff
path: root/bridges/DonnonsBridge.php
diff options
context:
space:
mode:
Diffstat (limited to 'bridges/DonnonsBridge.php')
-rw-r--r--bridges/DonnonsBridge.php108
1 files changed, 56 insertions, 52 deletions
diff --git a/bridges/DonnonsBridge.php b/bridges/DonnonsBridge.php
index a33a1013..1afdc4f2 100644
--- a/bridges/DonnonsBridge.php
+++ b/bridges/DonnonsBridge.php
@@ -1,5 +1,7 @@
<?php
+declare(strict_types=1);
+
/**
* Retourne les dons d'une recherche filtrée sur le site Donnons.org
* Example: https://donnons.org/Sport/Ile-de-France
@@ -44,58 +46,60 @@ class DonnonsBridge extends BridgeAbstract
{
$uri = $this->getPageURI($page);
- $html = getSimpleHTMLDOM($uri);
-
- $searchDiv = $html->find('div[id=search]', 0);
-
- if (!is_null($searchDiv)) {
- $elements = $searchDiv->find('a.lst-annonce');
- foreach ($elements as $element) {
- $item = [];
-
- // Lien vers le don
- $item['uri'] = self::URI . $element->href;
- // Id de l'objet
- $item['uid'] = $element->getAttribute('data-id');
-
- // Grab info from json
- $jsonString = $element->find('script', 0)->innertext;
- $json = json_decode($jsonString, true);
-
- $name = $json['name'];
- $category = $json['category'];
- $date = $json['availabilityStarts'];
- $description = $json['description'];
- $city = $json['availableAtOrFrom']['address']['addressLocality'];
- $region = $json['availableAtOrFrom']['address']['addressRegion'];
-
- // Grab info from HTML
- $imageSrc = $element->find('img.ima-center', 0)->getAttribute('src');
- // Use large image instead of small one
- $imageSrc = str_replace('/xs/', '/lg/', $imageSrc);
- $image = self::URI . $imageSrc;
- $author = $element->find('div.avatar-holder', 0)->plaintext;
-
- $content = '
- <img style="margin-right:1em;" src="' . $image . '">
- <div>
- <h1>' . $name . '</h1>
- <p>' . $description . '</p>
- <p>Lieu : <b>' . $city . '</b> - ' . $region . '</p>
- <p>Par : ' . $author . '</p>
- <p>Date : ' . $date . '</p>
- </div>
- ';
-
- // Titre du don
- $item['title'] = '[' . $category . '] ' . $name;
- $item['timestamp'] = $date;
- $item['author'] = $author;
- $item['content'] = $content;
- $item['enclosures'] = [$image];
-
- $this->items[] = $item;
- }
+ $dom = getSimpleHTMLDOM($uri);
+
+ $searchDiv = $dom->find('div[id=search]', 0);
+
+ if (! $searchDiv) {
+ return;
+ }
+
+ $elements = $searchDiv->find('a.lst-annonce');
+ foreach ($elements as $element) {
+ $item = [];
+
+ // Lien vers le don
+ $item['uri'] = self::URI . $element->href;
+ // Id de l'objet
+ $item['uid'] = $element->getAttribute('data-id');
+
+ // Grab info from json
+ $jsonString = $element->find('script', 0)->innertext;
+ $json = json_decode($jsonString, true);
+
+ $name = $json['name'];
+ $category = $json['category'];
+ $date = $json['availabilityStarts'];
+ $description = $json['description'];
+ $city = $json['availableAtOrFrom']['address']['addressLocality'];
+ $region = $json['availableAtOrFrom']['address']['addressRegion'];
+
+ // Grab info from HTML
+ $imageSrc = $element->find('img.ima-center', 0)->getAttribute('src');
+ // Use large image instead of small one
+ $imageSrc = str_replace('/xs/', '/lg/', $imageSrc);
+ $image = self::URI . $imageSrc;
+ $author = $element->find('div.avatar-holder', 0)->plaintext;
+
+ $content = '
+ <img style="margin-right:1em;" src="' . $image . '">
+ <div>
+ <h1>' . $name . '</h1>
+ <p>' . $description . '</p>
+ <p>Lieu : <b>' . $city . '</b> - ' . $region . '</p>
+ <p>Par : ' . $author . '</p>
+ <p>Date : ' . $date . '</p>
+ </div>
+ ';
+
+ // Titre du don
+ $item['title'] = '[' . $category . '] ' . $name;
+ $item['timestamp'] = $date;
+ $item['author'] = $author;
+ $item['content'] = $content;
+ $item['enclosures'] = [$image];
+
+ $this->items[] = $item;
}
}