<?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;
        }
    }
}