Files
Phraseanet/lib/classes/Bridge/Api/Dailymotion/Element.php
2013-01-18 17:47:25 +01:00

176 lines
2.8 KiB
PHP

<?php
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
* Description of Element
*
* @author nicolas
*/
class Bridge_Api_Dailymotion_Element implements Bridge_Api_ElementInterface
{
/**
*
* @var array
*/
protected $entry;
/**
*
* @var string
*/
protected $type;
/**
*
* @param array $entry
* @param type $type
* @return Bridge_Api_Dailymotion_Element
*/
public function __construct(Array $entry, $type)
{
$this->entry = $entry;
$this->type = $type;
return $this;
}
/**
*
* @return mixed
*/
private function get($key, $default = null)
{
return isset($this->entry[$key]) ? $this->entry[$key] : $default;
}
/**
*
* @return DateTime
*/
public function get_created_on()
{
return DateTime::createFromFormat('U', $this->get("created_time"));
}
/**
*
* @return string
*/
public function get_description()
{
return $this->get("description", '');
}
/**
*
* @return string
*/
public function get_id()
{
return $this->get("id", '');
}
/**
*
* @return string
*/
public function get_thumbnail($width = 120, $height = 90)
{
return $this->get("thumbnail_medium_url", '');
}
/**
*
* @return string
*/
public function get_title()
{
return $this->get("title", '');
}
/**
*
* @return string
*/
public function get_type()
{
return $this->type;
}
/**
*
* @return DateTime
*/
public function get_updated_on()
{
return DateTime::createFromFormat('U', $this->get("modified_time"));
}
/**
*
* @return string
*/
public function get_url()
{
return $this->get("url", '');
}
/**
*
* @return boolean
*/
public function is_private()
{
return ! ! $this->get("private", 0);
}
/**
*
* @return string
*/
public function get_duration()
{
return p4string::format_seconds((int) $this->get('duration', '0'));
}
/**
*
* @return int
*/
public function get_view_count()
{
return (int) $this->get('views_total', 0);
}
/**
*
* @return int
*/
public function get_rating()
{
return (int) $this->get('ratings_total', 0);
}
/**
*
* @return string
*/
public function get_category()
{
return $this->get('channel', '');
}
/**
*
* @return string
*/
public function get_tags()
{
return implode(",", $this->get('tags', array()));
}
}