diff options
author | Johannes 'josch' Schauer <josch@debian.org> | 2019-09-24 22:52:22 +0200 |
---|---|---|
committer | Johannes 'josch' Schauer <josch@debian.org> | 2019-09-25 00:04:31 +0200 |
commit | fbd207641ac75d53aea9ab4ab5cc4a4ea2635464 (patch) | |
tree | 87a1b93645b6e1676dae33f32eb08825abc83e2c /bridges/SIMARBridge.php | |
parent | 438dc893cb6a486748507ac5bcd46296db7b5c79 (diff) |
New upstream version 2019-09-12
Diffstat (limited to 'bridges/SIMARBridge.php')
-rw-r--r-- | bridges/SIMARBridge.php | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/bridges/SIMARBridge.php b/bridges/SIMARBridge.php new file mode 100644 index 0000000..1e446cf --- /dev/null +++ b/bridges/SIMARBridge.php @@ -0,0 +1,63 @@ +<?php +class SIMARBridge extends BridgeAbstract { + const NAME = 'SIMAR'; + const URI = 'http://www.simar-louresodivelas.pt/'; + const DESCRIPTION = 'Verificar estado da rede SIMAR'; + const MAINTAINER = 'somini'; + const PARAMETERS = array( + 'Público' => array( + 'interventions' => array( + 'type' => 'checkbox', + 'name' => 'Incluir Intervenções?', + 'defaultValue' => 'checked', + ) + ) + ); + + public function collectData() { + $html = getSimpleHTMLDOM(self::getURI()) + or returnServerError('Could not load content'); + $e_home = $html->find('#home', 0) + or returnServerError('Invalid site structure'); + + foreach($e_home->find('span') as $element) { + $item = array(); + + $item['title'] = 'Rotura: ' . $element->plaintext; + $item['content'] = $element->innertext; + $item['uid'] = 'urn:sha1:' . hash('sha1', $item['content']); + + $this->items[] = $item; + } + + if ($this->getInput('interventions')) { + $e_main1 = $html->find('#menu1', 0) + or returnServerError('Invalid site structure'); + + foreach ($e_main1->find('a') as $element) { + $item = array(); + + $item['title'] = 'Intervenção: ' . $element->plaintext; + $item['uri'] = self::getURI() . $element->href; + $item['content'] = $element->innertext; + + /* Try to get the actual contents for this kind of item */ + $item_html = getSimpleHTMLDOMCached($item['uri']); + if ($item_html) { + $e_item = $item_html->find('.auto-style59', 0); + foreach($e_item->find('p') as $paragraph) { + /* Remove empty paragraphs */ + if (preg_match('/^(\W| )+$/', $paragraph->innertext) == 1) { + $paragraph->outertext = ''; + } + } + if ($e_item) { + $item['content'] = $e_item->innertext; + } + } + + $this->items[] = $item; + } + } + } +} |