47 lines
1.3 KiB
PHP
47 lines
1.3 KiB
PHP
|
<?php
|
||
|
|
||
|
class MixCloudBridge extends BridgeAbstract {
|
||
|
|
||
|
const MAINTAINER = "Alexis CHEMEL";
|
||
|
const NAME = "MixCloud";
|
||
|
const URI = "https://mixcloud.com/";
|
||
|
const CACHE_TIMEOUT = 3600; // 1h
|
||
|
const DESCRIPTION = "Returns latest musics on user stream";
|
||
|
|
||
|
const PARAMETERS = array(array(
|
||
|
'u' => array(
|
||
|
'name' => 'username',
|
||
|
'required' => true,
|
||
|
)));
|
||
|
|
||
|
public function getName(){
|
||
|
|
||
|
return 'MixCloud - '.$this->getInput('u');
|
||
|
}
|
||
|
|
||
|
public function collectData() {
|
||
|
|
||
|
$html = getSimpleHTMLDOM(self::URI.'/'.$this->getInput('u'))
|
||
|
or returnServerError('Could not request MixCloud.');
|
||
|
|
||
|
foreach($html->find('div.card-elements-container') as $element) {
|
||
|
|
||
|
$item = array();
|
||
|
|
||
|
$item['uri'] = self::URI.$element->find('h3.card-cloudcast-title a', 0)->getAttribute('href');
|
||
|
$item['title'] = html_entity_decode($element->find('h3.card-cloudcast-title a span', 0)->getAttribute('title'), ENT_QUOTES);
|
||
|
|
||
|
$image = $element->find('img.image-for-cloudcast', 0);
|
||
|
|
||
|
if( $image ) {
|
||
|
|
||
|
$item['content'] = '<img src="'.$image->getAttribute('src').'" />';
|
||
|
}
|
||
|
|
||
|
$item['author'] = trim($element->find('h4.card-cloudcast-user a', 0)->innertext);
|
||
|
|
||
|
$this->items[] = $item;
|
||
|
}
|
||
|
}
|
||
|
}
|