Skip to content

Commit

Permalink
[OsmAndBlogBridge] Add new bridge (RSS-Bridge#973)
Browse files Browse the repository at this point in the history
  • Loading branch information
fulmeek authored and logmanoriginal committed Dec 26, 2018
1 parent 3013acf commit 736d73d
Showing 1 changed file with 67 additions and 0 deletions.
67 changes: 67 additions & 0 deletions bridges/OsmAndBlogBridge.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
<?php
class OsmAndBlogBridge extends BridgeAbstract {
const NAME = 'OsmAnd Blog';
const URI = 'https://osmand.net/';
const DESCRIPTION = 'Get the latest news from OsmAnd.net';
const MAINTAINER = 'fulmeek';


public function collectData() {
$html = getSimpleHTMLDOM(self::URI . 'blog')
or returnServerError('Could not load content');

foreach($html->find('div.article') as $element) {
$item = array();

$objTitle = $element->find('h1', 0);
if (!$objTitle)
$objTitle = $element->find('h2', 0);
if (!$objTitle)
$objTitle = $element->find('h3', 0);
if ($objTitle)
$item['title'] = $objTitle->plaintext;

$objDate = $element->find('meta[pubdate]', 0);
if ($objDate) {
$item['timestamp'] = strtotime($objDate->pubdate);
} else {
$objDate = $element->find('.date', 0);
if ($objDate)
$item['timestamp'] = strtotime($objDate->plaintext);
}

$this->cleanupContent($element, $objTitle, $objDate, $element->find('.date', 0));
$item['content'] = $element->innertext;

$objLink = $html->find('.articlelinklist a', 0);
if ($objLink) {
$item['uri'] = $this->filterURL($objLink->href);
} else {
$item['uri'] = 'urn:sha1:' . hash('sha1', $item['content']);
}

$this->items[] = $item;
}
}


private function filterURL($url) {
if (strpos($url, '://') === false)
return self::URI . ltrim($url, '/');
return $url;
}


private function cleanupContent($content, ...$removeItems) {
foreach ($removeItems as $obj) {
if ($obj) $obj->outertext = '';
}
foreach ($content->find('img') as $obj) {
$obj->src = $this->filterURL($obj->src);
}
foreach ($content->find('a') as $obj) {
$obj->href = $this->filterURL($obj->href);
$obj->target = '_blank';
}
}
}

0 comments on commit 736d73d

Please sign in to comment.